jsep_session_description.h (1853B)
1 /* 2 * Copyright 2012 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 // TODO(deadbeef): Move this out of api/; it's an implementation detail and 12 // shouldn't be used externally. 13 14 #ifndef API_JSEP_SESSION_DESCRIPTION_H_ 15 #define API_JSEP_SESSION_DESCRIPTION_H_ 16 17 #include <cstddef> 18 #include <memory> 19 #include <string> 20 #include <vector> 21 22 #include "absl/strings/string_view.h" 23 #include "api/jsep.h" 24 25 namespace webrtc { 26 27 class SessionDescription; 28 29 // Implementation of SessionDescriptionInterface. 30 class JsepSessionDescription final : public SessionDescriptionInterface { 31 public: 32 // TODO: bugs.webrtc.org/442220720 - Remove this constructor and make sure 33 // that JsepSessionDescription can only be constructed with a valid 34 // SessionDescription object (with the exception of kRollback). 35 [[deprecated( 36 "JsepSessionDescription needs to be initialized with a valid description " 37 "object")]] 38 explicit JsepSessionDescription(SdpType type); 39 JsepSessionDescription(SdpType type, 40 std::unique_ptr<SessionDescription> description, 41 absl::string_view session_id, 42 absl::string_view session_version, 43 std::vector<IceCandidateCollection> candidates = {}); 44 ~JsepSessionDescription() override; 45 46 JsepSessionDescription(const JsepSessionDescription&) = delete; 47 JsepSessionDescription& operator=(const JsepSessionDescription&) = delete; 48 }; 49 50 } // namespace webrtc 51 52 #endif // API_JSEP_SESSION_DESCRIPTION_H_