mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-15 09:31:45 +00:00
FairMQ: Implement property change event config API
Replaced the old event manager implementation, which changed the subscription semantics to bulk event subscriptions.
This commit is contained in:
committed by
Mohammad Al-Turany
parent
8c8ee45914
commit
7f23a70670
@@ -206,30 +206,25 @@ class PluginServices
|
||||
|
||||
auto GetChannelInfo() const -> std::unordered_map<std::string, int> { return fConfig->GetChannelInfo(); }
|
||||
|
||||
/// @brief Discover the list of property keys
|
||||
/// @return list of property keys
|
||||
auto GetPropertyKeys() const -> std::vector<std::string> { return fConfig->GetPropertyKeys(); }
|
||||
|
||||
/// @brief Subscribe to property updates of type T
|
||||
/// @param subscriber
|
||||
/// @param callback function
|
||||
///
|
||||
/// While PluginServices provides the SetProperty method which can update properties only during certain device states, there are
|
||||
/// other APIs in a FairMQ device that can update properties at any time. Therefore, the callback implementation should expect to be called in any
|
||||
/// device state.
|
||||
// template<typename T>
|
||||
// auto SubscribeToPropertyChange(
|
||||
// const std::string& subscriber,
|
||||
// std::function<void(const std::string& [>key*/, const T /*newValue<])> callback
|
||||
// ) const -> void
|
||||
// {
|
||||
// fConfig->Subscribe(subscriber, callback);
|
||||
// }
|
||||
//
|
||||
// /// @brief Unsubscribe from property updates of type T
|
||||
// /// @param subscriber
|
||||
// template<typename T>
|
||||
// auto UnsubscribeFromPropertyChange(const std::string& subscriber) -> void { fConfig->Unsubscribe<T>(subscriber); }
|
||||
//
|
||||
// TODO Fix property subscription
|
||||
/// Subscribe to property changes with a callback to monitor property changes in an event based fashion.
|
||||
template<typename T>
|
||||
auto SubscribeToPropertyChange(const std::string& subscriber, std::function<void(const std::string& key, T)> callback) const -> void
|
||||
{
|
||||
fConfig->Subscribe<T>(subscriber, callback);
|
||||
}
|
||||
|
||||
/// @brief Unsubscribe from property updates of type T
|
||||
/// @param subscriber
|
||||
template<typename T>
|
||||
auto UnsubscribeFromPropertyChange(const std::string& subscriber) -> void { fConfig->Unsubscribe<T>(subscriber); }
|
||||
|
||||
static const std::unordered_map<std::string, DeviceState> fkDeviceStateStrMap;
|
||||
static const std::unordered_map<DeviceState, std::string, tools::HashEnum<DeviceState>> fkStrDeviceStateMap;
|
||||
|
Reference in New Issue
Block a user