Skip to content
Snippets Groups Projects
Commit 537e6652 authored by Martin Christoph Hierholzer's avatar Martin Christoph Hierholzer
Browse files

required update for interface change in ControlSystemAdapter w.r.t. writeDestructively()

parent e6849fa8
No related branches found
No related tags found
No related merge requests found
......@@ -33,7 +33,7 @@ namespace ChimeraTK {
if(slave->getNumberOfSamples() != 0) {
slave->accessChannel(0) = buffer_2D[0];
}
slave->write();
slave->writeDestructively();
}
}
......
......@@ -100,7 +100,7 @@ namespace ChimeraTK {
if(slave->getNumberOfSamples() != 0) { // do not send copy if no data is expected (e.g. trigger)
slave->accessChannel(0) = ChimeraTK::NDRegisterAccessor<UserType>::buffer_2D[0];
}
slave->write(_returnSlave->getVersionNumber());
slave->writeDestructively(_returnSlave->getVersionNumber());
}
}
......@@ -130,7 +130,7 @@ namespace ChimeraTK {
bool doWriteTransfer(ChimeraTK::VersionNumber versionNumber = {}) override {
bool dataLost = false;
for(auto& slave : FanOut<UserType>::slaves) {
bool ret = slave->doWriteTransfer(versionNumber);
bool ret = slave->doWriteTransferDestructively(versionNumber);
if(ret) dataLost = true;
}
return dataLost;
......
......@@ -62,7 +62,7 @@ namespace ChimeraTK {
if(slave->getNumberOfSamples() != 0) {
slave->accessChannel(0) = FanOut<UserType>::impl->accessChannel(0);
}
bool dataLoss = slave->write(version);
bool dataLoss = slave->writeDestructively(version);
if(dataLoss) Application::incrementDataLossCounter();
}
}
......@@ -85,8 +85,8 @@ namespace ChimeraTK {
_returnChannelSlave = returnChannelSlave;
}
void addSlave(boost::shared_ptr<ChimeraTK::NDRegisterAccessor<UserType>> slave,
VariableNetworkNode& consumer) override {
void addSlave(
boost::shared_ptr<ChimeraTK::NDRegisterAccessor<UserType>> slave, VariableNetworkNode& consumer) override {
FanOut<UserType>::addSlave(slave, consumer);
if(consumer.getDirection().withReturn) {
assert(_returnChannelSlave == nullptr);
......@@ -109,7 +109,7 @@ namespace ChimeraTK {
// if the update came through the return channel, return it to the feeder
if(var == _returnChannelSlave->getId()) {
FanOut<UserType>::impl->accessChannel(0).swap(_returnChannelSlave->accessChannel(0));
FanOut<UserType>::impl->write(_returnChannelSlave->getVersionNumber());
FanOut<UserType>::impl->writeDestructively(_returnChannelSlave->getVersionNumber());
}
// send out copies to slaves
auto version = FanOut<UserType>::impl->getVersionNumber();
......@@ -120,7 +120,7 @@ namespace ChimeraTK {
if(slave->getNumberOfSamples() != 0) {
slave->accessChannel(0) = FanOut<UserType>::impl->accessChannel(0);
}
bool dataLoss = slave->write(version);
bool dataLoss = slave->writeDestructively(version);
if(dataLoss) Application::incrementDataLossCounter();
}
}
......
......@@ -103,7 +103,7 @@ namespace ChimeraTK {
auto feeder = network.first;
auto fanOut = network.second;
fanOut->accessChannel(0).swap(feeder->accessChannel(0));
bool dataLoss = fanOut->write(_version);
bool dataLoss = fanOut->writeDestructively(_version);
if(dataLoss) Application::incrementDataLossCounter();
// no need to swap back since we don't need the data
}
......
......@@ -383,7 +383,7 @@ boost::shared_ptr<ChimeraTK::NDRegisterAccessor<UserType>> Application::createPr
// create the ProcessArray for the proper UserType
auto pvar = _processVariableManager->createProcessArray<UserType>(dir, node.getPublicName(),
node.getNumberOfElements(), node.getOwner().getUnit(), node.getOwner().getDescription(), {}, false, 3, flags);
node.getNumberOfElements(), node.getOwner().getUnit(), node.getOwner().getDescription(), {}, 3, flags);
assert(pvar->getName() != "");
// create variable ID
......@@ -446,7 +446,7 @@ std::pair<boost::shared_ptr<ChimeraTK::NDRegisterAccessor<UserType>>,
assert(node.getDirection().withReturn == consumer.getDirection().withReturn);
if(!node.getDirection().withReturn) {
pvarPair = createSynchronizedProcessArray<UserType>(
nElements, name, node.getUnit(), node.getDescription(), {}, 3, false, {}, flags);
nElements, name, node.getUnit(), node.getDescription(), {}, 3, {}, flags);
}
else {
pvarPair = createBidirectionalSynchronizedProcessArray<UserType>(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment