ChimeraTK-DeviceAccess-DoocsBackend
01.11.02
Loading...
Searching...
No Matches
DoocsBackendEventIdAccessor.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
DoocsBackendRegisterAccessor.h
"
4
5
#include <ChimeraTK/SupportedUserTypes.h>
6
7
#include <doocs/EqCall.h>
8
9
#include <type_traits>
10
11
namespace
ChimeraTK
{
12
13
template
<
typename
UserType>
14
class
DoocsBackendEventIdRegisterAccessor
:
public
DoocsBackendRegisterAccessor
<UserType> {
15
public
:
16
virtual
~DoocsBackendEventIdRegisterAccessor
();
17
18
protected
:
19
DoocsBackendEventIdRegisterAccessor
(boost::shared_ptr<DoocsBackend> backend,
const
std::string& path,
20
const
std::string& registerPathName, AccessModeFlags flags);
21
22
void
doPostRead
(TransferType type,
bool
hasNewData)
override
;
23
24
bool
isReadOnly
()
const override
{
return
true
; }
25
26
bool
isReadable
()
const override
{
return
true
; }
27
28
bool
isWriteable
()
const override
{
return
false
; }
29
30
bool
doWriteTransfer
(VersionNumber
/*versionNumber = {}*/
)
override
{
31
// do not throw again here, already done in doPreWrite...
32
return
false
;
33
}
34
35
friend
class
DoocsBackend
;
36
};
37
38
/**********************************************************************************************************************/
39
40
template
<
typename
UserType>
41
DoocsBackendEventIdRegisterAccessor<UserType>::DoocsBackendEventIdRegisterAccessor
(
42
boost::shared_ptr<DoocsBackend> backend,
const
std::string& path,
const
std::string& registerPathName,
43
AccessModeFlags flags)
44
:
DoocsBackendRegisterAccessor
<UserType>(backend, path, registerPathName, 1, 0, flags) {}
45
46
/**********************************************************************************************************************/
47
48
template
<
typename
UserType>
49
DoocsBackendEventIdRegisterAccessor<UserType>::~DoocsBackendEventIdRegisterAccessor
() {
50
this->shutdown();
51
}
52
53
/**********************************************************************************************************************/
54
55
template
<
typename
UserType>
56
void
DoocsBackendEventIdRegisterAccessor<UserType>::doPostRead
(TransferType type,
bool
hasNewData) {
57
DoocsBackendRegisterAccessor<UserType>::doPostRead
(type, hasNewData);
58
if
(!hasNewData)
return
;
59
60
doocs::EqData d =
DoocsBackendRegisterAccessor<UserType>::dst
;
61
auto
id
= d.get_event_id();
62
63
UserType val = numericToUserType<UserType>(
id
.to_int());
64
NDRegisterAccessor<UserType>::buffer_2D[0][0] = val;
65
}
66
67
}
// namespace ChimeraTK
DoocsBackendRegisterAccessor.h
ChimeraTK::DoocsBackendEventIdRegisterAccessor
Definition
DoocsBackendEventIdAccessor.h:14
ChimeraTK::DoocsBackendEventIdRegisterAccessor::isWriteable
bool isWriteable() const override
Definition
DoocsBackendEventIdAccessor.h:28
ChimeraTK::DoocsBackendEventIdRegisterAccessor::~DoocsBackendEventIdRegisterAccessor
virtual ~DoocsBackendEventIdRegisterAccessor()
Definition
DoocsBackendEventIdAccessor.h:49
ChimeraTK::DoocsBackendEventIdRegisterAccessor::DoocsBackendEventIdRegisterAccessor
DoocsBackendEventIdRegisterAccessor(boost::shared_ptr< DoocsBackend > backend, const std::string &path, const std::string ®isterPathName, AccessModeFlags flags)
Definition
DoocsBackendEventIdAccessor.h:41
ChimeraTK::DoocsBackendEventIdRegisterAccessor::isReadable
bool isReadable() const override
Definition
DoocsBackendEventIdAccessor.h:26
ChimeraTK::DoocsBackendEventIdRegisterAccessor::isReadOnly
bool isReadOnly() const override
Definition
DoocsBackendEventIdAccessor.h:24
ChimeraTK::DoocsBackendEventIdRegisterAccessor::doPostRead
void doPostRead(TransferType type, bool hasNewData) override
Definition
DoocsBackendEventIdAccessor.h:56
ChimeraTK::DoocsBackendEventIdRegisterAccessor::doWriteTransfer
bool doWriteTransfer(VersionNumber) override
Definition
DoocsBackendEventIdAccessor.h:30
ChimeraTK::DoocsBackend
Backend to access DOOCS control system servers.
Definition
DoocsBackend.h:57
ChimeraTK::DoocsBackendRegisterAccessor
Definition
DoocsBackendRegisterAccessor.h:74
ChimeraTK::DoocsBackendRegisterAccessor::doPostRead
void doPostRead(TransferType, bool hasNewData) override
Definition
DoocsBackendRegisterAccessor.h:107
ChimeraTK
Definition
spec_DoocsBackend.dox:2
sources
ChimeraTK-DeviceAccess-DoocsBackend
include
DoocsBackendEventIdAccessor.h
Generated by
1.9.8