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
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;
247 std::size_t
count)
const = 0;
constexpr iterator_traits< _InputIterator >::difference_type count(_InputIterator __first, _InputIterator __last, const _Tp &__value)
constexpr auto size(const _Container &__cont) noexcept(noexcept(__cont.size())) -> decltype(__cont.size())
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
This class implements introspection object for field.
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...