ChimeraTK-DeviceAccess  03.18.00
TriggeredPollDistributor.cc
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Deutsches Elektronen-Synchrotron DESY, MSK, ChimeraTK Project <chimeratk-support@desy.de>
2 // SPDX-License-Identifier: LGPL-3.0-or-later
3 
5 
6 namespace ChimeraTK::async {
7 
8  TriggeredPollDistributor::TriggeredPollDistributor(boost::shared_ptr<DeviceBackend> backend,
9  boost::shared_ptr<SubDomain<std::nullptr_t>> parent, boost::shared_ptr<Domain> asyncDomain)
10  : SourceTypedAsyncAccessorManager<std::nullptr_t>(std::move(backend), std::move(asyncDomain)),
11  _parent(std::move(parent)) {
13  }
14 
15  /********************************************************************************************************************/
16 
18  try {
20  }
21  catch(ChimeraTK::runtime_error&) {
22  // Nothing to do. Backend's set exception has already been called by the accessor in the transfer group that
23  // raised it.
24  return false;
25  }
26  return true;
27  }
28 
29 } // namespace ChimeraTK::async
ChimeraTK::async::TriggeredPollDistributor::TriggeredPollDistributor
TriggeredPollDistributor(boost::shared_ptr< DeviceBackend > backend, boost::shared_ptr< SubDomain< std::nullptr_t >> parent, boost::shared_ptr< Domain > asyncDomain)
Definition: TriggeredPollDistributor.cc:8
ChimeraTK::async::TriggeredPollDistributor::_transferGroup
TransferGroup _transferGroup
Definition: TriggeredPollDistributor.h:29
ChimeraTK::async::SubDomain
Send backend-specific asynchronous data to different distributors:
Definition: MuxedInterruptDistributor.h:23
ChimeraTK::async
Definition: design_AsyncNDRegisterAcessor_and_NumericAddressedBackend.dox:1
FILL_VIRTUAL_FUNCTION_TEMPLATE_VTABLE
#define FILL_VIRTUAL_FUNCTION_TEMPLATE_VTABLE(functionName)
Fill the vtable of a virtual function template defined with DEFINE_VIRTUAL_FUNCTION_TEMPLATE.
Definition: VirtualFunctionTemplate.h:84
ChimeraTK::async::SourceTypedAsyncAccessorManager
Definition: AsyncAccessorManager.h:135
TriggeredPollDistributor.h
ChimeraTK::runtime_error
Exception thrown when a runtime error has occured.
Definition: Exception.h:18
ChimeraTK::TransferGroup::read
void read()
Trigger read transfer for all accessors in the group.
Definition: TransferGroup.cc:44
ChimeraTK::async::TriggeredPollDistributor::createAsyncVariable
std::unique_ptr< AsyncVariable > createAsyncVariable(AccessorInstanceDescriptor const &descriptor)
Definition: TriggeredPollDistributor.h:59
ChimeraTK::async::TriggeredPollDistributor::prepareIntermediateBuffers
bool prepareIntermediateBuffers() override
Poll all sync variables.
Definition: TriggeredPollDistributor.cc:17