| 172 | } |
| 173 | |
| 174 | bool GraphBuilder::LoadData(TaskInfo* task_info) { |
| 175 | auto& files = *task_info->files; |
| 176 | int start = task_info->start; |
| 177 | int end = std::min(task_info->end, static_cast<int>(files.size())); |
| 178 | for (; start < end; ++start) { |
| 179 | auto reader = task_info->dir->Open(files[start], true); |
| 180 | std::string file_name = |
| 181 | JoinPath(TaskTypeString(task_info->type), files[start]); |
| 182 | if (reader == nullptr) { |
| 183 | EULER_LOG(ERROR) << "Open file " << file_name << " failed!!"; |
| 184 | return false; |
| 185 | } |
| 186 | bool success; |
| 187 | switch (task_info->type) { |
| 188 | case kLoadNodeTask: |
| 189 | success = ParseNodes(reader.get(), &task_info->node_vec); |
| 190 | break; |
| 191 | case kLoadEdgeTask: |
| 192 | success = ParseEdges(reader.get(), &task_info->edge_vec); |
| 193 | break; |
| 194 | default: |
| 195 | assert(false); |
| 196 | } |
| 197 | if (!success) { |
| 198 | EULER_LOG(ERROR) << file_name << " data error!"; |
| 199 | return false; |
| 200 | } |
| 201 | EULER_LOG(INFO) << "load data file ok: " << file_name; |
| 202 | } |
| 203 | |
| 204 | return true; |
| 205 | } |
| 206 | |
| 207 | Status GraphBuilder::BuildSampler(Graph* graph, |
| 208 | GlobalSamplerType sampler_type) { |
nothing calls this directly
no test coverage detected