osaf/services/saf/amf/amfd/comptype.cc    |  12 +++--
 osaf/services/saf/amf/amfd/include/comp.h |  58 +++++++++++++++++-------------
 2 files changed, 39 insertions(+), 31 deletions(-)


diff --git a/osaf/services/saf/amf/amfd/comptype.cc 
b/osaf/services/saf/amf/amfd/comptype.cc
--- a/osaf/services/saf/amf/amfd/comptype.cc
+++ b/osaf/services/saf/amf/amfd/comptype.cc
@@ -31,7 +31,6 @@ AVD_COMP_GLOBALATTR avd_comp_global_attr
 
 AmfDb<std::string, AVD_COMP_TYPE> *comptype_db = NULL;
 
-
 static void comptype_db_add(AVD_COMP_TYPE *compt)
 {
        unsigned int rc = 
comptype_db->insert(Amf::to_string(&compt->name),compt);
@@ -77,6 +76,12 @@ void avd_comptype_remove_comp(AVD_COMP *
        }
 }
 
+//
+AVD_COMP_TYPE::AVD_COMP_TYPE(const SaNameT *dn) {
+  memcpy(&name.value, dn->value, dn->length);
+  name.length = dn->length;
+}
+
 static AVD_COMP_TYPE *comptype_create(const SaNameT *dn, const 
SaImmAttrValuesT_2 **attributes)
 {
        AVD_COMP_TYPE *compt;
@@ -85,10 +90,7 @@ static AVD_COMP_TYPE *comptype_create(co
 
        TRACE_ENTER2("'%s'", dn->value);
 
-       compt = new AVD_COMP_TYPE();
-
-       memcpy(compt->name.value, dn->value, dn->length);
-       compt->name.length = dn->length;
+       compt = new AVD_COMP_TYPE(dn);
 
        error = 
immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfCtCompCategory"), attributes, 
0, &compt->saAmfCtCompCategory);
        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
@@ -43,6 +43,7 @@
 #include "db_template.h"
 
 class AVD_SU;
+class AVD_COMP_TYPE;
 
 /* AMF Class SaAmfCompGlobalAttributes */
 typedef struct {
@@ -117,7 +118,7 @@ class AVD_COMP {
                          * comp has been assigned a CSI from
                          * current SI being assigned
                          */
-  struct avd_amf_comp_type_tag *comp_type;
+  AVD_COMP_TYPE *comp_type;
   AVD_COMP *comp_type_list_comp_next;
   AVD_SU *su;          /* SU to which this component belongs */
   AVD_COMP *su_comp_next;      /* the next component in list of  components
@@ -135,32 +136,37 @@ class AVD_COMP {
 extern AmfDb<std::string, AVD_COMP> *comp_db;
 
 /* AMF Class SaAmfCompType */
-typedef struct avd_amf_comp_type_tag {
+class AVD_COMP_TYPE {
+ public:
+  explicit AVD_COMP_TYPE(const SaNameT *dn);
+  SaNameT name {};
+  SaUint32T saAmfCtCompCategory {};
+  SaNameT saAmfCtSwBundle {};
+  char saAmfCtDefCmdEnv[AVSV_MISC_STR_MAX_SIZE] {};
+  SaTimeT saAmfCtDefClcCliTimeout {};
+  SaTimeT saAmfCtDefCallbackTimeout {};
+  char saAmfCtRelPathInstantiateCmd[AVSV_MISC_STR_MAX_SIZE] {};
+  char saAmfCtDefInstantiateCmdArgv[AVSV_MISC_STR_MAX_SIZE] {};
+  SaUint32T saAmfCtDefInstantiationLevel {};
+  char saAmfCtRelPathTerminateCmd[AVSV_MISC_STR_MAX_SIZE] {};
+  char saAmfCtDefTerminateCmdArgv[AVSV_MISC_STR_MAX_SIZE] {};
+  char saAmfCtRelPathCleanupCmd[AVSV_MISC_STR_MAX_SIZE] {};
+  char saAmfCtDefCleanupCmdArgv[AVSV_MISC_STR_MAX_SIZE] {};
+  char saAmfCtRelPathAmStartCmd[AVSV_MISC_STR_MAX_SIZE] {};
+  char saAmfCtDefAmStartCmdArgv[AVSV_MISC_STR_MAX_SIZE] {};
+  char saAmfCtRelPathAmStopCmd[AVSV_MISC_STR_MAX_SIZE] {};
+  char saAmfCtDefAmStopCmdArgv[AVSV_MISC_STR_MAX_SIZE] {};
+  SaTimeT saAmfCtDefQuiescingCompleteTimeout {};
+  SaAmfRecommendedRecoveryT saAmfCtDefRecoveryOnError {};
+  SaBoolT saAmfCtDefDisableRestart {};
 
-       SaNameT name;
-       SaUint32T saAmfCtCompCategory;
-       SaNameT saAmfCtSwBundle;
-       char saAmfCtDefCmdEnv[AVSV_MISC_STR_MAX_SIZE];
-       SaTimeT saAmfCtDefClcCliTimeout;
-       SaTimeT saAmfCtDefCallbackTimeout;
-       char saAmfCtRelPathInstantiateCmd[AVSV_MISC_STR_MAX_SIZE];
-       char saAmfCtDefInstantiateCmdArgv[AVSV_MISC_STR_MAX_SIZE];
-       SaUint32T saAmfCtDefInstantiationLevel;
-       char saAmfCtRelPathTerminateCmd[AVSV_MISC_STR_MAX_SIZE];
-       char saAmfCtDefTerminateCmdArgv[AVSV_MISC_STR_MAX_SIZE];
-       char saAmfCtRelPathCleanupCmd[AVSV_MISC_STR_MAX_SIZE];
-       char saAmfCtDefCleanupCmdArgv[AVSV_MISC_STR_MAX_SIZE];
-       char saAmfCtRelPathAmStartCmd[AVSV_MISC_STR_MAX_SIZE];
-       char saAmfCtDefAmStartCmdArgv[AVSV_MISC_STR_MAX_SIZE];
-       char saAmfCtRelPathAmStopCmd[AVSV_MISC_STR_MAX_SIZE];
-       char saAmfCtDefAmStopCmdArgv[AVSV_MISC_STR_MAX_SIZE];
-       SaTimeT saAmfCtDefQuiescingCompleteTimeout;
-       SaAmfRecommendedRecoveryT saAmfCtDefRecoveryOnError;
-       SaBoolT saAmfCtDefDisableRestart;
-
-       AVD_COMP *list_of_comp;
-
-} AVD_COMP_TYPE;
+  AVD_COMP* list_of_comp {};
+ private:
+  AVD_COMP_TYPE();
+  // disallow copy and assign
+  AVD_COMP_TYPE(const AVD_COMP_TYPE&);
+  void operator=(const AVD_COMP_TYPE&);
+};
 extern  AmfDb<std::string, AVD_COMP_TYPE> *comptype_db;
 
 /* AMF Class SaAmfCompCsType */

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

Reply via email to