00001 // -*- C++ -*- 00002 // 00003 // Activator_Loader.h,v 1.4 2005/11/03 17:38:46 ossama Exp 00004 00005 #ifndef TAO_IMR_ACTIVATOR_LOADER_H 00006 #define TAO_IMR_ACTIVATOR_LOADER_H 00007 00008 #include "ImR_Activator_i.h" 00009 #include "Activator_Options.h" 00010 00011 #include "tao/Object_Loader.h" 00012 00013 #include "ace/Auto_Ptr.h" 00014 00015 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00016 # pragma once 00017 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00018 00019 class ImR_Activator_ORB_Runner; 00020 00021 class Activator_Export ImR_Activator_Loader : public TAO_Object_Loader 00022 { 00023 public: 00024 ImR_Activator_Loader(void); 00025 00026 virtual int init (int argc, ACE_TCHAR *argv[] ACE_ENV_ARG_DECL); 00027 00028 virtual int fini (void); 00029 00030 virtual CORBA::Object_ptr create_object (CORBA::ORB_ptr orb, 00031 int argc, 00032 ACE_TCHAR *argv[] 00033 ACE_ENV_ARG_DECL) 00034 ACE_THROW_SPEC ((CORBA::SystemException)); 00035 00036 // Unlike other service objects, we have our own orb. 00037 int run(void); 00038 00039 private: 00040 ImR_Activator_i service_; 00041 Activator_Options opts_; 00042 ACE_Auto_Ptr<ImR_Activator_ORB_Runner> runner_; 00043 00044 private: 00045 // Disallow copying and assignment. 00046 ImR_Activator_Loader (const ImR_Activator_Loader &); 00047 ImR_Activator_Loader &operator = (const ImR_Activator_Loader &); 00048 }; 00049 00050 ACE_FACTORY_DECLARE (Activator, ImR_Activator_Loader) 00051 00052 #endif