19 namespace epics {
namespace pvData {
21 class SerializableControl;
22 class DeserializableControl;
24 class BitSetSerializable;
25 class SerializableArray;
43 virtual void flushSerializeBuffer() =0;
49 virtual void ensureBuffer(std::size_t size) =0;
54 virtual void alignBuffer(std::size_t alignment) =0;
69 virtual bool directSerialize(
71 const char* toSerialize,
72 std::size_t elementCount,
79 virtual void cachedSerialize(
80 std::tr1::shared_ptr<const Field>
const & field,
100 virtual void ensureData(std::size_t size) =0;
108 virtual void alignData(std::size_t alignment) =0;
123 virtual bool directDeserialize(
126 std::size_t elementCount,
132 virtual std::tr1::shared_ptr<const Field> cachedDeserialize(
172 std::vector<epicsUInt8>& out);
192 const std::vector<epicsUInt8>& in)
194 ByteBuffer B((
char*)&in[0], in.size(), byteOrder);
245 virtual void serialize(
249 std::size_t count)
const = 0;
void deserializeFromVector(Serializable *S, int byteOrder, const std::vector< epicsUInt8 > &in)
deserializeFromBuffer Deserialize into S from provided vector
virtual void serialize(ByteBuffer *buffer, SerializableControl *flusher) const =0
size_t elementSize(ScalarType id)
gives sizeof(T) where T depends on the scalar type id.
Base class for serialization.
void epicsShareFunc deserializeFromBuffer(Serializable *S, ByteBuffer &in)
deserializeFromBuffer Deserialize into S from provided vector
TODO only here because of the Lockable.
Mark external symbols and entry points for shared libraries.
virtual ~DeserializableControl()
Callback class for deserialization.
Class for serializing bitSets.
Class for serializing arrays.
This class implements a Bytebuffer that is like the java.nio.ByteBuffer.
virtual ~SerializableArray()
Callback class for serialization.
virtual ~BitSetSerializable()
void epicsShareFunc serializeToVector(const Serializable *S, int byteOrder, std::vector< epicsUInt8 > &out)
Push serialize and append to the provided byte vector. No caching is done. Only complete serializatio...
virtual ~SerializableControl()