This is Unofficial EPICS BASE Doxygen Site
introspectionRegistry.h
Go to the documentation of this file.
1 
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 
47 public:
49  virtual ~IntrospectionRegistry();
50 
54  void reset();
55 
56 private:
67  epics::pvData::int16 registerIntrospectionInterface(epics::pvData::FieldConstPtr const & field, bool& existing);
68 public:
77 
89 
94 
99 
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 */
int8_t int8
Definition: pvType.h:75
void serialize(epics::pvData::FieldConstPtr const &field, epics::pvData::ByteBuffer *buffer, epics::pvData::SerializableControl *control)
epics::pvData::FieldConstPtr deserialize(epics::pvData::ByteBuffer *buffer, epics::pvData::DeserializableControl *control)
TODO only here because of the Lockable.
Definition: ntaggregate.cpp:16
Callback class for deserialization.
Definition: serialize.h:89
This class implements a Bytebuffer that is like the java.nio.ByteBuffer.
Definition: byteBuffer.h:233
std::tr1::shared_ptr< const Field > FieldConstPtr
Definition: pvIntrospect.h:137
static const epics::pvData::int8 ONLY_ID_TYPE_CODE
std::map< const short, epics::pvData::FieldConstPtr > registryMap_t
std::tr1::shared_ptr< FieldCreate > FieldCreatePtr
Callback class for serialization.
Definition: serialize.h:34
int16_t int16
Definition: pvType.h:79
#define EPICS_NOT_COPYABLE(CLASS)
Disable implicit copyable.
static const epics::pvData::int8 NULL_TYPE_CODE
static const epics::pvData::int8 FULL_WITH_ID_TYPE_CODE