/* Copyright 2019-2020 Canaan Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #pragma once #include #include #include namespace nncase { inline std::vector read_file(const boost::filesystem::path &filename) { std::ifstream infile(filename.c_str(), std::ios::binary | std::ios::in); if (!infile.good()) throw std::runtime_error("Cannot open file: " + filename.string()); infile.seekg(0, std::ios::end); size_t length = infile.tellg(); if (!length) throw std::runtime_error("Invalid file: " + filename.string()); infile.seekg(0, std::ios::beg); std::vector data(length); infile.read(reinterpret_cast(data.data()), length); infile.close(); return data; } }