summaryrefslogtreecommitdiff
path: root/ACE/examples/APG/Naming/Graphable_Element.h
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/examples/APG/Naming/Graphable_Element.h')
-rw-r--r--ACE/examples/APG/Naming/Graphable_Element.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/ACE/examples/APG/Naming/Graphable_Element.h b/ACE/examples/APG/Naming/Graphable_Element.h
new file mode 100644
index 00000000000..42758934993
--- /dev/null
+++ b/ACE/examples/APG/Naming/Graphable_Element.h
@@ -0,0 +1,53 @@
+/* -*- C++ -*- */
+// $Id$
+
+#ifndef GRAPHABLE_ELEMENT_H
+#define GRAPHABLE_ELEMENT_H
+
+#include "Name_Binding.h"
+#include <list>
+
+// A helper class that knows how to sort two ACE_Name_Binding objects
+// which contain temperature metrics. The value stored in the binding
+// is expected to be of the format "time|temp".
+//
+// Listing 1 code/ch21
+class Graphable_Element : public Name_Binding
+{
+public:
+ Graphable_Element (ACE_Name_Binding *entry)
+ : Name_Binding(entry)
+ {
+ sscanf (this->value (), "%d|%f", &this->when_, &this->temp_);
+ }
+ // Listing 1
+
+ // Listing 2 code/ch21
+ inline int when (void) const
+ {
+ return this->when_;
+ }
+
+ inline float temp (void)
+ {
+ return this->temp_;
+ }
+ // Listing 2
+
+ // Listing 3 code/ch21
+ inline bool operator< (const Graphable_Element &other) const
+ {
+ return this->when () < other.when ();
+ }
+ // Listing 3
+
+ // Listing 4 code/ch21
+private:
+ int when_;
+ float temp_;
+};
+
+typedef std::list<Graphable_Element> Graphable_Element_List;
+// Listing 4
+
+#endif /* GRAPHABLE_ELEMENT_H */