osaf/services/saf/amf/amfd/ctcstype.cc    |  12 +++++++++---
 osaf/services/saf/amf/amfd/include/comp.h |  22 +++++++++++++++-------
 2 files changed, 24 insertions(+), 10 deletions(-)


diff --git a/osaf/services/saf/amf/amfd/ctcstype.cc 
b/osaf/services/saf/amf/amfd/ctcstype.cc
--- a/osaf/services/saf/amf/amfd/ctcstype.cc
+++ b/osaf/services/saf/amf/amfd/ctcstype.cc
@@ -86,6 +86,13 @@ static int is_config_valid(const SaNameT
        return 1;
 }
 
+//
+AVD_CTCS_TYPE::AVD_CTCS_TYPE(const SaNameT *dn) {
+  memcpy(&name.value, dn->value, dn->length);
+  name.length = dn->length;
+}
+
+//
 static AVD_CTCS_TYPE *ctcstype_create(const SaNameT *dn, const 
SaImmAttrValuesT_2 **attributes)
 {
        AVD_CTCS_TYPE *ctcstype;
@@ -94,10 +101,9 @@ static AVD_CTCS_TYPE *ctcstype_create(co
 
        TRACE_ENTER2("'%s'", dn->value);
 
-       ctcstype = new AVD_CTCS_TYPE();
+       ctcstype = new AVD_CTCS_TYPE(dn);
 
-       memcpy(ctcstype->name.value, dn->value, dn->length);
-       ctcstype->name.length = dn->length;
+       
 
        error = 
immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfCtCompCapability"), 
attributes, 0, &ctcstype->saAmfCtCompCapability);
        osafassert(error == SA_AIS_OK);
diff --git a/osaf/services/saf/amf/amfd/include/comp.h 
b/osaf/services/saf/amf/amfd/include/comp.h
--- a/osaf/services/saf/amf/amfd/include/comp.h
+++ b/osaf/services/saf/amf/amfd/include/comp.h
@@ -185,13 +185,21 @@ private:
 extern  AmfDb<std::string, AVD_COMPCS_TYPE> *compcstype_db;
 
 /* AMF Class SaAmfCtCsType */
-typedef struct {
-       SaNameT name;
-       SaAmfCompCapabilityModelT saAmfCtCompCapability;
-       SaUint32T saAmfCtDefNumMaxActiveCSIs;
-       SaUint32T saAmfCtDefNumMaxStandbyCSIs;
-       AVD_COMP_TYPE *comptype;
-} AVD_CTCS_TYPE;
+class AVD_CTCS_TYPE {
+ public:
+  explicit AVD_CTCS_TYPE(const SaNameT *dn);
+
+  SaNameT name {};
+  SaAmfCompCapabilityModelT saAmfCtCompCapability {};
+  SaUint32T saAmfCtDefNumMaxActiveCSIs {};
+  SaUint32T saAmfCtDefNumMaxStandbyCSIs {};
+  AVD_COMP_TYPE *comptype {};
+ private:
+  AVD_CTCS_TYPE();
+  // disallow copy and assign
+  AVD_CTCS_TYPE(const AVD_CTCS_TYPE&);
+  void operator=(const AVD_CTCS_TYPE&);
+};
 
 extern AmfDb<std::string, AVD_CTCS_TYPE> *ctcstype_db;
 

------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to