osaf/services/saf/amf/amfd/include/svctypecstype.h |  21 ++++++++++++++-------
 osaf/services/saf/amf/amfd/svctypecstypes.cc       |  10 ++++++----
 2 files changed, 20 insertions(+), 11 deletions(-)


diff --git a/osaf/services/saf/amf/amfd/include/svctypecstype.h 
b/osaf/services/saf/amf/amfd/include/svctypecstype.h
--- a/osaf/services/saf/amf/amfd/include/svctypecstype.h
+++ b/osaf/services/saf/amf/amfd/include/svctypecstype.h
@@ -16,16 +16,23 @@
 #ifndef SVCTYPECSTYPE_H
 #define SVCTYPECSTYPE_H
 
-typedef struct {
-       SaNameT name;
-       SaUint32T saAmfSvctMaxNumCSIs;
+class AVD_SVC_TYPE_CS_TYPE {
+ public:
+  explicit AVD_SVC_TYPE_CS_TYPE(const SaNameT *dn);
 
-       SaUint32T curr_num_csis;
+  SaNameT name {};
+  SaUint32T saAmfSvctMaxNumCSIs {};
 
-       struct avd_amf_svc_type_tag *cs_type_on_svc_type;
-       struct avd_svc_type_cs_type_tag *cs_type_list_svc_type_next;
+  SaUint32T curr_num_csis {};
 
-} AVD_SVC_TYPE_CS_TYPE;
+  struct avd_amf_svc_type_tag *cs_type_on_svc_type {};
+  struct avd_svc_type_cs_type_tag *cs_type_list_svc_type_next {};
+ private:
+  AVD_SVC_TYPE_CS_TYPE();
+  // disallow copy and assign
+  AVD_SVC_TYPE_CS_TYPE(const AVD_SVC_TYPE_CS_TYPE&);
+  void operator=(const AVD_SVC_TYPE_CS_TYPE&);
+};
 
 SaAisErrorT avd_svctypecstypes_config_get(SaNameT *svctype_name);
 void avd_svctypecstypes_constructor(void);
diff --git a/osaf/services/saf/amf/amfd/svctypecstypes.cc 
b/osaf/services/saf/amf/amfd/svctypecstypes.cc
--- a/osaf/services/saf/amf/amfd/svctypecstypes.cc
+++ b/osaf/services/saf/amf/amfd/svctypecstypes.cc
@@ -30,6 +30,11 @@ static void svctypecstype_db_add(AVD_SVC
        osafassert(rc == NCSCC_RC_SUCCESS);
 }
 
+//
+AVD_SVC_TYPE_CS_TYPE::AVD_SVC_TYPE_CS_TYPE(const SaNameT *dn) {
+  memcpy(&name.value, dn->value, dn->length);
+  name.length = dn->length;
+}
 
 static AVD_SVC_TYPE_CS_TYPE *svctypecstypes_create(SaNameT *dn, const 
SaImmAttrValuesT_2 **attributes)
 {
@@ -37,10 +42,7 @@ static AVD_SVC_TYPE_CS_TYPE *svctypecsty
 
        TRACE_ENTER2("'%s'", dn->value);
 
-       svctypecstype = new AVD_SVC_TYPE_CS_TYPE();
-
-       memcpy(svctypecstype->name.value, dn->value, dn->length);
-       svctypecstype->name.length = dn->length;
+       svctypecstype = new AVD_SVC_TYPE_CS_TYPE(dn);
 
        if (immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfSvctMaxNumCSIs"), 
attributes, 0, &svctypecstype->saAmfSvctMaxNumCSIs) != SA_AIS_OK)
                svctypecstype->saAmfSvctMaxNumCSIs = -1; /* no limit */

------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to