summaryrefslogtreecommitdiff
path: root/ACE/examples/APG/Naming/Name_Binding.h
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/examples/APG/Naming/Name_Binding.h')
-rw-r--r--ACE/examples/APG/Naming/Name_Binding.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/ACE/examples/APG/Naming/Name_Binding.h b/ACE/examples/APG/Naming/Name_Binding.h
new file mode 100644
index 00000000000..1feecae91e4
--- /dev/null
+++ b/ACE/examples/APG/Naming/Name_Binding.h
@@ -0,0 +1,61 @@
+/* -*- C++ -*- */
+// $Id$
+
+#ifndef NAME_BINDING_H
+#define NAME_BINDING_H
+
+#include "ace/OS_NS_stdlib.h"
+#include "ace/OS_NS_string.h"
+#include "ace/Auto_Ptr.h"
+#include "ace/Name_Space.h"
+
+// Listing 1 code/ch21
+class Name_Binding
+{
+public:
+ Name_Binding (ACE_Name_Binding *entry)
+ {
+ this->name_ = entry->name_.char_rep ();
+ this->value_ = entry->value_.char_rep ();
+ this->type_ = ACE_OS::strdup (entry->type_);
+ }
+
+ Name_Binding (const ACE_NS_WString &n,
+ const ACE_NS_WString &v,
+ const char *t)
+ {
+ this->name_ = n.char_rep ();
+ this->value_ = v.char_rep ();
+ this->type_ = ACE_OS::strdup (t);
+ }
+
+ ~Name_Binding ()
+ {
+ delete[] this->name_;
+ delete[] this->value_;
+ ACE_OS::free (const_cast<char*> (this->type_));
+ this->type_ = 0;
+ }
+
+ char *name (void)
+ { return this->name_; }
+
+ char *value (void)
+ { return this->value_; }
+
+ const char *type (void)
+ { return this->type_; }
+
+ int int_value (void)
+ { return ACE_OS::atoi (this->value ()); }
+
+private:
+ char *name_;
+ char *value_;
+ char *type_;
+};
+
+typedef auto_ptr<Name_Binding> Name_Binding_Ptr;
+// Listing 1
+
+#endif /* NAME_BINDING_H */