Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions include/sas_common/sas_object_client_manager.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,14 @@ class ObjectClientManager
* @return size_t Number of clients currently managed.
*/
size_t size() const;

/**
* @brief Check whether all managed clients are enabled.
*
* @return true if every managed client reports is_enabled() == true,
* or if no clients are managed; false otherwise.
*/
bool are_all_clients_enabled() const;
};

}
4 changes: 3 additions & 1 deletion src/sas_common_py.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,5 +91,7 @@ PYBIND11_MODULE(_sas_common, m) {
.def("get_client_names", &OCM::get_client_names,
"Return a list of all managed client names.")
.def("size", &OCM::size,
"Return the number of managed clients.");
"Return the number of managed clients.")
.def("are_all_clients_enabled", &OCM::are_all_clients_enabled,
"Return True if every managed client is enabled (or if no clients exist).");
}
12 changes: 12 additions & 0 deletions src/sas_object_client_manager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -88,4 +88,16 @@ size_t ObjectClientManager::size() const
return clients_.size();
}

bool ObjectClientManager::are_all_clients_enabled() const
{
for (const auto& pair : clients_)
{
if (!pair.second->is_enabled())
{
return false;
}
}
return true;
}

}