summaryrefslogtreecommitdiff
path: root/modules/CIAO/DAnCE/DomainApplicationManager/Node_Locator.h
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/DAnCE/DomainApplicationManager/Node_Locator.h')
-rw-r--r--modules/CIAO/DAnCE/DomainApplicationManager/Node_Locator.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/modules/CIAO/DAnCE/DomainApplicationManager/Node_Locator.h b/modules/CIAO/DAnCE/DomainApplicationManager/Node_Locator.h
new file mode 100644
index 00000000000..0708ef2b911
--- /dev/null
+++ b/modules/CIAO/DAnCE/DomainApplicationManager/Node_Locator.h
@@ -0,0 +1,55 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Node_Locator.h
+ *
+ * $Id$
+ *
+ * @brief Locates NodeManager instances.
+ *
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef NODE_LOCATOR_H_
+#define NODE_LOCATOR_H_
+
+#include "ace/Map_Manager.h"
+#include "orbsvcs/orbsvcs/CosNamingC.h"
+#include "tao/ORB.h"
+#include "DAnCE/Deployment/Deployment_NodeManagerC.h"
+#include "DomainApplicationManager/DomainApplicationManager_Export.h"
+
+namespace DAnCE
+{
+ class DomainApplicationManager_Export Node_Locator
+ {
+ public:
+ Node_Locator (CORBA::ORB_ptr orb,
+ CosNaming::NamingContext_ptr nc);
+
+ ::Deployment::NodeManager_ptr locate_node (const ACE_TCHAR *name);
+
+ bool process_node_map (const ACE_TCHAR *file);
+
+ void store_ior (const ACE_TCHAR *name, const ACE_TCHAR *ior);
+
+ private:
+ ::Deployment::NodeManager_ptr resolve_ior (const ACE_TCHAR *name,
+ const ACE_TCHAR *ior);
+
+ ::Deployment::NodeManager_ptr ns_lookup (const ACE_TCHAR *name);
+
+ typedef ACE_Map_Manager<ACE_TString,
+ ACE_TString,
+ ACE_Null_Mutex> NODEMAP;
+
+ NODEMAP nodes_;
+ CORBA::ORB_var orb_;
+ CosNaming::NamingContext_var nc_;
+ };
+
+}
+
+#endif /* NODE_LOCATOR_H_ */