packet_logger.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  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. #ifndef RTC_TOOLS_NETWORK_TESTER_PACKET_LOGGER_H_
  11. #define RTC_TOOLS_NETWORK_TESTER_PACKET_LOGGER_H_
  12. #include <fstream>
  13. #include <string>
  14. #include "rtc_base/constructor_magic.h"
  15. #include "rtc_base/ignore_wundef.h"
  16. #ifdef WEBRTC_NETWORK_TESTER_PROTO
  17. RTC_PUSH_IGNORING_WUNDEF()
  18. #include "rtc_tools/network_tester/network_tester_packet.pb.h"
  19. RTC_POP_IGNORING_WUNDEF()
  20. using webrtc::network_tester::packet::NetworkTesterPacket;
  21. #else
  22. class NetworkTesterPacket;
  23. #endif // WEBRTC_NETWORK_TESTER_PROTO
  24. namespace webrtc {
  25. class PacketLogger {
  26. public:
  27. explicit PacketLogger(const std::string& log_file_path);
  28. ~PacketLogger();
  29. void LogPacket(const NetworkTesterPacket& packet);
  30. private:
  31. std::ofstream packet_logger_stream_;
  32. RTC_DISALLOW_COPY_AND_ASSIGN(PacketLogger);
  33. };
  34. } // namespace webrtc
  35. #endif // RTC_TOOLS_NETWORK_TESTER_PACKET_LOGGER_H_