Skip to content

Commit

Permalink
[core] Adapted c-api of monitoring in the way to remain c-return valu…
Browse files Browse the repository at this point in the history
…e compliant (#1862)
  • Loading branch information
hannemn authored Dec 16, 2024
1 parent a6d6f1f commit 7039426
Show file tree
Hide file tree
Showing 4 changed files with 5 additions and 116 deletions.
8 changes: 4 additions & 4 deletions ecal/core/src/cimpl/ecal_monitoring_cimpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,23 +32,23 @@ extern "C"
{
ECALC_API int eCAL_Monitoring_SetExclFilter(const char* filter_)
{
return(eCAL::Monitoring::SetExclFilter(std::string(filter_)));
return(static_cast<int>(!eCAL::Monitoring::SetExclFilter(std::string(filter_))));
}

ECALC_API int eCAL_Monitoring_SetInclFilter(const char* filter_)
{
return(eCAL::Monitoring::SetInclFilter(std::string(filter_)));
return(static_cast<int>(!eCAL::Monitoring::SetInclFilter(std::string(filter_))));
}

ECALC_API int eCAL_Monitoring_SetFilterState(int state_)
{
return(eCAL::Monitoring::SetFilterState(state_ != 0));
return(static_cast<int>(!eCAL::Monitoring::SetFilterState(state_ != 0)));
}

ECALC_API int eCAL_Monitoring_GetMonitoring(void* buf_, int buf_len_)
{
std::string buf;
if (eCAL::Monitoring::GetMonitoring(buf) != 0)
if (eCAL::Monitoring::GetMonitoring(buf))
{
return(CopyBuffer(buf_, buf_len_, buf));
}
Expand Down
57 changes: 0 additions & 57 deletions lang/python/core/src/ecal_clang.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -734,63 +734,6 @@ int mon_finalize()
return(ecal_finalize());
}

/****************************************/
/* mon_set_excl_filter */
/****************************************/
int mon_set_excl_filter(const char* filter_)
{
return(eCAL::Monitoring::SetExclFilter(filter_));
}

/****************************************/
/* mon_set_incl_filter */
/****************************************/
int mon_set_incl_filter(const char* filter_)
{
return(eCAL::Monitoring::SetInclFilter(filter_));
}

/****************************************/
/* mon_set_filter_state */
/****************************************/
int mon_set_filter_state(const bool state_)
{
return(eCAL::Monitoring::SetFilterState(state_));
}

/****************************************/
/* mon_get_monitoring */
/****************************************/
int mon_get_monitoring(const char** mon_buf_, int* mon_buf_len_)
{
std::string mon_s;
const int size = eCAL::Monitoring::GetMonitoring(mon_s);
if(size > 0)
{
// this has to be freed by caller (ecal_free_mem)
char* cbuf = str_malloc(mon_s);
if(cbuf == nullptr) return(0);

if (mon_buf_ != nullptr) {
*mon_buf_ = cbuf;
if (mon_buf_len_ != nullptr) *mon_buf_len_ = static_cast<int>(mon_s.size());
}
else
{
// free allocated memory:
ecal_free_mem(cbuf);
if (mon_buf_len_ != nullptr) *mon_buf_len_ = 0;
// operation could't be completed successfully
return(0);
}
return(static_cast<int>(mon_s.size()));
}
else
{
return(0);
}
}

/****************************************/
/* mon_get_logging */
/****************************************/
Expand Down
54 changes: 0 additions & 54 deletions lang/python/core/src/ecal_clang.h
Original file line number Diff line number Diff line change
Expand Up @@ -521,60 +521,6 @@ int mon_initialize();
**/
int mon_finalize();

/**
* @brief Set topics filter blacklist regular expression.
*
* @param filter_ Topic filter as regular expression.
*
* @return Zero if succeeded.
**/
int mon_set_excl_filter(const char* filter_);

/**
* @brief Set topics filter whitelist regular expression.
*
* @param filter_ Topic filter as regular expression.
*
* @return Zero if succeeded.
**/
int mon_set_incl_filter(const char* filter_);

/**
* @brief Switch topics filter using regular expression on/off.
*
* @param state_ Filter on / off state.
*
* @return Zero if succeeded.
**/
int mon_set_filter_state(bool state_);

/**
* @brief Get monitoring protobuf string.
*
* @param [out] mon_buf_ Pointer to store the monitoring information.
* @param [out] mon_buf_len_ Length of allocated buffer,
* eCAL is allocating the buffer for you, use ecal_free_mem to free the buffer finally.
*
* @return Monitoring buffer length or zero if failed.
**/
/**
* @code
* // let eCAL allocate memory for the monitoring buffer and return the pointer to 'buf'
* const char* mon_buf_ = NULL;
* int mon_buf_len_ = 0;
* mon_get_monitoring(subscriber_handle, &mon_buf_, &mon_buf_len_);
* if(mon_buf_len_ > 0)
* {
* ...
* // PROCESS THE BUFFER CONTENT HERE
* ...
* // finally free the allocated memory
* ecal_free_mem(((void*)rcv_buf););
* }
* @endcode
**/
int mon_get_monitoring(const char** mon_buf_, int* mon_buf_len_);

/**
* @brief Get logging string.
*
Expand Down
2 changes: 1 addition & 1 deletion lang/python/core/src/ecal_wrap.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -1055,7 +1055,7 @@ PyObject* mon_monitoring(PyObject* /*self*/, PyObject* /*args*/)
PyObject* retDict = PyDict_New();

eCAL::Monitoring::SMonitoring monitoring;
if (eCAL::Monitoring::GetMonitoring(monitoring) != 0)
if (eCAL::Monitoring::GetMonitoring(monitoring))
{
PyObject* val;

Expand Down

0 comments on commit 7039426

Please sign in to comment.