blob: 35d67219039f9fe4a3f5eff7e432d6da97ff6f08 [file] [log] [blame]
michaeltfcea39d2017-04-20 05:39:30 -07001/*
2 * Copyright 2017 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_TOOLS_NETWORK_TESTER_PACKET_LOGGER_H_
12#define WEBRTC_TOOLS_NETWORK_TESTER_PACKET_LOGGER_H_
13
14#include <fstream>
15#include <string>
16
17#include "webrtc/base/constructormagic.h"
18#include "webrtc/base/ignore_wundef.h"
19
20#ifdef WEBRTC_NETWORK_TESTER_PROTO
21RTC_PUSH_IGNORING_WUNDEF()
22#include "webrtc/tools/network_tester/network_tester_packet.pb.h"
23RTC_POP_IGNORING_WUNDEF()
24using webrtc::network_tester::packet::NetworkTesterPacket;
25#else
26class NetworkTesterPacket;
27#endif // WEBRTC_NETWORK_TESTER_PROTO
28
29namespace webrtc {
30
31class PacketLogger {
32 public:
33 explicit PacketLogger(const std::string& log_file_path);
34 ~PacketLogger();
35
36 void LogPacket(const NetworkTesterPacket& packet);
37
38 private:
39 std::ofstream packet_logger_stream_;
40
41 RTC_DISALLOW_COPY_AND_ASSIGN(PacketLogger);
42};
43
44} // namespace webrtc
45
46#endif // WEBRTC_TOOLS_NETWORK_TESTER_PACKET_LOGGER_H_