summaryrefslogtreecommitdiff
path: root/CIAO/DAnCE/Config_Handlers/Dump_Obj.h
diff options
context:
space:
mode:
Diffstat (limited to 'CIAO/DAnCE/Config_Handlers/Dump_Obj.h')
-rw-r--r--CIAO/DAnCE/Config_Handlers/Dump_Obj.h77
1 files changed, 77 insertions, 0 deletions
diff --git a/CIAO/DAnCE/Config_Handlers/Dump_Obj.h b/CIAO/DAnCE/Config_Handlers/Dump_Obj.h
new file mode 100644
index 00000000000..babffe43bac
--- /dev/null
+++ b/CIAO/DAnCE/Config_Handlers/Dump_Obj.h
@@ -0,0 +1,77 @@
+//==================================================================
+/**
+* @file Dump_Obj.h
+*
+* $Id$
+*
+* @author Gan Deng <gan.deng@vanderbilt.edu>
+*/
+//=====================================================================
+
+#ifndef CIAO_DUMP_OBJ_H
+#define CIAO_DUMP_OBJ_H
+#include /**/ "ace/pre.h"
+
+#include "DAnCE/Deployment/DeploymentC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Config_Handlers_Export.h"
+#include "tao/AnyTypeCode/Any.h"
+#include <string>
+#include <map>
+
+namespace Deployment
+{
+/*
+* @brief class Dump_Obj handles the indentation and keeps a map of
+* structures for reference look-up.
+*/
+class Config_Handlers_Export Dump_Obj
+{
+ public:
+ /// Exception thrown when there is a node with the same name in the
+ /// map
+ class Node_Exist { };
+
+ /// Exception thrown when there is no node with the name given in
+ /// the map
+ class Node_Not_Exist { };
+
+ /// Constructors prints out the caption and increases indent
+ Dump_Obj (const char *caption);
+
+ /// Additionally insets @a val into the map
+ Dump_Obj (const char* caption, CORBA::Any &val);
+
+ /// Destructor
+ ~Dump_Obj (void);
+
+ /// return the indent string
+ static const char* indent()
+ {
+ return indent_.c_str();
+ }
+
+ static CORBA::Any& desc(const char* caption)
+ {
+ return desc_map_[caption];
+ }
+
+private:
+ /// indent string
+ static std::string indent_;
+
+ /// map for reference lookup
+ static std::map<std::string, CORBA::Any> desc_map_;
+
+ /// descriptor - used by destructor for deleting the
+ /// correct descriptor from the map
+ std::string desc_;
+};
+}
+
+#include /**/ "ace/post.h"
+#endif /*CIAO_DUMP_OBJ_H*/