Skip to content
Snippets Groups Projects
Commit 9d8df705 authored by Christoph Kampmeyer's avatar Christoph Kampmeyer
Browse files

Adaptions to DeviceAccess #117:

Replaces calls to doXxxTransferYyy of the TransferElement by the
corresponding xxxTransferYyy call
parent f602a0ab
No related branches found
No related tags found
No related merge requests found
...@@ -70,17 +70,17 @@ namespace ChimeraTK { ...@@ -70,17 +70,17 @@ namespace ChimeraTK {
void doReadTransfer() override { void doReadTransfer() override {
if(!_withReturn) throw ChimeraTK::logic_error("Read operation called on write-only variable."); if(!_withReturn) throw ChimeraTK::logic_error("Read operation called on write-only variable.");
_returnSlave->doReadTransfer(); _returnSlave->readTransfer();
} }
bool doReadTransferNonBlocking() override { bool doReadTransferNonBlocking() override {
if(!_withReturn) throw ChimeraTK::logic_error("Read operation called on write-only variable."); if(!_withReturn) throw ChimeraTK::logic_error("Read operation called on write-only variable.");
return _returnSlave->doReadTransferNonBlocking(); return _returnSlave->readTransferNonBlocking();
} }
bool doReadTransferLatest() override { bool doReadTransferLatest() override {
if(!_withReturn) throw ChimeraTK::logic_error("Read operation called on write-only variable."); if(!_withReturn) throw ChimeraTK::logic_error("Read operation called on write-only variable.");
return _returnSlave->doReadTransferLatest(); return _returnSlave->readTransferLatest();
} }
void doPreRead() override { void doPreRead() override {
...@@ -106,7 +106,7 @@ namespace ChimeraTK { ...@@ -106,7 +106,7 @@ namespace ChimeraTK {
ChimeraTK::TransferFuture doReadTransferAsync() override { ChimeraTK::TransferFuture doReadTransferAsync() override {
if(!_withReturn) throw ChimeraTK::logic_error("Read operation called on write-only variable."); if(!_withReturn) throw ChimeraTK::logic_error("Read operation called on write-only variable.");
return {_returnSlave->doReadTransferAsync(), this}; return {_returnSlave->readTransferAsync(), this};
} }
void doPreWrite() override { void doPreWrite() override {
...@@ -135,10 +135,10 @@ namespace ChimeraTK { ...@@ -135,10 +135,10 @@ namespace ChimeraTK {
bool ret; bool ret;
if(isFirst) { if(isFirst) {
isFirst = false; isFirst = false;
ret = slave->doWriteTransfer(versionNumber); ret = slave->writeTransfer(versionNumber);
} }
else { else {
ret = slave->doWriteTransferDestructively(versionNumber); ret = slave->writeTransferDestructively(versionNumber);
} }
if(ret) dataLost = true; if(ret) dataLost = true;
} }
...@@ -148,7 +148,7 @@ namespace ChimeraTK { ...@@ -148,7 +148,7 @@ namespace ChimeraTK {
bool doWriteTransferDestructively(ChimeraTK::VersionNumber versionNumber = {}) override { bool doWriteTransferDestructively(ChimeraTK::VersionNumber versionNumber = {}) override {
bool dataLost = false; bool dataLost = false;
for(auto& slave : FanOut<UserType>::slaves) { for(auto& slave : FanOut<UserType>::slaves) {
bool ret = slave->doWriteTransferDestructively(versionNumber); bool ret = slave->writeTransferDestructively(versionNumber);
if(ret) dataLost = true; if(ret) dataLost = true;
} }
return dataLost; return dataLost;
......
...@@ -44,14 +44,14 @@ namespace ChimeraTK { ...@@ -44,14 +44,14 @@ namespace ChimeraTK {
} }
bool doWriteTransfer(ChimeraTK::VersionNumber versionNumber = {}) override { bool doWriteTransfer(ChimeraTK::VersionNumber versionNumber = {}) override {
if(!_handleWrite) return _target->doWriteTransfer(versionNumber); if(!_handleWrite) return _target->writeTransfer(versionNumber);
bool dataLost = false; bool dataLost = false;
if(!Application::testableModeTestLock()) { if(!Application::testableModeTestLock()) {
// may happen if first write in thread is done before first blocking read // may happen if first write in thread is done before first blocking read
Application::testableModeLock("write " + this->getName()); Application::testableModeLock("write " + this->getName());
} }
dataLost = _target->doWriteTransfer(versionNumber); dataLost = _target->writeTransfer(versionNumber);
if(!dataLost) { if(!dataLost) {
++Application::getInstance().testableMode_counter; ++Application::getInstance().testableMode_counter;
++Application::getInstance().testableMode_perVarCounter[_variableIdWrite]; ++Application::getInstance().testableMode_perVarCounter[_variableIdWrite];
...@@ -74,14 +74,14 @@ namespace ChimeraTK { ...@@ -74,14 +74,14 @@ namespace ChimeraTK {
} }
bool doWriteTransferDestructively(ChimeraTK::VersionNumber versionNumber = {}) override { bool doWriteTransferDestructively(ChimeraTK::VersionNumber versionNumber = {}) override {
if(!_handleWrite) return _target->doWriteTransferDestructively(versionNumber); if(!_handleWrite) return _target->writeTransferDestructively(versionNumber);
bool dataLost = false; bool dataLost = false;
if(!Application::testableModeTestLock()) { if(!Application::testableModeTestLock()) {
// may happen if first write in thread is done before first blocking read // may happen if first write in thread is done before first blocking read
Application::testableModeLock("write " + this->getName()); Application::testableModeLock("write " + this->getName());
} }
dataLost = _target->doWriteTransferDestructively(versionNumber); dataLost = _target->writeTransferDestructively(versionNumber);
if(!dataLost) { if(!dataLost) {
++Application::getInstance().testableMode_counter; ++Application::getInstance().testableMode_counter;
++Application::getInstance().testableMode_perVarCounter[_variableIdWrite]; ++Application::getInstance().testableMode_perVarCounter[_variableIdWrite];
...@@ -105,7 +105,7 @@ namespace ChimeraTK { ...@@ -105,7 +105,7 @@ namespace ChimeraTK {
void doReadTransfer() override { void doReadTransfer() override {
if(_handleRead) releaseLock(); if(_handleRead) releaseLock();
_target->doReadTransfer(); _target->readTransfer();
} }
/** Release the testableModeLock */ /** Release the testableModeLock */
...@@ -152,13 +152,13 @@ namespace ChimeraTK { ...@@ -152,13 +152,13 @@ namespace ChimeraTK {
} }
bool doReadTransferNonBlocking() override { bool doReadTransferNonBlocking() override {
bool newData = _target->doReadTransferNonBlocking(); bool newData = _target->readTransferNonBlocking();
if(!newData) return false; if(!newData) return false;
return true; return true;
} }
bool doReadTransferLatest() override { bool doReadTransferLatest() override {
bool newData = _target->doReadTransferLatest(); bool newData = _target->readTransferLatest();
if(!newData) return false; if(!newData) return false;
// the queue has been emptied, so make sure that the testableMode_counter // the queue has been emptied, so make sure that the testableMode_counter
......
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