00001 // IFR_Service.h,v 1.17 2005/08/31 11:20:39 jwillemsen Exp 00002 00003 // ======================================================================== 00004 // 00005 // = LIBRARY 00006 // orbsvcs/IFR_Service 00007 // 00008 // = FILENAME 00009 // IFR_Service.h 00010 // 00011 // = AUTHOR 00012 // Jeff Parsons <parsons@cs.wustl.edu> 00013 // 00014 // ======================================================================= 00015 00016 #ifndef IFR_SERVICE_H 00017 #define IFR_SERVICE_H 00018 00019 #include "orbsvcs/IFRService/IFR_Service_Utils.h" 00020 #include "tao/PortableServer/PortableServer.h" 00021 #include "tao/ORB.h" 00022 00023 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00024 # pragma once 00025 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00026 00027 /** 00028 * @class IFR_Service 00029 * 00030 * A class that initializes, runs and shuts down 00031 * the Interface Repository service. 00032 */ 00033 class IFR_Service 00034 { 00035 public: 00036 00037 /// Default constructor. 00038 IFR_Service (void); 00039 00040 /// Destructor 00041 ~IFR_Service (void); 00042 00043 /// Initialize the IFR service. 00044 int init (int argc, 00045 char *argv[] 00046 ACE_ENV_ARG_DECL_WITH_DEFAULTS); 00047 00048 /// Shut down the IFR Service. 00049 int fini (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS); 00050 00051 /// Run the IFR service. 00052 int run (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS); 00053 00054 protected: 00055 00056 /// Reference to our ORB. 00057 CORBA::ORB_var orb_; 00058 00059 /// Root POA reference. 00060 PortableServer::POA_var root_poa_; 00061 00062 /// IFR Server instance. 00063 TAO_IFR_Server my_ifr_server_; 00064 }; 00065 00066 #endif /* IFR_SERVICE_H */