osaf/services/saf/amf/amfnd/compdb.cc | 55 +++++++++++++----------- osaf/services/saf/amf/amfnd/include/avnd_comp.h | 2 +- osaf/services/saf/amf/amfnd/proxydb.cc | 1 + 3 files changed, 31 insertions(+), 27 deletions(-)
Use a pointer to std::bitset instead to remain POD. diff --git a/osaf/services/saf/amf/amfnd/compdb.cc b/osaf/services/saf/amf/amfnd/compdb.cc --- a/osaf/services/saf/amf/amfnd/compdb.cc +++ b/osaf/services/saf/amf/amfnd/compdb.cc @@ -256,6 +256,7 @@ AVND_COMP *avnd_compdb_rec_add(AVND_CB * /* a fresh comp... */ comp = new AVND_COMP(); + comp->use_comptype_attr = new std::bitset<NumAttrs>; /* * Update the config parameters. @@ -918,23 +919,23 @@ uint32_t avnd_comptype_oper_req(AVND_CB case saAmfCtDefCallbackTimeout_ID: { SaTimeT saAmfCtDefCallbackTimeout = *((SaTimeT *) param->value); osafassert(sizeof(SaTimeT) == param->value_len); - if (comp->use_comptype_attr.test(PxiedInstCallbackTimeout)) { + if (comp->use_comptype_attr->test(PxiedInstCallbackTimeout)) { comp->pxied_inst_cbk_timeout = saAmfCtDefCallbackTimeout; TRACE("comp->pxied_inst_cbk_timeout modified to '%llu'", comp->pxied_inst_cbk_timeout); } - if (comp->use_comptype_attr.test(TerminateCallbackTimeout)) { + if (comp->use_comptype_attr->test(TerminateCallbackTimeout)) { comp->term_cbk_timeout = saAmfCtDefCallbackTimeout; TRACE("comp->term_cbk_timeout modified to '%llu'", comp->term_cbk_timeout); } - if (comp->use_comptype_attr.test(PxiedCleanupCallbackTimeout)) { + if (comp->use_comptype_attr->test(PxiedCleanupCallbackTimeout)) { comp->pxied_clean_cbk_timeout = saAmfCtDefCallbackTimeout; TRACE("comp->pxied_clean_cbk_timeout modified to '%llu'", comp->pxied_clean_cbk_timeout); } - if (comp->use_comptype_attr.test(CsiSetCallbackTimeout)) { + if (comp->use_comptype_attr->test(CsiSetCallbackTimeout)) { comp->csi_set_cbk_timeout = saAmfCtDefCallbackTimeout; TRACE("comp->csi_set_cbk_timeout modified to '%llu'", comp->csi_set_cbk_timeout); } - if (comp->use_comptype_attr.test(CsiRemoveCallbackTimeout)) { + if (comp->use_comptype_attr->test(CsiRemoveCallbackTimeout)) { comp->csi_rmv_cbk_timeout = saAmfCtDefCallbackTimeout; TRACE("comp->csi_rmv_cbk_timeout modified to '%llu'", comp->csi_rmv_cbk_timeout); } @@ -944,27 +945,27 @@ uint32_t avnd_comptype_oper_req(AVND_CB AVND_COMP_CLC_CMD_PARAM *cmd; SaTimeT saAmfCtDefClcCliTimeout = *((SaTimeT *) param->value); osafassert(sizeof(SaTimeT) == param->value_len); - if (comp->use_comptype_attr.test(CompInstantiateTimeout)) { + if (comp->use_comptype_attr->test(CompInstantiateTimeout)) { cmd = &comp->clc_info.cmds[AVND_COMP_CLC_CMD_TYPE_INSTANTIATE - 1]; cmd->timeout = saAmfCtDefClcCliTimeout; TRACE("cmd->timeout (Instantiate) modified to '%llu'", cmd->timeout); } - if (comp->use_comptype_attr.test(CompTerminateTimeout)) { + if (comp->use_comptype_attr->test(CompTerminateTimeout)) { cmd = &comp->clc_info.cmds[AVND_COMP_CLC_CMD_TYPE_TERMINATE - 1]; cmd->timeout = saAmfCtDefClcCliTimeout; TRACE("cmd->timeout (Terminate) modified to '%llu'", cmd->timeout); } - if (comp->use_comptype_attr.test(CompCleanupTimeout)) { + if (comp->use_comptype_attr->test(CompCleanupTimeout)) { cmd = &comp->clc_info.cmds[AVND_COMP_CLC_CMD_TYPE_CLEANUP - 1]; cmd->timeout = saAmfCtDefClcCliTimeout; TRACE("cmd->timeout (Cleanup) modified to '%llu'", cmd->timeout); } - if (comp->use_comptype_attr.test(CompAmStartTimeout)) { + if (comp->use_comptype_attr->test(CompAmStartTimeout)) { cmd = &comp->clc_info.cmds[AVND_COMP_CLC_CMD_TYPE_AMSTART - 1]; cmd->timeout = saAmfCtDefClcCliTimeout; TRACE("cmd->timeout (AM Start) modified to '%llu'", cmd->timeout); } - if (comp->use_comptype_attr.test(CompAmStopTimeout)) { + if (comp->use_comptype_attr->test(CompAmStopTimeout)) { cmd = &comp->clc_info.cmds[AVND_COMP_CLC_CMD_TYPE_AMSTOP - 1]; cmd->timeout = saAmfCtDefClcCliTimeout; TRACE("cmd->timeout (AM Stop) modified to '%llu'", cmd->timeout); @@ -974,7 +975,7 @@ uint32_t avnd_comptype_oper_req(AVND_CB case saAmfCtDefQuiescingCompleteTimeout_ID: { SaTimeT saAmfCtDefQuiescingCompleteTimeout = *((SaTimeT *) param->value); osafassert(sizeof(SaTimeT) == param->value_len); - if (comp->use_comptype_attr.test(DefQuiescingCompleteTimeout)) { + if (comp->use_comptype_attr->test(DefQuiescingCompleteTimeout)) { comp->quies_complete_cbk_timeout = saAmfCtDefQuiescingCompleteTimeout; TRACE("comp->quies_complete_cbk_timeout modified to '%llu'", comp->quies_complete_cbk_timeout); } @@ -983,7 +984,7 @@ uint32_t avnd_comptype_oper_req(AVND_CB case saAmfCtDefRecoveryOnError_ID: { SaAmfRecommendedRecoveryT saAmfCtDefRecoveryOnError = *((SaAmfRecommendedRecoveryT *) param->value); osafassert(sizeof(SaAmfRecommendedRecoveryT) == param->value_len); - if (comp->use_comptype_attr.test(DefRecoveryOnError)) { + if (comp->use_comptype_attr->test(DefRecoveryOnError)) { comp->err_info.def_rec = saAmfCtDefRecoveryOnError; TRACE("comp->err_info.def_rec modified to '%u'", comp->err_info.def_rec); } @@ -992,7 +993,7 @@ uint32_t avnd_comptype_oper_req(AVND_CB case saAmfCtDefDisableRestart_ID: { SaBoolT saAmfCtDefDisableRestart = *((SaBoolT *) param->value); osafassert(sizeof(SaBoolT) == param->value_len); - if (comp->use_comptype_attr.test(DefDisableRestart)) { + if (comp->use_comptype_attr->test(DefDisableRestart)) { comp->is_restart_en = (saAmfCtDefDisableRestart == true) ? false : true; TRACE("comp->is_restart_en modified to '%u'", comp->is_restart_en); } @@ -1407,8 +1408,8 @@ static void init_clc_cli_attributes(AVND attributes, 0, &cmd->timeout) != SA_AIS_OK) { cmd->timeout = comptype->saAmfCtDefClcCliTimeout; comp->pxied_inst_cbk_timeout = comptype->saAmfCtDefCallbackTimeout; - comp->use_comptype_attr.set(PxiedInstCallbackTimeout); - comp->use_comptype_attr.set(CompInstantiateTimeout); + comp->use_comptype_attr->set(PxiedInstCallbackTimeout); + comp->use_comptype_attr->set(CompInstantiateTimeout); } else { comp->pxied_inst_cbk_timeout = cmd->timeout; } @@ -1425,8 +1426,8 @@ static void init_clc_cli_attributes(AVND if (m_AVND_COMP_TYPE_IS_PREINSTANTIABLE(comp)) { cmd->timeout = comptype->saAmfCtDefCallbackTimeout; comp->term_cbk_timeout = cmd->timeout; - comp->use_comptype_attr.set(TerminateCallbackTimeout); - comp->use_comptype_attr.set(CompTerminateTimeout); + comp->use_comptype_attr->set(TerminateCallbackTimeout); + comp->use_comptype_attr->set(CompTerminateTimeout); } else cmd->timeout = comptype->saAmfCtDefClcCliTimeout; @@ -1443,8 +1444,8 @@ static void init_clc_cli_attributes(AVND attributes, 0, &cmd->timeout) != SA_AIS_OK) { cmd->timeout = comptype->saAmfCtDefClcCliTimeout; comp->pxied_clean_cbk_timeout = comptype->saAmfCtDefCallbackTimeout; - comp->use_comptype_attr.set(PxiedCleanupCallbackTimeout); - comp->use_comptype_attr.set(CompCleanupTimeout); + comp->use_comptype_attr->set(PxiedCleanupCallbackTimeout); + comp->use_comptype_attr->set(CompCleanupTimeout); } else { comp->pxied_clean_cbk_timeout = cmd->timeout; } @@ -1460,7 +1461,7 @@ static void init_clc_cli_attributes(AVND if (immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfCompAmStartTimeout"), attributes, 0, &cmd->timeout) != SA_AIS_OK) { cmd->timeout = comptype->saAmfCtDefClcCliTimeout; - comp->use_comptype_attr.set(CompAmStartTimeout); + comp->use_comptype_attr->set(CompAmStartTimeout); } cmd = &comp->clc_info.cmds[AVND_COMP_CLC_CMD_TYPE_AMSTOP - 1]; @@ -1473,7 +1474,7 @@ static void init_clc_cli_attributes(AVND if (immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfCompAmStopTimeout"), attributes, 0, &cmd->timeout) != SA_AIS_OK) { cmd->timeout = comptype->saAmfCtDefClcCliTimeout; - comp->use_comptype_attr.set(CompAmStopTimeout); + comp->use_comptype_attr->set(CompAmStopTimeout); } cmd = &comp->clc_info.cmds[AVND_COMP_CLC_CMD_TYPE_HC - 1]; @@ -1557,22 +1558,22 @@ static int comp_init(AVND_COMP *comp, co if (immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfCompCSISetCallbackTimeout"), attributes, 0, &comp->csi_set_cbk_timeout) != SA_AIS_OK) comp->csi_set_cbk_timeout = comptype->saAmfCtDefCallbackTimeout; - comp->use_comptype_attr.set(CsiSetCallbackTimeout); + comp->use_comptype_attr->set(CsiSetCallbackTimeout); if (immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfCompCSIRmvCallbackTimeout"), attributes, 0, &comp->csi_rmv_cbk_timeout) != SA_AIS_OK) comp->csi_rmv_cbk_timeout = comptype->saAmfCtDefCallbackTimeout; - comp->use_comptype_attr.set(CsiRemoveCallbackTimeout); + comp->use_comptype_attr->set(CsiRemoveCallbackTimeout); if (immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfCompQuiescingCompleteTimeout"), attributes, 0, &comp->quies_complete_cbk_timeout) != SA_AIS_OK) { comp->quies_complete_cbk_timeout = comptype->saAmfCompQuiescingCompleteTimeout; - comp->use_comptype_attr.set(DefQuiescingCompleteTimeout); + comp->use_comptype_attr->set(DefQuiescingCompleteTimeout); } if (immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfCompRecoveryOnError"), attributes, 0, &comp->err_info.def_rec) != SA_AIS_OK) { comp->err_info.def_rec = comptype->saAmfCtDefRecoveryOnError; - comp->use_comptype_attr.set(DefRecoveryOnError); + comp->use_comptype_attr->set(DefRecoveryOnError); } else { if ((SaAmfRecommendedRecoveryT)comp->err_info.def_rec == SA_AMF_NO_RECOMMENDATION) { comp->err_info.def_rec = SA_AMF_COMPONENT_FAILOVER; @@ -1583,7 +1584,7 @@ static int comp_init(AVND_COMP *comp, co if (immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfCompDisableRestart"), attributes, 0, &disable_restart) != SA_AIS_OK) { disable_restart = comptype->saAmfCtDefDisableRestart; - comp->use_comptype_attr.set(DefDisableRestart); + comp->use_comptype_attr->set(DefDisableRestart); } comp->is_restart_en = (disable_restart == true) ? false : true; @@ -1671,6 +1672,7 @@ void avnd_comp_delete(AVND_COMP *comp) delete [] comp->saAmfCompCmdEnv; } + delete comp->use_comptype_attr; delete comp; return; } @@ -1694,6 +1696,7 @@ static AVND_COMP *avnd_comp_create(const TRACE_ENTER2("%s", comp_name->value); comp = new AVND_COMP(); + comp->use_comptype_attr = new std::bitset<NumAttrs>; memcpy(&comp->name, comp_name, sizeof(comp->name)); comp->name.length = comp_name->length; diff --git a/osaf/services/saf/amf/amfnd/include/avnd_comp.h b/osaf/services/saf/amf/amfnd/include/avnd_comp.h --- a/osaf/services/saf/amf/amfnd/include/avnd_comp.h +++ b/osaf/services/saf/amf/amfnd/include/avnd_comp.h @@ -383,7 +383,7 @@ typedef struct avnd_comp_tag { bool error_report_sent; /* true when error is repoted on component using saAmfComponentErrorReport() or saAmfComponentErrorReport_4()*/ - std::bitset<NumAttrs> use_comptype_attr; + std::bitset<NumAttrs> *use_comptype_attr; } AVND_COMP; diff --git a/osaf/services/saf/amf/amfnd/proxydb.cc b/osaf/services/saf/amf/amfnd/proxydb.cc --- a/osaf/services/saf/amf/amfnd/proxydb.cc +++ b/osaf/services/saf/amf/amfnd/proxydb.cc @@ -235,6 +235,7 @@ AVND_COMP *avnd_internode_comp_add(NCS_P /* a fresh comp... */ comp = new AVND_COMP(); + comp->use_comptype_attr = new std::bitset<NumAttrs>; /* update the comp-name (patricia key) */ memcpy(&comp->name, name, sizeof(SaNameT)); ------------------------------------------------------------------------------ _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel