summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/IFR_Service/IFR_Service.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/IFR_Service/IFR_Service.h')
-rw-r--r--TAO/orbsvcs/IFR_Service/IFR_Service.h106
1 files changed, 106 insertions, 0 deletions
diff --git a/TAO/orbsvcs/IFR_Service/IFR_Service.h b/TAO/orbsvcs/IFR_Service/IFR_Service.h
new file mode 100644
index 00000000000..f641f6d95b9
--- /dev/null
+++ b/TAO/orbsvcs/IFR_Service/IFR_Service.h
@@ -0,0 +1,106 @@
+// $Id$
+
+// ========================================================================
+//
+// = LIBRARY
+// orbsvcs/IFR_Service
+//
+// = FILENAME
+// IFR_Service.h
+//
+// = AUTHOR
+// Jeff Parsons <parsons@cs.wustl.edu>
+//
+// =======================================================================
+
+#ifndef IFR_SERVICE_H
+#define IFR_SERVICE_H
+
+#include "tao/ORB.h"
+#include "tao/ifrfwd.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+class IFR_ServantLocator;
+class TAO_IOR_Multicast;
+class ACE_Configuration;
+class TAO_Repository_i;
+
+class IFR_Service
+{
+ // = TITLE
+ // IFR_Service
+ //
+ // = DESCRIPTION
+ // A class that initializes, runs and shuts down
+ // the Interface Repository service.
+public:
+
+ IFR_Service (void);
+ // Default constructor.
+
+ ~IFR_Service (void);
+ // Destructor
+
+ int init (int argc,
+ char *argv[],
+ CORBA::Environment &ACE_TRY_ENV);
+ // Initialize the IFR service.
+
+ int run (CORBA::Environment &ACE_TRY_ENV);
+ // Run the IFR service.
+
+ int fini (CORBA::Environment &ACE_TRY_ENV);
+ // Shut down the IFR service.
+
+protected:
+ int create_poas (CORBA::Environment &ACE_TRY_ENV);
+ // Two persistent POAs, one using a servant locator.
+
+ int create_locator (CORBA::Environment &ACE_TRY_ENV);
+ // Create a servant locator and register it with its POA.
+
+ int open_config (CORBA::Environment &ACE_TRY_ENV);
+ // Open an ACE_Configuration of the appropriate type.
+
+ int create_repository (CORBA::Environment &ACE_TRY_ENV);
+ // Create and initialize the repository.
+
+ int init_multicast_server (CORBA::Environment &ACE_TRY_ENV);
+ // Enable the Interface Repository to answer multicast requests
+ // for its IOR.
+
+ CORBA::ORB_var orb_;
+ // Reference to our ORB.
+
+ PortableServer::POA_var root_poa_;
+ // Root POA reference.
+
+ PortableServer::POA_var repo_poa_;
+ // The Repository's POA reference.
+
+ PortableServer::POA_var ir_object_poa_;
+ // POA reference for all other IFR objects.
+
+ IFR_ServantLocator *servant_locator_impl_;
+ // Our servant locator implementation instance.
+
+ TAO_IOR_Multicast *ior_multicast_;
+ // Event handler that responds to resolve_initial_references requests.
+
+ ACE_Configuration *config_;
+ // Database for the IFR.
+
+ TAO_Repository_i *repo_impl_;
+ // The IFR implementation instance.
+
+ IR::Repository_ptr repository_;
+ // The Interface Repository object reference.
+
+ CORBA::String_var ifr_ior_;
+ // Interface Repository's IOR.
+};
+
+#endif /* IFR_SERVICE_H */