1437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter// Copyright 2013 Google Inc. All Rights Reserved. 2437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter// 3437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter// Licensed under the Apache License, Version 2.0 (the "License"); 4437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter// you may not use this file except in compliance with the License. 5437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter// You may obtain a copy of the License at 6437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter// 7437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter// http://www.apache.org/licenses/LICENSE-2.0 8437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter// 9437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter// Unless required by applicable law or agreed to in writing, software 10437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter// distributed under the License is distributed on an "AS IS" BASIS, 11437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter// See the License for the specific language governing permissions and 13437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter// limitations under the License. 14437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter// 15437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter// File IO helpers 16437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter 17494c85cebbaaa0db345df69ffa1b639aa4652022Zoltan Szabadka#ifndef WOFF2_FILE_H_ 18494c85cebbaaa0db345df69ffa1b639aa4652022Zoltan Szabadka#define WOFF2_FILE_H_ 19437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter 20437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter#include <fstream> 21437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter#include <iterator> 22437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter 23437bbad37074e472b66d427814275de84ca77f19Roderick Sheeternamespace woff2 { 24437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter 25437bbad37074e472b66d427814275de84ca77f19Roderick Sheeterinline std::string GetFileContent(std::string filename) { 26437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter std::ifstream ifs(filename.c_str(), std::ios::binary); 27437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter return std::string( 28437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter std::istreambuf_iterator<char>(ifs.rdbuf()), 29437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter std::istreambuf_iterator<char>()); 30437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter} 31437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter 32437bbad37074e472b66d427814275de84ca77f19Roderick Sheeterinline void SetFileContents(std::string filename, std::string content) { 33437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter std::ofstream ofs(filename.c_str(), std::ios::binary); 34437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter std::copy(content.begin(), 35437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter content.end(), 36437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter std::ostream_iterator<char>(ofs)); 37437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter} 38437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter 39437bbad37074e472b66d427814275de84ca77f19Roderick Sheeter} // namespace woff2 40494c85cebbaaa0db345df69ffa1b639aa4652022Zoltan Szabadka#endif // WOFF2_FILE_H_ 41