+ Add Lennart to reviewers list
Those methods that are wrapped inside 'extern "C"'
(/smf/smfd/SmfUtils.h) seem to be called from C++ source files only.
So, perhaps the simple fix for that is moving them out of 'extern "C"'.
Regards, Vu
On 8/20/19 8:12 AM, Thanh Nguyen wrote:
Faults in C linkage for PBE area is fixed.
---
src/smf/smfd/SmfUpgradeCampaign.cc | 3 ++-
src/smf/smfd/SmfUtils.cc | 14 ++++++++++++++
src/smf/smfd/SmfUtils.h | 10 ++++++++--
3 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/src/smf/smfd/SmfUpgradeCampaign.cc
b/src/smf/smfd/SmfUpgradeCampaign.cc
index 3c50bf7..4a1591a 100644
--- a/src/smf/smfd/SmfUpgradeCampaign.cc
+++ b/src/smf/smfd/SmfUpgradeCampaign.cc
@@ -930,7 +930,8 @@ void SmfUpgradeCampaign::continueExec() {
if (o_result == true) {
LOG_NO("The campaign have been restarted to many times");
int cnt = smfd_cb->smfCampMaxRestart;
- std::string error = "To many campaign restarts, max " + cnt;
+ std::string error = "To many campaign restarts, max "
+ + std::to_string(cnt);
SmfCampaignThread::instance()->campaign()->setError(error);
changeState(SmfCampStateExecFailed::instance());
TRACE_LEAVE();
diff --git a/src/smf/smfd/SmfUtils.cc b/src/smf/smfd/SmfUtils.cc
index 882a3e6..0abb4b1 100644
--- a/src/smf/smfd/SmfUtils.cc
+++ b/src/smf/smfd/SmfUtils.cc
@@ -1091,6 +1091,13 @@ std::string smf_valueToString(SaImmAttrValueT value,
SaImmValueTypeT type) {
return ost.str();
}
+char* smf_valueToString(char* buffer, SaImmAttrValueT value,
+ SaImmValueTypeT type) {
+ std::string tmp = smf_valueToString(value, type);
+ memcpy(buffer, tmp.c_str(), tmp.length());
+ return buffer;
+}
+
//
------------------------------------------------------------------------------
// smf_opStringToInt()
//
------------------------------------------------------------------------------
@@ -1342,6 +1349,13 @@ const std::string smfStateToString(const uint32_t
&i_stateId,
}
}
+char* smfStateToString(char* buffer, const uint32_t &i_stateId,
+ const uint32_t &i_state) {
+ std::string tmp = smfStateToString(i_stateId, i_state);
+ memcpy(buffer, tmp.c_str(), tmp.length());
+ return buffer;
+}
+
bool compare_du_part(unitNameAndState &first, unitNameAndState &second) {
unsigned int i = 0;
while ((i < first.name.length()) && (i < second.name.length())) {
diff --git a/src/smf/smfd/SmfUtils.h b/src/smf/smfd/SmfUtils.h
index 894e3c9..394c000 100644
--- a/src/smf/smfd/SmfUtils.h
+++ b/src/smf/smfd/SmfUtils.h
@@ -42,6 +42,12 @@
class SmfImmOperation;
class SmfRollbackCcb;
+extern std::string smf_valueToString(SaImmAttrValueT value,
+ SaImmValueTypeT type);
+extern const std::string smfStateToString(const uint32_t& i_stateId,
+ const uint32_t& i_state);
+
+
/* ========================================================================
* TYPE DEFINITIONS
* ========================================================================
@@ -62,14 +68,14 @@ extern bool smf_stringsToValues(SaImmAttrValuesT_2*
i_attribute,
std::list<std::string>& i_values);
extern bool smf_stringToValue(SaImmValueTypeT i_type, SaImmAttrValueT*
i_value,
const char* i_str);
-extern std::string smf_valueToString(SaImmAttrValueT value,
+extern char* smf_valueToString(char* buffer, SaImmAttrValueT value,
SaImmValueTypeT type);
extern int smf_opStringToInt(const char* i_str);
extern int smf_system(std::string i_cmd);
extern void updateSaflog(const std::string& i_dn, const uint32_t& i_stateId,
const uint32_t& i_newState,
const uint32_t& i_oldState);
-extern const std::string smfStateToString(const uint32_t& i_stateId,
+extern char* smfStateToString(char* buffer, const uint32_t& i_stateId,
const uint32_t& i_state);
extern bool compare_du_part(unitNameAndState& first, unitNameAndState&
second);
extern bool unique_du_part(unitNameAndState& first, unitNameAndState& second);
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel