diff options
Diffstat (limited to 'TAO/CIAO/DAnCE/Old_Config_Handlers/Dump_Obj.h')
-rw-r--r-- | TAO/CIAO/DAnCE/Old_Config_Handlers/Dump_Obj.h | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/TAO/CIAO/DAnCE/Old_Config_Handlers/Dump_Obj.h b/TAO/CIAO/DAnCE/Old_Config_Handlers/Dump_Obj.h new file mode 100644 index 00000000000..a3667376589 --- /dev/null +++ b/TAO/CIAO/DAnCE/Old_Config_Handlers/Dump_Obj.h @@ -0,0 +1,76 @@ +//================================================================== +/** + * @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 "ciao/DeploymentC.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +#pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "Config_Handler_export.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_Handler_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 <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*/ |