00001 // $Id: IFR_Service.h 82869 2008-09-29 08:02:27Z johnnyw $ 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 ACE_TCHAR *argv[]); 00046 00047 /// Shut down the IFR Service. 00048 int fini (void); 00049 00050 /// Run the IFR service. 00051 int run (void); 00052 00053 /// Shutdown the Service. 00054 void shutdown (void); 00055 00056 protected: 00057 00058 /// Reference to our ORB. 00059 CORBA::ORB_var orb_; 00060 00061 /// Root POA reference. 00062 PortableServer::POA_var root_poa_; 00063 00064 /// IFR Server instance. 00065 TAO_IFR_Server my_ifr_server_; 00066 }; 00067 00068 #endif /* IFR_SERVICE_H */