97 void registerMemorySubscriptions();
107 void processingLoop();
110 void processFaceRecognitionUpdates(
111 const std::vector<armarx::armem::MemoryID>& updatedSnapshotIDs);
114 void processPoseUpdates(
const std::vector<armarx::armem::MemoryID>& updatedSnapshotIDs);
125 float faceRecognitionUpdateFrequency = 0.F;
130 float poseUpdateFrequency = 0.F;
133 Properties properties;
136 std::unique_ptr<UpdateConsumer> updateConsumer;
140 std::optional<armarx::Throttler> faceRecognitionThrottler;
141 std::optional<armarx::Throttler> poseThrottler;
144 std::optional<armarx::armem::client::Reader> faceRecognitionReader;
145 std::optional<armarx::armem::client::Reader> poseReader;
150 std::thread processingThread;
151 std::mutex pendingMutex;
152 std::condition_variable pendingCondition;
153 bool stopProcessing =
false;
155 std::vector<armarx::armem::MemoryID> pendingFaceRecognitionIDs;
156 std::vector<armarx::armem::MemoryID> pendingPoseIDs;
159 std::vector<armarx::armem::client::util::SubscriptionHandle> subscriptionHandles;