mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-13 08:41:16 +00:00
Testing the double subscription
This commit is contained in:
parent
18dc536f3d
commit
cf26dd6aa7
|
@ -46,8 +46,6 @@ bool Sampler::ConditionalRun()
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
this_thread::sleep_for(chrono::seconds(5));
|
|
||||||
|
|
||||||
if (fIterations > 0) {
|
if (fIterations > 0) {
|
||||||
++fCounter;
|
++fCounter;
|
||||||
if (fCounter >= fIterations) {
|
if (fCounter >= fIterations) {
|
||||||
|
|
|
@ -141,7 +141,7 @@ struct Machine_ : public state_machine_def<Machine_>
|
||||||
Row<RESETTING_TASK_S, AUTO_E, DEVICE_READY_S, DefaultFct, none>,
|
Row<RESETTING_TASK_S, AUTO_E, DEVICE_READY_S, DefaultFct, none>,
|
||||||
Row<RESETTING_DEVICE_S, AUTO_E, IDLE_S, DefaultFct, none>,
|
Row<RESETTING_DEVICE_S, AUTO_E, IDLE_S, DefaultFct, none>,
|
||||||
|
|
||||||
Row<OK_S, ERROR_FOUND_E, ERROR_S, DefaultFct, none>> {};
|
Row<OK_S, ERROR_FOUND_E, ERROR_S, DefaultFct, none>> {};
|
||||||
|
|
||||||
void CallStateChangeCallbacks(const State state) const
|
void CallStateChangeCallbacks(const State state) const
|
||||||
{
|
{
|
||||||
|
|
|
@ -227,7 +227,11 @@ void DDSSession::StartDDSService() { fImpl->fDDSService.start(fImpl->fId); }
|
||||||
|
|
||||||
void DDSSession::SubscribeToCommands(std::function<void(const std::string& msg, const std::string& condition, uint64_t senderId)> cb)
|
void DDSSession::SubscribeToCommands(std::function<void(const std::string& msg, const std::string& condition, uint64_t senderId)> cb)
|
||||||
{
|
{
|
||||||
|
fImpl->fSession.unsubscribe(); // TODO REMOVE THIS HACK!!!!
|
||||||
fImpl->fDDSCustomCmd.subscribe(cb);
|
fImpl->fDDSCustomCmd.subscribe(cb);
|
||||||
|
fImpl->fDDSCustomCmd.subscribeOnReply([](const std::string& reply) {
|
||||||
|
LOG(debug) << reply;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void DDSSession::SendCommand(const std::string& cmd) { fImpl->fDDSCustomCmd.send(cmd, ""); }
|
void DDSSession::SendCommand(const std::string& cmd) { fImpl->fDDSCustomCmd.send(cmd, ""); }
|
||||||
|
|
|
@ -65,6 +65,7 @@ Topology::Topology(DDSTopology topo, DDSSession session)
|
||||||
|
|
||||||
std::vector<uint64_t> deviceList = fDDSTopo.GetDeviceList();
|
std::vector<uint64_t> deviceList = fDDSTopo.GetDeviceList();
|
||||||
for (const auto& d : deviceList) {
|
for (const auto& d : deviceList) {
|
||||||
|
LOG(info) << "fair::mq::Topology Adding device " << d;
|
||||||
fTopologyState.emplace(d, DeviceStatus{ false, DeviceState::Ok });
|
fTopologyState.emplace(d, DeviceStatus{ false, DeviceState::Ok });
|
||||||
}
|
}
|
||||||
fDDSSession.SubscribeToCommands([this](const std::string& msg, const std::string& condition, uint64_t senderId) {
|
fDDSSession.SubscribeToCommands([this](const std::string& msg, const std::string& condition, uint64_t senderId) {
|
||||||
|
|
|
@ -18,21 +18,21 @@ using Topology = fair::mq::test::TopologyFixture;
|
||||||
|
|
||||||
TEST_F(Topology, Construction)
|
TEST_F(Topology, Construction)
|
||||||
{
|
{
|
||||||
fair::mq::sdk::Topology topo(mDDSTopo, mDDSSession);
|
fair::mq::sdk::Topology topo(mDDSTopo, mDDSSession);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(Topology, ChangeState)
|
TEST_F(Topology, ChangeState)
|
||||||
{
|
{
|
||||||
using fair::mq::sdk::Topology;
|
using fair::mq::sdk::Topology;
|
||||||
using fair::mq::sdk::TopologyTransition;
|
using fair::mq::sdk::TopologyTransition;
|
||||||
|
|
||||||
Topology topo(mDDSTopo, mDDSSession);
|
Topology topo(mDDSTopo, mDDSSession);
|
||||||
fair::mq::tools::Semaphore blocker;
|
fair::mq::tools::Semaphore blocker;
|
||||||
topo.ChangeState(TopologyTransition::Stop, [&](Topology::ChangeStateResult result) {
|
topo.ChangeState(TopologyTransition::Stop, [&](Topology::ChangeStateResult result) {
|
||||||
LOG(info) << result;
|
LOG(info) << result;
|
||||||
blocker.Signal();
|
blocker.Signal();
|
||||||
});
|
});
|
||||||
blocker.Wait();
|
blocker.Wait();
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
Loading…
Reference in New Issue
Block a user