Skip to content
Snippets Groups Projects
Commit 77805ed7 authored by Jan H. K. Timm's avatar Jan H. K. Timm
Browse files

Merge branch 'master' into iss130

parents b36fbc1d 358cd80b
No related branches found
No related tags found
No related merge requests found
......@@ -52,7 +52,7 @@ namespace ChimeraTK {
bool doReadTransferLatest() override { return doReadTransferNonBlocking(); }
void doPostRead(TransferType /*type*/) override { ChimeraTK::NDRegisterAccessor<UserType>::buffer_2D[0] = _value; }
void doPostRead(TransferType /*type*/, bool /* hasNewData */) override { ChimeraTK::NDRegisterAccessor<UserType>::buffer_2D[0] = _value; }
bool doWriteTransfer(ChimeraTK::VersionNumber /*versionNumber*/ = {}) override { return true; }
......
......@@ -26,8 +26,8 @@ namespace ChimeraTK {
assert(feedingImpl->isReadable());
}
void doPostRead(TransferType type) override {
ChimeraTK::NDRegisterAccessorDecorator<UserType>::doPostRead(type);
void doPostRead(TransferType type, bool hasNewData) override {
ChimeraTK::NDRegisterAccessorDecorator<UserType>::doPostRead(type, hasNewData);
for(auto& slave : FanOut<UserType>::slaves) { // send out copies to slaves
// do not send copy if no data is expected (e.g. trigger)
if(slave->getNumberOfSamples() != 0) {
......
......@@ -60,9 +60,9 @@ namespace ChimeraTK {
ChimeraTK::NDRegisterAccessorDecorator<UserType>::doPreRead(type);
}
void doPostRead(TransferType type) override {
void doPostRead(TransferType type, bool hasNewData) override {
std::cout << "postRead() called on '" << _fullyQualifiedName << "'." << std::endl;
ChimeraTK::NDRegisterAccessorDecorator<UserType>::doPostRead(type);
ChimeraTK::NDRegisterAccessorDecorator<UserType>::doPostRead(type, hasNewData);
}
void doPreWrite(TransferType type) override {
......@@ -70,9 +70,9 @@ namespace ChimeraTK {
ChimeraTK::NDRegisterAccessorDecorator<UserType>::doPreWrite(type);
}
void doPostWrite(TransferType type) override {
void doPostWrite(TransferType type, bool dataLost) override {
std::cout << "postWrite() called on '" << _fullyQualifiedName << "'." << std::endl;
ChimeraTK::NDRegisterAccessorDecorator<UserType>::doPostWrite(type);
ChimeraTK::NDRegisterAccessorDecorator<UserType>::doPostWrite(type, dataLost);
}
protected:
......
......@@ -89,10 +89,10 @@ namespace ChimeraTK {
_returnSlave->preRead(type);
}
void doPostRead(TransferType type) override {
void doPostRead(TransferType type, bool hasNewData) override {
if(!_withReturn) throw ChimeraTK::logic_error("Read operation called on write-only variable.");
assert(_hasReturnSlave);
_returnSlave->postRead(type);
_returnSlave->postRead(type, hasNewData);
_returnSlave->accessChannel(0).swap(ChimeraTK::NDRegisterAccessor<UserType>::buffer_2D[0]);
// distribute return-channel update to the other slaves
for(auto& slave : FanOut<UserType>::slaves) { // send out copies to slaves
......@@ -154,9 +154,9 @@ namespace ChimeraTK {
return dataLost;
}
void doPostWrite(TransferType type) override {
void doPostWrite(TransferType type, bool dataLost) override {
for(auto& slave : FanOut<UserType>::slaves) {
slave->postWrite(type);
slave->postWrite(type, dataLost);
}
FanOut<UserType>::slaves.front()->accessChannel(0).swap(ChimeraTK::NDRegisterAccessor<UserType>::buffer_2D[0]);
}
......
......@@ -33,7 +33,7 @@ namespace ChimeraTK {
NDRegisterAccessorDecorator<T, T>::doPreRead(type);
}
void doPostRead(TransferType type) override;
void doPostRead(TransferType type, bool hasNewData) override;
void doPreWrite(TransferType type) override;
protected:
......
......@@ -175,9 +175,9 @@ namespace ChimeraTK {
return true;
}
void doPostRead(TransferType type) override {
void doPostRead(TransferType type, bool hasNewData) override {
if(_handleRead) obtainLockAndDecrementCounter();
ChimeraTK::NDRegisterAccessorDecorator<UserType>::doPostRead(type);
ChimeraTK::NDRegisterAccessorDecorator<UserType>::doPostRead(type, hasNewData);
}
protected:
......
......@@ -4,8 +4,8 @@
namespace ChimeraTK {
template<typename T>
void MetaDataPropagatingRegisterDecorator<T>::doPostRead(TransferType type) {
NDRegisterAccessorDecorator<T, T>::doPostRead(type);
void MetaDataPropagatingRegisterDecorator<T>::doPostRead(TransferType type, bool hasNewData) {
NDRegisterAccessorDecorator<T, T>::doPostRead(type, hasNewData);
// update the version number
if(!isNonblockingRead) {
......
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