1af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org/*
2af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org *  Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
3af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org *
4af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org *  Use of this source code is governed by a BSD-style license
5af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org *  that can be found in the LICENSE file in the root of the source
6af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org *  tree. An additional intellectual property rights grant can be found
7af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org *  in the file PATENTS.  All contributing project authors may
8af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org *  be found in the AUTHORS file in the root of the source tree.
9af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org */
10af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org
11af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org#ifndef WEBRTC_MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_BWE_TEST_FILEUTILS_H_
12af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org#define WEBRTC_MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_BWE_TEST_FILEUTILS_H_
13af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org
14bcf0a1019f34cac346bd8349c2206f9d06adbe4epbos@webrtc.org#include <stdio.h>
15bcf0a1019f34cac346bd8349c2206f9d06adbe4epbos@webrtc.org
16af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org#include <string>
17af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org
18774b3d38a4a0f1a8ec08972a3c543cb5d607ce13henrike@webrtc.org#include "webrtc/base/constructormagic.h"
19af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org#include "webrtc/modules/interface/module_common_types.h"
20af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org
21af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.orgnamespace webrtc {
22af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.orgnamespace testing {
23af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.orgnamespace bwe {
24af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org
25af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.orgclass ResourceFileReader {
26af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org public:
27af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org  ~ResourceFileReader();
28af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org
29af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org  bool IsAtEnd();
30af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org  bool Read(uint32_t* out);
31af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org
32af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org  static ResourceFileReader* Create(const std::string& filename,
33af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org                                    const std::string& extension);
34af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org
35af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org private:
36af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org  explicit ResourceFileReader(FILE* file) : file_(file) {}
37af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org  FILE* file_;
38af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org  DISALLOW_IMPLICIT_CONSTRUCTORS(ResourceFileReader);
39af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org};
40af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org
41af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.orgclass OutputFileWriter {
42af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org public:
43af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org  ~OutputFileWriter();
44af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org
45af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org  bool Write(uint32_t value);
46af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org
47af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org  static OutputFileWriter* Create(const std::string& filename,
48af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org                                  const std::string& extension);
49af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org
50af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org private:
51af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org  explicit OutputFileWriter(FILE* file) : file_(file) {}
52af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org  FILE* file_;
53af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org  DISALLOW_IMPLICIT_CONSTRUCTORS(OutputFileWriter);
54af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org};
55af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org}  // namespace bwe
56af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org}  // namespace testing
57af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org}  // namespace webrtc
58af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org
59af00735ca7a7b0eab3e31d9d274340b3589fa5e4solenberg@webrtc.org#endif  // WEBRTC_MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_BWE_TEST_FILEUTILS_H_
60