12#include <epicsTypes.h>
14#include <pv/byteBuffer.h>
19#if defined(PVD_INTERNAL)
20# define PVD_DEPRECATED(msg)
21#elif __GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 5
22# define PVD_DEPRECATED(msg) __attribute__((deprecated(msg)))
24# define PVD_DEPRECATED(msg) EPICS_DEPRECATED
27namespace epics {
namespace pvData {
29 class SerializableControl;
30 class DeserializableControl;
32 class BitSetSerializable;
33 class SerializableArray;
58 virtual void alignBuffer(std::size_t alignment) PVD_DEPRECATED(
"Deprecated for lack of use") {}
75 const char* toSerialize,
76 std::size_t elementCount,
77 std::size_t elementSize) = 0;
84 std::tr1::shared_ptr<const Field>
const & field,
106 virtual void alignData(std::size_t alignment) PVD_DEPRECATED(
"Deprecated for lack of use") {};
124 std::size_t elementCount,
125 std::size_t elementSize) = 0;
235 using Serializable::serialize;
247 std::size_t count)
const = 0;
valarray< size_t > size() const
constexpr size_type size() const noexcept
Class for serializing bitSets.
virtual void serialize(ByteBuffer *buffer, SerializableControl *flusher, BitSet *bitSet) const =0
virtual ~BitSetSerializable()
virtual void deserialize(ByteBuffer *buffer, DeserializableControl *flusher, BitSet *bitSet)=0
This class implements a Bytebuffer that is like the java.nio.ByteBuffer.
Callback class for deserialization.
virtual ~DeserializableControl()
virtual bool directDeserialize(ByteBuffer *existingBuffer, char *deserializeTo, std::size_t elementCount, std::size_t elementSize)=0
virtual void ensureData(std::size_t size)=0
virtual std::tr1::shared_ptr< const Field > cachedDeserialize(ByteBuffer *buffer)=0
Class for serializing arrays.
virtual void serialize(ByteBuffer *buffer, SerializableControl *flusher, std::size_t offset, std::size_t count) const =0
virtual ~SerializableArray()
Callback class for serialization.
virtual void flushSerializeBuffer()=0
virtual void cachedSerialize(std::tr1::shared_ptr< const Field > const &field, ByteBuffer *buffer)=0
virtual void ensureBuffer(std::size_t size)=0
virtual bool directSerialize(ByteBuffer *existingBuffer, const char *toSerialize, std::size_t elementCount, std::size_t elementSize)=0
virtual ~SerializableControl()
Base class for serialization.
virtual void deserialize(ByteBuffer *buffer, DeserializableControl *flusher)=0
virtual void serialize(ByteBuffer *buffer, SerializableControl *flusher) const =0
void deserializeFromBuffer(Serializable *S, ByteBuffer &in)
deserializeFromBuffer Deserialize into S from provided vector
void deserializeFromVector(Serializable *S, int byteOrder, const std::vector< epicsUInt8 > &in)
deserializeFromBuffer Deserialize into S from provided vector
void 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...