void TableSerializer::SerializeTable(DataStructures::Table *in, RakNet::BitStream *out) { DataStructures::Page<unsigned, DataStructures::Table::Row*, _TABLE_BPLUS_TREE_ORDER> *cur = in->GetRows().GetListHead(); DataStructures::List<DataStructures::Table::ColumnDescriptor> &columns=in->GetColumns(); SerializeColumns(in, out); out->Write((unsigned)in->GetRows().Size()); unsigned rowIndex; while (cur) { for (rowIndex=0; rowIndex < (unsigned)cur->size; rowIndex++) { SerializeRow(cur->data[rowIndex], cur->keys[rowIndex], columns, out); } cur=cur->next; } }
void TableSerializer::SerializeTable(DataStructures::Table *in, RakNet::BitStream *out) { DataStructures::List<DataStructures::Table::ColumnDescriptor> &columns=in->GetColumns(); DataStructures::Page<unsigned, DataStructures::Table::Row*, _TABLE_BPLUS_TREE_ORDER> *cur = in->GetRows().GetListHead(); out->Write((unsigned)columns.Size()); unsigned i; for (i=0; i<columns.Size(); i++) { stringCompressor->EncodeString(columns[i].columnName, _TABLE_MAX_COLUMN_NAME_LENGTH, out); out->Write((unsigned char)columns[i].columnType); } out->Write((unsigned)in->GetRows().Size()); unsigned rowIndex; while (cur) { for (rowIndex=0; rowIndex < (unsigned)cur->size; rowIndex++) { SerializeRow(cur->data[rowIndex], cur->keys[rowIndex], columns, out); } cur=cur->next; } }