Bug 1848242 - Mark basic.any.html subtest as intermittent. a=test-only
[gecko.git] / third_party / libwebrtc / pc / sdp_state_provider.h
blob23ffc91bd9b29b71a42870a6c0013ae0fd7bf961
1 /*
2 * Copyright 2020 The WebRTC project authors. All Rights Reserved.
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 */
11 #ifndef PC_SDP_STATE_PROVIDER_H_
12 #define PC_SDP_STATE_PROVIDER_H_
14 #include <string>
16 #include "api/jsep.h"
17 #include "api/peer_connection_interface.h"
19 namespace webrtc {
21 // This interface provides access to the state of an SDP offer/answer
22 // negotiation.
24 // All the functions are const, so using this interface serves as
25 // assurance that the user is not modifying the state.
26 class SdpStateProvider {
27 public:
28 virtual ~SdpStateProvider() {}
30 virtual PeerConnectionInterface::SignalingState signaling_state() const = 0;
32 virtual const SessionDescriptionInterface* local_description() const = 0;
33 virtual const SessionDescriptionInterface* remote_description() const = 0;
34 virtual const SessionDescriptionInterface* current_local_description()
35 const = 0;
36 virtual const SessionDescriptionInterface* current_remote_description()
37 const = 0;
38 virtual const SessionDescriptionInterface* pending_local_description()
39 const = 0;
40 virtual const SessionDescriptionInterface* pending_remote_description()
41 const = 0;
43 // Whether an ICE restart has been asked for. Used in CreateOffer.
44 virtual bool NeedsIceRestart(const std::string& content_name) const = 0;
45 // Whether an ICE restart was indicated in the remote offer.
46 // Used in CreateAnswer.
47 virtual bool IceRestartPending(const std::string& content_name) const = 0;
48 virtual absl::optional<rtc::SSLRole> GetDtlsRole(
49 const std::string& mid) const = 0;
52 } // namespace webrtc
54 #endif // PC_SDP_STATE_PROVIDER_H_