src/DataBuffer.h

changeset 112
def56932f938
parent 108
6409ece8297c
child 115
9be16e1c1e44
equal deleted inserted replaced
111:87d9ebd3ef34 112:def56932f938
32 #include <stdio.h> 32 #include <stdio.h>
33 #include <string.h> 33 #include <string.h>
34 #include "Main.h" 34 #include "Main.h"
35 #include "StringTable.h" 35 #include "StringTable.h"
36 36
37 #define MAX_MARKS 512
38
39 // ============================================================================ 37 // ============================================================================
40 // data_buffer: A dynamic data buffer. 38 // data_buffer: A dynamic data buffer.
41 // 39 //
42 // Notes: 40 // Notes:
43 // 41 //
49 // is written to file, they are changed into their marks' current 47 // is written to file, they are changed into their marks' current
50 // positions. Marks themselves are never written to files, only refs are 48 // positions. Marks themselves are never written to files, only refs are
51 // 49 //
52 class DataBuffer 50 class DataBuffer
53 { 51 {
54 PROPERTY (private, char*, Buffer, NO_OPS, STOCK_WRITE) 52 PROPERTY (private, char*, Buffer, SetBuffer, STOCK_WRITE)
55 PROPERTY (private, int, AllocatedSize, NUM_OPS, STOCK_WRITE) 53 PROPERTY (private, int, AllocatedSize, SetAllocatedSize, STOCK_WRITE)
56 PROPERTY (private, char*, Position, NO_OPS, STOCK_WRITE) 54 PROPERTY (private, char*, Position, SetPosition, STOCK_WRITE)
57 PROPERTY (private, List<ByteMark*>, Marks, LIST_OPS, STOCK_WRITE) 55 PROPERTY (private, List<ByteMark*>, Marks, SetMarks, STOCK_WRITE)
58 PROPERTY (private, List<MarkReference*>, References, LIST_OPS, STOCK_WRITE) 56 PROPERTY (private, List<MarkReference*>, References, SetReferences, STOCK_WRITE)
59 57
60 public: 58 public:
61 DataBuffer (int size = 128); 59 DataBuffer (int size = 128);
62 ~DataBuffer(); 60 ~DataBuffer();
63 61
81 void WriteByte (int8_t data); 79 void WriteByte (int8_t data);
82 void WriteWord (int16_t data); 80 void WriteWord (int16_t data);
83 void WriteDWord (int32_t data); 81 void WriteDWord (int32_t data);
84 void CopyBuffer (const DataBuffer* buf); 82 void CopyBuffer (const DataBuffer* buf);
85 83
86 inline int GetWrittenSize() const 84 inline int WrittenSize() const
87 { 85 {
88 return GetPosition() - GetBuffer(); 86 return Position() - Buffer();
89 } 87 }
90 }; 88 };
91 89
92 #endif // BOTC_DATABUFFER_H 90 #endif // BOTC_DATABUFFER_H

mercurial