00001 // -*- C++ -*- 00002 // 00003 // $Id: Locator_Loader.h 77020 2007-02-12 13:56:49Z johnnyw $ 00004 00005 #ifndef TAO_IMR_LOCATOR_LOADER_H 00006 #define TAO_IMR_LOCATOR_LOADER_H 00007 00008 #include "ImR_Locator_i.h" 00009 00010 #include "tao/Object_Loader.h" 00011 00012 #include "ace/Auto_Ptr.h" 00013 00014 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00015 # pragma once 00016 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00017 00018 class ImR_Locator_ORB_Runner; 00019 00020 class Locator_Export ImR_Locator_Loader : public TAO_Object_Loader 00021 { 00022 public: 00023 ImR_Locator_Loader(); 00024 00025 virtual int init (int argc, ACE_TCHAR *argv[]); 00026 00027 virtual int fini (void); 00028 00029 virtual CORBA::Object_ptr create_object (CORBA::ORB_ptr orb, 00030 int argc, 00031 ACE_TCHAR *argv[]); 00032 00033 // Unlike other service objects, we have our own orb. 00034 int run(void); 00035 00036 private: 00037 ImR_Locator_i service_; 00038 Options opts_; 00039 ACE_Auto_Ptr<ImR_Locator_ORB_Runner> runner_; 00040 private: 00041 // Disallow copying and assignment. 00042 ImR_Locator_Loader (const ImR_Locator_Loader &); 00043 ImR_Locator_Loader &operator = (const ImR_Locator_Loader &); 00044 }; 00045 00046 ACE_FACTORY_DECLARE (Locator, ImR_Locator_Loader) 00047 00048 #endif