Files
pvData/pvDataApp/misc/serialize.h
2010-09-23 14:47:47 -04:00

43 lines
1.1 KiB
C++

/* serialize.h */
#ifndef SERIALIZE_H
#define SERIALIZE_H
#include "bitSet.h"
#include "byteBuffer.h"
namespace epics { namespace pvData {
class SerializableControl {
virtual void flushSerializeBuffer() const =0;
virtual void ensureBuffer(int size) const =0;
};
class DeserializableControl {
virtual void ensureData(int size) =0;
};
class Serializable {
public:
virtual void serialize(ByteBuffer *pbuffer,
SerializableControl *pflusher) const = 0;
virtual void deserialize(ByteBuffer *pbuffer,
DeserializableControl *pflusher) = 0;
};
class BitSetSerializable {
public:
virtual void serialize(ByteBuffer *pbuffer,
SerializableControl *pflusher,BitSet *pbitSet) const = 0;
virtual void deserialize(ByteBuffer *pbuffer,
DeserializableControl*pflusher,BitSet *pbitSet) = 0;
};
class SerializableArray : public Serializable {
public:
virtual void serialize(ByteBuffer *pbuffer,
SerializableControl *pflusher, int offset, int count) const = 0;
};
}}
#endif /* SERIALIZE_H */