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