| 234 | } |
| 235 | |
| 236 | void ModelPacker::pack_model() { |
| 237 | auto fb_header = m_fbs_helper->build_header(); |
| 238 | auto fb_info = m_fbs_helper->build_info(); |
| 239 | auto fb_data = m_fbs_helper->build_data(); |
| 240 | |
| 241 | ModelBuilder model_builder(m_fbs_helper->builder()); |
| 242 | model_builder.add_header(fb_header); |
| 243 | model_builder.add_info(fb_info); |
| 244 | model_builder.add_data(fb_data); |
| 245 | |
| 246 | auto model = model_builder.Finish(); |
| 247 | std::vector<flatbuffers::Offset<Model>> models; |
| 248 | models.emplace_back(model); |
| 249 | auto fb_models = m_fbs_helper->builder().CreateVector(models); |
| 250 | |
| 251 | PackModelBuilder pack_model_builder(m_fbs_helper->builder()); |
| 252 | pack_model_builder.add_models(fb_models); |
| 253 | m_fbs_helper->builder().Finish(pack_model_builder.Finish()); |
| 254 | |
| 255 | FILE* fptr = fopen(m_packed_model_path.c_str(), "wb"); |
| 256 | LITE_ASSERT( |
| 257 | fptr, "failed to open %s: %s", m_packed_model_path.c_str(), |
| 258 | strerror(errno)); |
| 259 | std::string packed_model_tag = "packed_model"; |
| 260 | auto nr_tag = fwrite(packed_model_tag.c_str(), 1, packed_model_tag.size(), fptr); |
| 261 | LITE_ASSERT(nr_tag == packed_model_tag.size()); |
| 262 | |
| 263 | auto fb_size = m_fbs_helper->builder().GetSize(); |
| 264 | auto nr_fb = fwrite(m_fbs_helper->builder().GetBufferPointer(), 1, fb_size, fptr); |
| 265 | LITE_ASSERT(nr_fb == fb_size); |
| 266 | fclose(fptr); |
| 267 | } |
no test coverage detected