9 #ifndef FAIR_MQ_PLUGINS_PMIX 10 #define FAIR_MQ_PLUGINS_PMIX 13 #include "PMIxCommands.h" 15 #include <fairmq/Plugin.h> 16 #include <fairmq/Version.h> 17 #include <FairMQLogger.h> 23 #include <sys/types.h> 39 const std::string& maintainer,
40 const std::string& homepage,
44 auto PMIxClient()
const -> std::string {
return fPMIxClient; };
49 std::string fPMIxClient;
50 std::string fDeviceId;
53 std::set<uint32_t> fStateChangeSubscribers;
54 uint32_t fLastExternalController;
55 bool fExitingAckedByLastExternalController;
56 std::condition_variable fExitingAcked;
57 std::mutex fStateChangeSubscriberMutex;
59 DeviceState fCurrentState;
60 DeviceState fLastState;
63 auto Publish() -> void;
65 auto Fence(
const std::string& label) -> void;
66 auto Lookup() -> void;
68 auto SubscribeForCommands() -> void;
69 auto WaitForExitingAck() -> void;
72 Plugin::ProgOptions PMIxProgramOptions()
74 boost::program_options::options_description options(
"PMIx Plugin");
76 (
"pmix-dummy", boost::program_options::value<int>()->default_value(0),
"Dummy.");
80 REGISTER_FAIRMQ_PLUGIN(
85 FAIRMQ_VERSION_PATCH}),
86 "FairRootGroup <fairroot@gsi.de>",
87 "https://github.com/FairRootGroup/FairMQ",
Facilitates communication between devices and plugins.
Definition: PluginServices.h:40
Base class for FairMQ plugins.
Definition: Plugin.h:39
Definition: PMIxCommands.h:82
Tools for interfacing containers to the transport via polymorphic allocators.
Definition: DeviceRunner.h:23
Definition: PMIxPlugin.h:34