let ServerFactory return unique ptr instead of raw ptr
This commit is contained in:
		
							parent
							
								
									279071e5bb
								
							
						
					
					
						commit
						cc7c6b9ece
					
				
							
								
								
									
										42
									
								
								Util/SmartPointerUtil.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								Util/SmartPointerUtil.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,42 @@ | ||||
| /*
 | ||||
| 
 | ||||
| Copyright (c) 2013, Project OSRM, Dennis Luxen, others | ||||
| All rights reserved. | ||||
| 
 | ||||
| Redistribution and use in source and binary forms, with or without modification, | ||||
| are permitted provided that the following conditions are met: | ||||
| 
 | ||||
| Redistributions of source code must retain the above copyright notice, this list | ||||
| of conditions and the following disclaimer. | ||||
| Redistributions in binary form must reproduce the above copyright notice, this | ||||
| list of conditions and the following disclaimer in the documentation and/or | ||||
| other materials provided with the distribution. | ||||
| 
 | ||||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND | ||||
| ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
| WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
| DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR | ||||
| ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
| (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
| LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||||
| ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
| SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
| 
 | ||||
| */ | ||||
| 
 | ||||
| #ifndef __SMART_POINTER_UTIL_H__ | ||||
| #define __SMART_POINTER_UTIL_H__ | ||||
| 
 | ||||
| #include <memory> | ||||
| 
 | ||||
| namespace osrm { | ||||
| 
 | ||||
| template<typename T, typename ...Args> | ||||
| std::unique_ptr<T> make_unique( Args&& ...args ) | ||||
| { | ||||
|     return std::unique_ptr<T>( new T( std::forward<Args>(args)... ) ); | ||||
| } | ||||
| } | ||||
| 
 | ||||
| #endif | ||||
| @ -131,7 +131,7 @@ int main(int argc, const char *argv[]) | ||||
| #endif | ||||
| 
 | ||||
|         OSRM osrm_lib(server_paths, use_shared_memory); | ||||
|         Server *routing_server = | ||||
|         auto routing_server = | ||||
|             ServerFactory::CreateServer(ip_address, ip_port, requested_thread_num); | ||||
| 
 | ||||
|         routing_server->GetRequestHandlerPtr().RegisterRoutingMachine(&osrm_lib); | ||||
| @ -181,7 +181,7 @@ int main(int argc, const char *argv[]) | ||||
|         } | ||||
| 
 | ||||
|         SimpleLogger().Write() << "freeing objects"; | ||||
|         delete routing_server; | ||||
|         routing_server.reset(); | ||||
|         SimpleLogger().Write() << "shutdown completed"; | ||||
|     } | ||||
|     catch (const std::exception &e) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user