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 | #endif | ||||||
| 
 | 
 | ||||||
|         OSRM osrm_lib(server_paths, use_shared_memory); |         OSRM osrm_lib(server_paths, use_shared_memory); | ||||||
|         Server *routing_server = |         auto routing_server = | ||||||
|             ServerFactory::CreateServer(ip_address, ip_port, requested_thread_num); |             ServerFactory::CreateServer(ip_address, ip_port, requested_thread_num); | ||||||
| 
 | 
 | ||||||
|         routing_server->GetRequestHandlerPtr().RegisterRoutingMachine(&osrm_lib); |         routing_server->GetRequestHandlerPtr().RegisterRoutingMachine(&osrm_lib); | ||||||
| @ -181,7 +181,7 @@ int main(int argc, const char *argv[]) | |||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         SimpleLogger().Write() << "freeing objects"; |         SimpleLogger().Write() << "freeing objects"; | ||||||
|         delete routing_server; |         routing_server.reset(); | ||||||
|         SimpleLogger().Write() << "shutdown completed"; |         SimpleLogger().Write() << "shutdown completed"; | ||||||
|     } |     } | ||||||
|     catch (const std::exception &e) |     catch (const std::exception &e) | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user