/* * Copyright 2021 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 PC_JSEP_TRANSPORT_COLLECTION_H_ #define PC_JSEP_TRANSPORT_COLLECTION_H_ #include <functional> #include <map> #include <memory> #include <string> #include <utility> #include <vector> #include "api/jsep.h" #include "api/peer_connection_interface.h" #include "api/sequence_checker.h" #include "pc/jsep_transport.h" #include "pc/session_description.h" #include "rtc_base/checks.h" #include "rtc_base/system/no_unique_address.h" #include "rtc_base/thread_annotations.h" namespace webrtc { // This class manages information about RFC 8843 BUNDLE bundles // in SDP descriptions. // This is a work-in-progress. Planned steps: // 1) Move all Bundle-related data structures from JsepTransport // into this class. // 2) Move all Bundle-related functions into this class. // 3) Move remaining Bundle-related logic into this class. // Make data members private. // 4) Refine interface to have comprehensible semantics. // 5) Add unit tests. // 6) Change the logic to do what's right. class BundleManager { … }; // This class keeps the mapping of MIDs to transports. // It is pulled out here because a lot of the code that deals with // bundles end up modifying this map, and the two need to be consistent; // the managers may merge. class JsepTransportCollection { … }; } // namespace webrtc #endif // PC_JSEP_TRANSPORT_COLLECTION_H_