8 #ifndef FAIR_MQ_SHMEM_MONITOR_H_ 9 #define FAIR_MQ_SHMEM_MONITOR_H_ 11 #include <boost/interprocess/managed_shared_memory.hpp> 17 #include <unordered_map> 29 Monitor(
const std::string& sessionName,
bool selfDestruct,
bool interactive,
unsigned int timeoutInMS,
bool runAsDaemon,
bool cleanOnExit);
39 static void Cleanup(
const std::string& sessionName);
40 static void RemoveObject(
const std::string&);
41 static void RemoveQueue(
const std::string&);
42 static void RemoveMutex(
const std::string&);
48 void MonitorHeartbeats();
58 unsigned int fTimeoutInMS;
60 std::string fSegmentName;
61 std::string fManagementSegmentName;
62 std::string fControlQueueName;
63 std::atomic<bool> fTerminating;
64 std::atomic<bool> fHeartbeatTriggered;
65 std::chrono::high_resolution_clock::time_point fLastHeartbeat;
66 std::thread fSignalThread;
67 boost::interprocess::managed_shared_memory fManagementSegment;
68 std::unordered_map<std::string, std::chrono::high_resolution_clock::time_point> fDeviceHeartbeats;
Tools for interfacing containers to the transport via polymorphic allocators.
Definition: DeviceRunner.h:23