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