/* * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #include "modules/remote_bitrate_estimator/test/bwe_test_fileutils.h" #ifdef WIN32 #include #else #include #endif #include #include "modules/remote_bitrate_estimator/test/bwe_test_logging.h" #include "test/testsupport/file_utils.h" namespace webrtc { namespace testing { namespace bwe { ResourceFileReader::~ResourceFileReader() { if (file_ != NULL) { fclose(file_); file_ = NULL; } } bool ResourceFileReader::IsAtEnd() { int32_t current_pos = ftell(file_); fseek(file_, 0, SEEK_END); int32_t end_pos = ftell(file_); fseek(file_, current_pos, SEEK_SET); return current_pos == end_pos; } bool ResourceFileReader::Read(uint32_t* out) { assert(out); uint32_t tmp = 0; if (fread(&tmp, 1, sizeof(uint32_t), file_) != sizeof(uint32_t)) { printf("Error reading!\n"); return false; } *out = ntohl(tmp); return true; } ResourceFileReader* ResourceFileReader::Create(const std::string& filename, const std::string& extension) { std::string filepath = webrtc::test::ResourcePath(filename, extension); FILE* file = fopen(filepath.c_str(), "rb"); if (file == NULL) { BWE_TEST_LOGGING_CONTEXT("ResourceFileReader"); BWE_TEST_LOGGING_LOG1("Create", "Can't read file: %s", filepath.c_str()); return 0; } else { return new ResourceFileReader(file); } } OutputFileWriter::~OutputFileWriter() { if (file_ != NULL) { fclose(file_); file_ = NULL; } } bool OutputFileWriter::Write(uint32_t value) { uint32_t tmp = htonl(value); if (fwrite(&tmp, 1, sizeof(uint32_t), file_) != sizeof(uint32_t)) { return false; } return true; } OutputFileWriter* OutputFileWriter::Create(const std::string& filename, const std::string& extension) { std::string filepath = webrtc::test::OutputPath() + filename + "." + extension; FILE* file = fopen(filepath.c_str(), "wb"); if (file == NULL) { BWE_TEST_LOGGING_CONTEXT("OutputFileWriter"); BWE_TEST_LOGGING_LOG1("Create", "Can't write file: %s", filepath.c_str()); return NULL; } else { return new OutputFileWriter(file); } } } // namespace bwe } // namespace testing } // namespace webrtc