webrtc/logging/rtc_event_log/icelogger.h
Bjorn Terelius 59b4e3ea8c Split IceCandidatePairEventType enum.
Disjoint subsets of the enum values are used for Ice candidate config
events and Ice candidate check events. This CL breaks out the config
part to a separate enum and by extension changes the icelogger interface
for config events.

Bug: webrtc:9336, webrtc:8111
Change-Id: I405b5c3981905c3c504b45afdddb3649469ed141
Reviewed-on: https://webrtc-review.googlesource.com/79943
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23464}
2018-05-31 08:42:10 +00:00

55 lines
1.8 KiB
C++

/*
* Copyright (c) 2017 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.
*/
#ifndef LOGGING_RTC_EVENT_LOG_ICELOGGER_H_
#define LOGGING_RTC_EVENT_LOG_ICELOGGER_H_
#include <unordered_map>
#include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h"
#include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.h"
namespace webrtc {
class RtcEventLog;
// IceEventLog wraps RtcEventLog and provides structural logging of ICE-specific
// events. The logged events are serialized with other RtcEvent's if protobuf is
// enabled in the build.
class IceEventLog {
public:
IceEventLog();
~IceEventLog();
void set_event_log(RtcEventLog* event_log) { event_log_ = event_log; }
void LogCandidatePairConfig(
IceCandidatePairConfigType type,
uint32_t candidate_pair_id,
const IceCandidatePairDescription& candidate_pair_desc);
void LogCandidatePairEvent(IceCandidatePairEventType type,
uint32_t candidate_pair_id);
// This method constructs a config event for each candidate pair with their
// description and logs these config events. It is intended to be called when
// logging starts to ensure that we have at least one config for each
// candidate pair id.
void DumpCandidatePairDescriptionToMemoryAsConfigEvents() const;
private:
RtcEventLog* event_log_ = nullptr;
std::unordered_map<uint32_t, IceCandidatePairDescription>
candidate_pair_desc_by_id_;
};
} // namespace webrtc
#endif // LOGGING_RTC_EVENT_LOG_ICELOGGER_H_