6 #ifndef CMR_COMM_BUFFER_INCLUDED
7 #define CMR_COMM_BUFFER_INCLUDED
41 class DictionaryManager
50 DictionaryManager(
const DictionaryManager&);
53 int get_element_pos(
const AString& elmt)
const;
54 AString get_element_at(
int pos)
const;
55 bool add_element(
const AString& elmt);
58 return attributes.size();
63 void splice(DictionaryManager& src);
67 mutable DictionaryManager dictionary_manager_;
71 CommBuffer(
size_t page_size);
72 CommBuffer(
const CommBuffer& C);
73 CommBuffer& operator=(
const CommBuffer& C);
106 enum { DECLARED_DATA_SIZE = 4 };
115 static bool decodeHeader(
Byte* header ,
int* version,
Byte flag[],
size_t* size,
int* chunkTag);
117 void update_header();
118 bool update_from_header();
121 is_last_page_ = value;
125 return is_last_page_;
128 bool push_flag(
Byte flag);
129 void clear_flag(
Byte flag);
130 bool has_flag(
Byte flag);
148 Pos() : current_page_(0), current_pos_(0), on_first_page_(true) {}
184 is_ascii_ = is_ascii;
186 void update_ascii_flags();
189 void update_headers();
198 Byte* allocate(
size_t& size);
205 Byte* allocate_in_new_page(
size_t size,
bool reserveHeader);
211 size_t add_size(
size_t size);
230 long write_byte(
const Byte* b,
size_t size);
231 long write_raw(
const Byte* b,
size_t size);
232 long read_byte(
Byte* b,
size_t size)
const;
234 long write_using_dictionary(
const AString& v);
236 long write(
const String& v);
238 long write(
const Blob& v);
241 long write(
const Symbol& v);
242 long write(
const Tuple& v);
243 long write(
const Bool& v);
244 long write(
const Int& v);
245 long write(
const UInt& v);
246 long write(
const long& v);
247 long write(
const unsigned long& v);
248 long write(
const Long& v);
249 long write(
const ULong& v);
250 long write(
const Short& v);
251 long write(
const UShort& v);
252 long write(
const Float& v);
253 long write(
const Double& v);
281 long read_using_dictionary(
AString& v)
const;
293 long read(
long& v)
const;
294 long read(
unsigned long& v)
const;
327 void set_pos(
const Pos& pos);
330 long write_file(
const Path& file_name)
const;
331 long read_file(
const Path& file_name);
336 void add_page_(
bool reserveHeader);
337 void add_page_(
size_t size,
bool reserveHeader);
340 size_t default_page_size_;
356 DEFAULT_PAGE_SIZE = 4096,
bool is_last_page() const
Definition: CommBuffer.h:123
Page * PPage
Definition: CommBuffer.h:34
bool on_first_page_
Definition: CommBuffer.h:147
size_t size() const
Definition: CommBuffer.h:173
Pos()
Definition: CommBuffer.h:148
Definition: CommBuffer.h:151
Flags
Definition: CommBuffer.h:88
bool Bool
Definition: Type.h:35
bool is_ascii() const
Definition: CommBuffer.h:178
bool is_last_page_
Definition: CommBuffer.h:98
Definition: StringBuffer.h:21
PPage next_
Definition: CommBuffer.h:105
Definition: CommBuffer.h:78
bool read(IBStream &str, int &num)
Definition: Time.cpp:200
size_t current_pos_
Definition: CommBuffer.h:146
bool hasNext() const
Definition: CommBuffer.h:157
double Double
Definition: Type.h:46
AString to_string(long number, int width=0, char pad= '0')
Definition: Time.cpp:1405
#define CMREXD
Definition: Compiler.h:22
PPage current_page_
Definition: CommBuffer.h:145
unsigned int UInt
Definition: Type.h:67
int version_
Definition: CommBuffer.h:99
bool operator==(const pair< T1, T2 > &x, const pair< T1, T2 > &y)
Definition: HMap.h:148
PCommBuffer cont_
Definition: CommBuffer.h:102
void set_size(size_t size)
Definition: CommBuffer.h:169
void set_is_ascii(bool is_ascii)
Definition: CommBuffer.h:182
PPage get_last()
Definition: CommBuffer.h:349
Definition: CommBuffer.h:28
int Int
Definition: Type.h:37
void set_is_last_page(bool value)
Definition: CommBuffer.h:119
unsigned short UShort
Definition: Type.h:69
unsigned long long ULong
Definition: Type.h:75
size_t page_size_
Definition: CommBuffer.h:104
Definition: CommBuffer.h:143
short Short
Definition: Type.h:68
unsigned char Byte
Definition: Type.h:64
size_t size_
Definition: CommBuffer.h:103
float Float
Definition: Type.h:45
Definition: IOBStream.h:166
long long Long
Definition: Type.h:43
Definition: IOBStream.h:29
size_t get_size() const
Definition: CommBuffer.h:133
Page()
Definition: CommBuffer.h:108