mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-15 09:31:45 +00:00
Add bool FairMQTransportFactory::SubscribedToRegionEvents()
This commit is contained in:
@@ -97,6 +97,9 @@ class FairMQTransportFactory
|
||||
/// @brief Subscribe to region events (creation, destruction, ...)
|
||||
/// @param callback the callback that is called when a region event occurs
|
||||
virtual void SubscribeToRegionEvents(FairMQRegionEventCallback callback) = 0;
|
||||
/// @brief Check if there is an active subscription to region events
|
||||
/// @return true/false
|
||||
virtual bool SubscribedToRegionEvents() = 0;
|
||||
/// @brief Unsubscribe from region events
|
||||
virtual void UnsubscribeFromRegionEvents() = 0;
|
||||
|
||||
|
@@ -40,6 +40,7 @@ class FairMQTransportFactoryNN final : public FairMQTransportFactory
|
||||
FairMQUnmanagedRegionPtr CreateUnmanagedRegion(const size_t size, int64_t userFlags, FairMQRegionCallback callback = nullptr, const std::string& path = "", int flags = 0) override;
|
||||
|
||||
void SubscribeToRegionEvents(FairMQRegionEventCallback /* callback */) override { LOG(error) << "SubscribeToRegionEvents not yet implemented for nanomsg"; }
|
||||
bool SubscribedToRegionEvents() override { LOG(error) << "Region event subscriptions not yet implemented for nanomsg"; return false; }
|
||||
void UnsubscribeFromRegionEvents() override { LOG(error) << "UnsubscribeFromRegionEvents not yet implemented for nanomsg"; }
|
||||
std::vector<FairMQRegionInfo> GetRegionInfo() override { LOG(error) << "GetRegionInfo not yet implemented for nanomsg, returning empty vector"; return std::vector<FairMQRegionInfo>(); }
|
||||
|
||||
|
@@ -50,6 +50,7 @@ class TransportFactory final : public FairMQTransportFactory
|
||||
auto CreateUnmanagedRegion(const size_t size, int64_t userFlags, RegionCallback callback = nullptr, const std::string& path = "", int flags = 0) -> UnmanagedRegionPtr override;
|
||||
|
||||
void SubscribeToRegionEvents(RegionEventCallback /* callback */) override { LOG(error) << "SubscribeToRegionEvents not yet implemented for OFI"; }
|
||||
bool SubscribedToRegionEvents() override { LOG(error) << "Region event subscriptions not yet implemented for OFI"; return false; }
|
||||
void UnsubscribeFromRegionEvents() override { LOG(error) << "UnsubscribeFromRegionEvents not yet implemented for OFI"; }
|
||||
std::vector<FairMQRegionInfo> GetRegionInfo() override { LOG(error) << "GetRegionInfo not yet implemented for OFI, returning empty vector"; return std::vector<FairMQRegionInfo>(); }
|
||||
|
||||
|
@@ -247,6 +247,11 @@ void Manager::SubscribeToRegionEvents(RegionEventCallback callback)
|
||||
fRegionEventThread = thread(&Manager::RegionEventsSubscription, this);
|
||||
}
|
||||
|
||||
bool Manager::SubscribedToRegionEvents()
|
||||
{
|
||||
return fRegionEventThread.joinable();
|
||||
}
|
||||
|
||||
void Manager::UnsubscribeFromRegionEvents()
|
||||
{
|
||||
if (fRegionEventThread.joinable()) {
|
||||
|
@@ -78,6 +78,7 @@ class Manager
|
||||
std::vector<fair::mq::RegionInfo> GetRegionInfo();
|
||||
std::vector<fair::mq::RegionInfo> GetRegionInfoUnsafe();
|
||||
void SubscribeToRegionEvents(RegionEventCallback callback);
|
||||
bool SubscribedToRegionEvents();
|
||||
void UnsubscribeFromRegionEvents();
|
||||
void RegionEventsSubscription();
|
||||
|
||||
|
@@ -174,6 +174,11 @@ void TransportFactory::SubscribeToRegionEvents(RegionEventCallback callback)
|
||||
fManager->SubscribeToRegionEvents(callback);
|
||||
}
|
||||
|
||||
bool TransportFactory::SubscribedToRegionEvents()
|
||||
{
|
||||
return fManager->SubscribedToRegionEvents();
|
||||
}
|
||||
|
||||
void TransportFactory::UnsubscribeFromRegionEvents()
|
||||
{
|
||||
fManager->UnsubscribeFromRegionEvents();
|
||||
|
@@ -53,6 +53,7 @@ class TransportFactory final : public fair::mq::TransportFactory
|
||||
UnmanagedRegionPtr CreateUnmanagedRegion(const size_t size, int64_t userFlags, RegionCallback callback = nullptr, const std::string& path = "", int flags = 0) override;
|
||||
|
||||
void SubscribeToRegionEvents(RegionEventCallback callback) override;
|
||||
bool SubscribedToRegionEvents() override;
|
||||
void UnsubscribeFromRegionEvents() override;
|
||||
std::vector<fair::mq::RegionInfo> GetRegionInfo() override;
|
||||
|
||||
|
@@ -132,6 +132,11 @@ void FairMQTransportFactoryZMQ::SubscribeToRegionEvents(FairMQRegionEventCallbac
|
||||
fRegionEventThread = thread(&FairMQTransportFactoryZMQ::RegionEventsSubscription, this);
|
||||
}
|
||||
|
||||
bool FairMQTransportFactoryZMQ::SubscribedToRegionEvents()
|
||||
{
|
||||
return fRegionEventThread.joinable();
|
||||
}
|
||||
|
||||
void FairMQTransportFactoryZMQ::UnsubscribeFromRegionEvents()
|
||||
{
|
||||
if (fRegionEventThread.joinable()) {
|
||||
|
@@ -52,6 +52,7 @@ class FairMQTransportFactoryZMQ final : public FairMQTransportFactory
|
||||
FairMQUnmanagedRegionPtr CreateUnmanagedRegion(const size_t size, const int64_t userFlags, FairMQRegionCallback callback, const std::string& path = "", int flags = 0) override;
|
||||
|
||||
void SubscribeToRegionEvents(FairMQRegionEventCallback callback) override;
|
||||
bool SubscribedToRegionEvents() override;
|
||||
void UnsubscribeFromRegionEvents() override;
|
||||
void RegionEventsSubscription();
|
||||
std::vector<fair::mq::RegionInfo> GetRegionInfo() override;
|
||||
|
Reference in New Issue
Block a user