1/*
2    File:       CBuffer.h
3
4    Contains:   Interface to the CBuffer abstract class
5
6*/
7
8#ifndef __CBUFFER_H
9#define __CBUFFER_H
10
11#include "IrDATypes.h"
12
13//--------------------------------------------------------------------------------
14//      CBuffer
15//--------------------------------------------------------------------------------
16class CBuffer : public OSObject
17{
18    OSDeclareAbstractStructors(CBuffer);
19
20public:
21
22    // position and size
23
24    virtual Long    Hide(Long count, int dir) = 0;
25    virtual Size    Seek(Long off, int dir) = 0;
26    virtual Size    Position(void) const = 0;
27    virtual Size    GetSize(void) const = 0;
28    virtual Boolean AtEOF(void) const = 0;
29
30
31    // get primitives
32
33    virtual int     Peek(void) = 0;
34    virtual int     Next(void) = 0;
35    virtual uintptr_t     Skip(void) = 0;
36    virtual int     Get(void) = 0;
37    virtual Size    Getn(UByte* p, Size n) = 0;
38    virtual int     CopyOut(UByte* p, Size& n) = 0;
39
40    // put primitives
41
42    virtual int     Put(int dataByte) = 0;
43    virtual Size    Putn(const UByte* p, Size n) = 0;
44    virtual int     CopyIn(const UByte* p, Size& n) = 0;
45
46    // misc
47
48    virtual void    Reset(void) = 0;
49
50
51}; // CBuffer
52
53#endif  /*  __CBUFFER_H */
54