49 // is written to file, they are changed into their marks' current |
49 // is written to file, they are changed into their marks' current |
50 // positions. Marks themselves are never written to files, only refs are |
50 // positions. Marks themselves are never written to files, only refs are |
51 // |
51 // |
52 class DataBuffer |
52 class DataBuffer |
53 { |
53 { |
54 PROPERTY (private, byte*, Buffer, NO_OPS, STOCK_WRITE) |
54 PROPERTY (private, char*, Buffer, NO_OPS, STOCK_WRITE) |
55 PROPERTY (private, int, AllocatedSize, NUM_OPS, STOCK_WRITE) |
55 PROPERTY (private, int, AllocatedSize, NUM_OPS, STOCK_WRITE) |
56 PROPERTY (private, byte*, Position, NO_OPS, STOCK_WRITE) |
56 PROPERTY (private, char*, Position, NO_OPS, STOCK_WRITE) |
57 PROPERTY (private, List<ByteMark*>, Marks, LIST_OPS, STOCK_WRITE) |
57 PROPERTY (private, List<ByteMark*>, Marks, LIST_OPS, STOCK_WRITE) |
58 PROPERTY (private, List<MarkReference*>, References, LIST_OPS, STOCK_WRITE) |
58 PROPERTY (private, List<MarkReference*>, References, LIST_OPS, STOCK_WRITE) |
59 |
59 |
60 public: |
60 public: |
61 DataBuffer (int size = 128); |
61 DataBuffer (int size = 128); |
74 void AdjustMark (ByteMark* mark); |
74 void AdjustMark (ByteMark* mark); |
75 void OffsetMark (ByteMark* mark, int offset); |
75 void OffsetMark (ByteMark* mark, int offset); |
76 ByteMark* FindMarkByName (const String& target); |
76 ByteMark* FindMarkByName (const String& target); |
77 void Dump(); |
77 void Dump(); |
78 void TransferMarks (DataBuffer* other); |
78 void TransferMarks (DataBuffer* other); |
79 void WriteFloat (float a); |
|
80 void WriteStringIndex (const String& a); |
79 void WriteStringIndex (const String& a); |
81 void WriteString (const String& a); |
80 void WriteString (const String& a); |
82 void WriteByte (int8_t data); |
81 void WriteByte (int8_t data); |
83 void WriteWord (int16_t data); |
82 void WriteWord (int16_t data); |
84 void WriteDWord (int32_t data); |
83 void WriteDWord (int32_t data); |