File indexing completed on 2024-04-06 12:01:27
0001 #include "CondCore/CondDB/interface/FileUtils.h"
0002 #include "CondCore/CondDB/interface/Exception.h"
0003 #include <fstream>
0004 #include <sstream>
0005
0006 bool cond::FileReader::read(const std::string& fileName) {
0007 std::ifstream inputFile;
0008 inputFile.open(fileName.c_str());
0009 if (!inputFile.good()) {
0010 std::stringstream msg;
0011 msg << "File \"" << fileName << "\" cannot be open.";
0012 inputFile.close();
0013 throw cond::Exception(msg.str());
0014 }
0015
0016 std::filebuf* pbuf = inputFile.rdbuf();
0017
0018 long size = pbuf->pubseekoff(0, std::ios::end, std::ios::in);
0019 pbuf->pubseekpos(0, std::ios::in);
0020
0021 char* buffer = new char[size + 1];
0022
0023 pbuf->sgetn(buffer, size);
0024 inputFile.close();
0025 buffer[size] = 0;
0026 m_content += buffer;
0027 delete[] buffer;
0028 return true;
0029 }