00001 // -*- C++ -*- 00002 // 00003 // Locator_Loader.h,v 1.4 2006/01/04 16:10:11 giovannd Exp 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 ACE_ENV_ARG_DECL) 00033 ACE_THROW_SPEC ((CORBA::SystemException)); 00034 00035 // Unlike other service objects, we have our own orb. 00036 int run(void); 00037 00038 private: 00039 ImR_Locator_i service_; 00040 Options opts_; 00041 ACE_Auto_Ptr<ImR_Locator_ORB_Runner> runner_; 00042 private: 00043 // Disallow copying and assignment. 00044 ImR_Locator_Loader (const ImR_Locator_Loader &); 00045 ImR_Locator_Loader &operator = (const ImR_Locator_Loader &); 00046 }; 00047 00048 ACE_FACTORY_DECLARE (Locator, ImR_Locator_Loader) 00049 00050 #endif