network_state_->enableService(getLocalOrigin());
}
+std::string
+HAService::getCSCallbacksSetName() const {
+ std::ostringstream s;
+ s << "HA_MT_" << id_;
+ return (s.str());
+}
+
void
HAService::defineEvents() {
StateModel::defineEvents();
void
HAService::startClientAndListener() {
// Add critical section callbacks.
- MultiThreadingMgr::instance().addCriticalSectionCallbacks("HA_MT",
+ MultiThreadingMgr::instance().addCriticalSectionCallbacks(getCSCallbacksSetName(),
std::bind(&HAService::checkPermissionsClientAndListener, this),
std::bind(&HAService::pauseClientAndListener, this),
std::bind(&HAService::resumeClientAndListener, this));
void
HAService::stopClientAndListener() {
// Remove critical section callbacks.
- MultiThreadingMgr::instance().removeCriticalSectionCallbacks("HA_MT");
+ MultiThreadingMgr::instance().removeCriticalSectionCallbacks(getCSCallbacksSetName());
if (client_) {
client_->stop();
return (dhcp::NetworkState::HA_REMOTE_COMMAND + id_);
}
+ /// @brief Returns the name of the critical section callbacks set.
+ ///
+ /// This function is used internally during the registration and
+ /// deregistration of the critical section callbacks in the MT
+ /// manager.
+ ///
+ /// @return HA_MT_ plus service id.
+ std::string getCSCallbacksSetName() const;
+
/// @brief Defines events used by the HA service.
virtual void defineEvents();