summaryrefslogtreecommitdiff
path: root/modules/CIAO/DAnCE/NodeApplication/ServerActivator_Impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/DAnCE/NodeApplication/ServerActivator_Impl.h')
-rw-r--r--modules/CIAO/DAnCE/NodeApplication/ServerActivator_Impl.h93
1 files changed, 93 insertions, 0 deletions
diff --git a/modules/CIAO/DAnCE/NodeApplication/ServerActivator_Impl.h b/modules/CIAO/DAnCE/NodeApplication/ServerActivator_Impl.h
new file mode 100644
index 00000000000..8ce81ca1db6
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeApplication/ServerActivator_Impl.h
@@ -0,0 +1,93 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file ServerActivator_Impl.h
+ *
+ * $Id$
+ *
+ * @Brief Implementation of Deployment::ServerActivator
+ *
+ * @author Erwin Gottlieb <eg@prismtech.com>
+ */
+//=============================================================================
+
+#ifndef SERVERACTIVATOR_IMPL_H_
+#define SERVERACTIVATOR_IMPL_H_
+
+#include "ace/Map_Manager.h"
+#include "tao/ORB.h"
+#include "orbsvcs/orbsvcs/CosNamingC.h"
+
+#include "Cdmw/CDMW_IDLS.h"
+#include "ComponentServer/ComponentServerS.h"
+#include "NodeApplication_Export.h"
+
+namespace DAnCE
+ {
+
+ class NodeApplication_Export ServerActivator_Impl : public virtual POA_Components::Deployment::ServerActivator
+ {
+ public:
+ ServerActivator_Impl (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa_,
+ Components::Deployment::ComponentInstallation_ptr compInst);
+ virtual ~ServerActivator_Impl();
+
+
+ //
+ // IDL:omg.org/Components/Deployment/ServerActivator/create_component_server:1.0
+ //
+ /**
+ * Creates a ComponentServer object on the host on which the
+ * ServerActivator is located.
+ *
+ * @param config ConfigValues for creation of ComponentServer.
+ * For CDMW CCM, this sequence should contain a
+ * PROCESS_DESTINATION ConfigValue which specify the
+ * destination of an already started ComponentServer process.
+ *
+ * @throws CreateFailure
+ * INVALID_PROCESS_DESTINATION: raised if the destination
+ * specified in PROCESS_DESTINATION ConfigValue is not valid.<br>
+ * COMPONENT_SERVER_NOT_CREATED: raised if the ComponentServer could
+ * not be contacted (it should be started by PlatformManagement before
+ * the call to ServerActivator).<br>
+ * COMPONENT_SERVER_ALREADY_CREATED: raised if this method has already
+ * been called with the same PROCESS_DESTINATION ConfigValue.
+ * @throws InvalidConfiguration
+ * raised if the config parameter doesn't contain a single
+ * PROCESS_DESTINATION ConfigValue.
+ */
+ virtual ::Components::Deployment::ComponentServer_ptr create_component_server (
+ const ::Components::ConfigValues & config
+ );
+
+ //
+ // IDL:omg.org/Components/Deployment/ServerActivator/remove_component_server:1.0
+ //
+ virtual void remove_component_server (
+ ::Components::Deployment::ComponentServer_ptr server
+ );
+
+ //
+ // IDL:omg.org/Components/Deployment/ServerActivator/get_component_servers:1.0
+ //
+ virtual ::Components::Deployment::ComponentServers * get_component_servers (
+ );
+
+ private:
+ typedef ACE_Map_Manager<ACE_CString, ::Components::Deployment::ComponentServer_var, ACE_Null_Mutex > TCompServers;
+ TCompServers servers_;
+
+ CORBA::ORB_var orb_;
+ PortableServer::POA_var poa_;
+ CosNaming::NamingContext_var naming_;
+ Components::Deployment::ComponentInstallation_var compInst_;
+
+ private:
+ void initializeComponentServer (::Components::Deployment::ComponentServer_ptr server);
+ };
+};
+
+#endif /*SERVERACTIVATOR_IMPL_H_*/