2 Serial element

A serial element is a sequence of octets uniquely identified by a 64 bit integer called a Seid.

Serial elements are recorded in an LSS.

The serial elements are like byte streams, in that they are both read and written in the manner of an I/O stream. In fact a single serial element can be much larger than the available physical memory, and yet can be read or written efficiently as a stream of octets.

The stream interfaces are defined in Ceda/cxUtils/StreamInterfaces.h as follows:

struct IInputStream
{
    virtual ~IInputStream() {}
    virtual ssize_t ReadStream(void* buffer, ssize_t numBytesRequested) = 0;
};

struct ICloseableInputStream : public IInputStream
{
    virtual void Close() = 0;
};

struct IOutputStream
{
    virtual ~IOutputStream() {}
    virtual void WriteStream(const void* buffer, ssize_t numBytes) = 0;
    virtual void FlushStream() = 0;
};

struct ICloseableOutputStream : public IOutputStream
{
    virtual void Close() = 0;
};