World serialization done (not well-tested yet)

This commit is contained in:
2021-03-16 12:19:37 -04:00
parent 7c9fd1e46b
commit a64e339b6b
8 changed files with 111 additions and 52 deletions

View File

@@ -24,4 +24,23 @@ SchedEntry Schedule::pop() {
schedule_.erase(schedule_.begin());
return result;
}
void Schedule::serialize(StreamBuffer *sb) {
sb->write_size(schedule_.size());
for (const SchedEntry &entry : schedule_) {
sb->write_int64(entry.clock_);
sb->write_int64(entry.thread_id_);
sb->write_int64(entry.place_id_);
}
}
void Schedule::deserialize(StreamBuffer *sb) {
schedule_.clear();
size_t nentry = sb->read_size();
for (size_t i = 0; i < nentry; i++) {
int64_t clock = sb->read_int64();
int64_t thread_id = sb->read_int64();
int64_t place_id = sb->read_int64();
add(clock, thread_id, place_id);
}
}