7 #ifndef INTROSPECTIONREGISTRY_H 8 #define INTROSPECTIONREGISTRY_H 13 #ifdef epicsExportSharedSymbols 14 # define introspectionRegistryEpicsExportSharedSymbols 15 # undef epicsExportSharedSymbols 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> 27 #ifdef introspectionRegistryEpicsExportSharedSymbols 28 # define epicsExportSharedSymbols 29 # undef introspectionRegistryEpicsExportSharedSymbols 37 typedef std::map<
const short,epics::pvData::FieldConstPtr> registryMap_t;
45 class IntrospectionRegistry {
46 EPICS_NOT_COPYABLE(IntrospectionRegistry)
48 IntrospectionRegistry();
49 virtual ~IntrospectionRegistry();
67 epics::pvData::int16 registerIntrospectionInterface(epics::pvData::FieldConstPtr
const & field,
bool& existing);
76 void serialize(epics::pvData::FieldConstPtr
const & field, epics::pvData::ByteBuffer* buffer, epics::pvData::SerializableControl* control);
88 epics::pvData::FieldConstPtr deserialize(epics::pvData::ByteBuffer* buffer, epics::pvData::DeserializableControl* control);
93 const static epics::pvData::int8 NULL_TYPE_CODE;
98 const static epics::pvData::int8 ONLY_ID_TYPE_CODE;
103 const static epics::pvData::int8 FULL_WITH_ID_TYPE_CODE;
106 registryMap_t _registry;
107 epics::pvData::int16 _pointer;
112 static epics::pvData::FieldCreatePtr _fieldCreate;
114 bool registryContainsValue(epics::pvData::FieldConstPtr
const & field, epics::pvData::int16& key);