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
4
#include "
async/TriggeredPollDistributor.h
"
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)) {
12
FILL_VIRTUAL_FUNCTION_TEMPLATE_VTABLE
(
createAsyncVariable
);
13
}
14
15
/********************************************************************************************************************/
16
17
bool
TriggeredPollDistributor::prepareIntermediateBuffers
() {
18
try
{
19
_transferGroup
.
read
();
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
sources
ChimeraTK-DeviceAccess
src
async
TriggeredPollDistributor.cc
Generated by
1.8.17