| 326 | } |
| 327 | |
| 328 | Status ReadFileToString(Env* env, const std::string& fname, std::string* data) { |
| 329 | EnvOptions soptions; |
| 330 | data->clear(); |
| 331 | std::unique_ptr<SequentialFile> file; |
| 332 | Status s = env->NewSequentialFile(fname, &file, soptions); |
| 333 | if (!s.ok()) { |
| 334 | return s; |
| 335 | } |
| 336 | static const int kBufferSize = 8192; |
| 337 | char* space = new char[kBufferSize]; |
| 338 | while (true) { |
| 339 | Slice fragment; |
| 340 | s = file->Read(kBufferSize, &fragment, space); |
| 341 | if (!s.ok()) { |
| 342 | break; |
| 343 | } |
| 344 | data->append(fragment.data(), fragment.size()); |
| 345 | if (fragment.empty()) { |
| 346 | break; |
| 347 | } |
| 348 | } |
| 349 | delete[] space; |
| 350 | return s; |
| 351 | } |
| 352 | |
| 353 | EnvWrapper::~EnvWrapper() {} |
| 354 | |