osaf/services/saf/amf/amfd/include/db_template.h |  39 +++++++++++++++++++++++-
 1 files changed, 38 insertions(+), 1 deletions(-)


SaNameTWrapper allows easy conversion from std::string to SaNameT required
by many API functions

diff --git a/osaf/services/saf/amf/amfd/include/db_template.h 
b/osaf/services/saf/amf/amfd/include/db_template.h
--- a/osaf/services/saf/amf/amfd/include/db_template.h
+++ b/osaf/services/saf/amf/amfd/include/db_template.h
@@ -17,6 +17,7 @@
 #ifndef DB_TEMPLATE_H
 #define        DB_TEMPLATE_H
 
+#include <osaf_extended_name.h>
 #include <map>
 #include <string>
 #include "saAis.h"
@@ -26,10 +27,46 @@
 class Amf {
 public:
   static std::string to_string(const SaNameT *name) {
-         return std::string((char*)name->value, name->length);
+    return osaf_extended_name_borrow(name);
   }
 };
 
+class SaNameTWrapper {
+public:
+  SaNameTWrapper(const std::string& str) {
+    osaf_extended_name_alloc(str.c_str(), &name);
+  };
+  ~SaNameTWrapper() {
+    clear();
+  };
+
+  // note: SaNameT* will become invalid if this SaNameTWrapper is destroyed
+  operator const SaNameT*() const {
+    return &name;
+  };
+ 
+  // note: SaNameT will become invalid if this SaNameTWrapper is destroyed
+  operator const SaNameT() const {
+    return name;
+  }
+
+  void set(const std::string& str) {
+    osaf_extended_name_free(&name);
+    osaf_extended_name_alloc(str.c_str(), &name);
+  };
+
+  void clear() {
+    osaf_extended_name_free(&name);
+  };
+
+  SaNameTWrapper(const SaNameTWrapper&) = delete;
+  SaNameTWrapper& operator=(const SaNameTWrapper&) = delete;
+  SaNameTWrapper() = delete;
+
+private:
+  SaNameT name{};
+};
+       
 //
 template <typename Key, typename T>
 class AmfDb {

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to