blob: 5fe78a775898ee44ea5521d1c3c5504629ecdd11 [file] [log] [blame]
/*
* 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 "webrtc/modules/remote_bitrate_estimator/test/bwe_test_fileutils.h"
#ifdef WIN32
#include <Winsock2.h>
#else
#include <arpa/inet.h>
#endif
#include <assert.h>
#include "webrtc/modules/remote_bitrate_estimator/test/bwe_test_logging.h"
#include "webrtc/test/testsupport/fileutils.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