| 116 | } |
| 117 | |
| 118 | void |
| 119 | IndexNode::Deserialize(StreamReader& reader) { |
| 120 | // deserialize `entry_point_` |
| 121 | StreamReader::ReadObj(reader, entry_point_); |
| 122 | // deserialize `level_` |
| 123 | StreamReader::ReadObj(reader, level_); |
| 124 | // deserialize `status_` |
| 125 | StreamReader::ReadObj(reader, status_); |
| 126 | if (status_ == Status::GRAPH) { |
| 127 | graph_ = std::make_shared<SparseGraphDataCell>( |
| 128 | std::dynamic_pointer_cast<SparseGraphDatacellParameter>(graph_param_), allocator_); |
| 129 | graph_->Deserialize(reader); |
| 130 | } else if (status_ == Status::FLAT) { |
| 131 | StreamReader::ReadVector(reader, ids_); |
| 132 | } |
| 133 | // deserialize `children` |
| 134 | size_t children_size = 0; |
| 135 | StreamReader::ReadObj(reader, children_size); |
| 136 | for (int i = 0; i < children_size; ++i) { |
| 137 | std::string key = StreamReader::ReadString(reader); |
| 138 | AddChild(key); |
| 139 | children_[key]->Deserialize(reader); |
| 140 | } |
| 141 | } |
| 142 | |
| 143 | void |
| 144 | IndexNode::Serialize(StreamWriter& writer) const { |
nothing calls this directly
no test coverage detected