pvAccessCPP
7.1.9
Toggle main menu visibility
Loading...
Searching...
No Matches
utils
pv
introspectionRegistry.h
1
6
7
#ifndef INTROSPECTIONREGISTRY_H
8
#define INTROSPECTIONREGISTRY_H
9
10
#include <
map
>
11
#include <
iostream
>
12
13
#ifdef epicsExportSharedSymbols
14
# define introspectionRegistryEpicsExportSharedSymbols
15
# undef epicsExportSharedSymbols
16
#endif
17
18
#include <pv/lock.h>
19
#include <pv/pvIntrospect.h>
20
#include <pv/pvData.h>
21
#include <pv/byteBuffer.h>
22
#include <pv/serialize.h>
23
#include <pv/serializeHelper.h>
24
#include <pv/status.h>
25
#include <pv/standardField.h>
26
27
#ifdef introspectionRegistryEpicsExportSharedSymbols
28
# define epicsExportSharedSymbols
29
# undef introspectionRegistryEpicsExportSharedSymbols
30
#endif
31
32
// TODO check for memory leaks
33
34
namespace
epics
{
35
namespace
pvAccess
{
36
37
typedef
std::map<const short,epics::pvData::FieldConstPtr> registryMap_t;
38
39
45
class
IntrospectionRegistry {
46
EPICS_NOT_COPYABLE(IntrospectionRegistry)
47
public
:
48
IntrospectionRegistry();
49
virtual
~IntrospectionRegistry();
50
54
void
reset
();
55
56
private
:
67
epics::pvData::int16
registerIntrospectionInterface(
epics::pvData::FieldConstPtr
const
& field,
bool
& existing);
68
public
:
76
void
serialize
(
epics::pvData::FieldConstPtr
const
& field,
epics::pvData::ByteBuffer
* buffer,
epics::pvData::SerializableControl
* control);
77
88
epics::pvData::FieldConstPtr
deserialize
(
epics::pvData::ByteBuffer
* buffer,
epics::pvData::DeserializableControl
* control);
89
93
const
static
epics::pvData::int8
NULL_TYPE_CODE
;
94
98
const
static
epics::pvData::int8
ONLY_ID_TYPE_CODE
;
99
103
const
static
epics::pvData::int8
FULL_WITH_ID_TYPE_CODE
;
104
105
private
:
106
registryMap_t _registry;
107
epics::pvData::int16
_pointer;
108
112
static
epics::pvData::FieldCreatePtr _fieldCreate;
113
114
bool
registryContainsValue(
epics::pvData::FieldConstPtr
const
& field,
epics::pvData::int16
& key);
115
};
116
117
}
118
}
119
120
#endif
/* INTROSPECTIONREGISTRY_H */
iostream
map
epics::pvAccess::IntrospectionRegistry::ONLY_ID_TYPE_CODE
static const epics::pvData::int8 ONLY_ID_TYPE_CODE
Serialization contains only an ID (that was assigned by one of the previous FULL_WITH_ID descriptions...
Definition
introspectionRegistry.h:98
epics::pvAccess::IntrospectionRegistry::deserialize
epics::pvData::FieldConstPtr deserialize(epics::pvData::ByteBuffer *buffer, epics::pvData::DeserializableControl *control)
Deserializes introspection interface.
epics::pvAccess::IntrospectionRegistry::FULL_WITH_ID_TYPE_CODE
static const epics::pvData::int8 FULL_WITH_ID_TYPE_CODE
Serialization contains an ID (that can be used later, if cached) and full interface description.
Definition
introspectionRegistry.h:103
epics::pvAccess::IntrospectionRegistry::NULL_TYPE_CODE
static const epics::pvData::int8 NULL_TYPE_CODE
Null type.
Definition
introspectionRegistry.h:93
epics::pvAccess::IntrospectionRegistry::reset
void reset()
Resets registry, i.e.
epics::pvAccess::IntrospectionRegistry::serialize
void serialize(epics::pvData::FieldConstPtr const &field, epics::pvData::ByteBuffer *buffer, epics::pvData::SerializableControl *control)
Serializes introspection interface.
epics::pvData::ByteBuffer
epics::pvData::DeserializableControl
epics::pvData::SerializableControl
epics::pvAccess
Holds all PVA related.
Definition
monitor.h:37
epics::pvData::int16
int16_t int16
epics::pvData::int8
int8_t int8
epics::pvData::FieldConstPtr
std::tr1::shared_ptr< const Field > FieldConstPtr
epics
Copyright - See the COPYRIGHT that is included with this distribution.
Generated on
for pvAccessCPP by
1.17.0