pvAccessCPP  7.1.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
serializationHelper.h
1 /*
2  * serializationHelper.h
3  *
4  * Created on: Jul 24, 2012
5  * Author: msekoranja
6  */
7 
8 #ifndef SERIALIZATIONHELPER_H_
9 #define SERIALIZATIONHELPER_H_
10 
11 #include <pv/serialize.h>
12 #include <pv/pvData.h>
13 #include <pv/noDefaultMethods.h>
14 #include <pv/pvIntrospect.h>
15 #include <pv/byteBuffer.h>
16 
17 #include <pv/pvaConstants.h>
18 #include <pv/pvAccess.h>
19 
20 namespace epics {
21 namespace pvAccess {
22 
23 class epicsShareClass SerializationHelper {
24  EPICS_NOT_COPYABLE(SerializationHelper)
25 public:
26 
27  static epics::pvData::PVDataCreatePtr _pvDataCreate;
28 
34  static epics::pvData::PVStructure::shared_pointer deserializePVRequest(epics::pvData::ByteBuffer* payloadBuffer, epics::pvData::DeserializableControl* control);
35 
44  static epics::pvData::PVStructure::shared_pointer deserializeStructureAndCreatePVStructure(epics::pvData::ByteBuffer* payloadBuffer,
45  epics::pvData::DeserializableControl* control,
46  epics::pvData::PVStructure::shared_pointer const & existingStructure = epics::pvData::PVStructure::shared_pointer());
47 
53  static epics::pvData::PVStructure::shared_pointer deserializeStructureFull(epics::pvData::ByteBuffer* payloadBuffer, epics::pvData::DeserializableControl* control);
54 
60  static epics::pvData::PVField::shared_pointer deserializeFull(epics::pvData::ByteBuffer* payloadBuffer, epics::pvData::DeserializableControl* control);
61 
67  static void serializeNullField(epics::pvData::ByteBuffer* buffer, epics::pvData::SerializableControl* control);
68 
73  static void serializePVRequest(epics::pvData::ByteBuffer* buffer, epics::pvData::SerializableControl* control, epics::pvData::PVStructure::shared_pointer const & pvRequest);
74 
79  static void serializeStructureFull(epics::pvData::ByteBuffer* buffer, epics::pvData::SerializableControl* control, epics::pvData::PVStructure::shared_pointer const & pvStructure);
80 
85  static void serializeFull(epics::pvData::ByteBuffer* buffer, epics::pvData::SerializableControl* control, const epics::pvData::PVField::const_shared_pointer &pvField);
86 
87 };
88 
89 }
90 }
91 
92 #endif /* SERIALIZATIONHELPER_H_ */