tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

RsdparsaSdp.h (2188B)


      1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
      2 /* vim: set ts=2 et sw=2 tw=80: */
      3 /* This Source Code Form is subject to the terms of the Mozilla Public
      4 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
      5 * You can obtain one at http://mozilla.org/MPL/2.0/. */
      6 
      7 #ifndef _RSDPARSA_SDP_H_
      8 #define _RSDPARSA_SDP_H_
      9 
     10 #include "mozilla/UniquePtr.h"
     11 #include "sdp/RsdparsaSdpAttributeList.h"
     12 #include "sdp/RsdparsaSdpGlue.h"
     13 #include "sdp/RsdparsaSdpInc.h"
     14 #include "sdp/RsdparsaSdpMediaSection.h"
     15 #include "sdp/Sdp.h"
     16 
     17 namespace mozilla {
     18 
     19 class RsdparsaSdpParser;
     20 class SdpParser;
     21 
     22 class RsdparsaSdp final : public Sdp {
     23  friend class RsdparsaSdpParser;
     24 
     25 public:
     26  explicit RsdparsaSdp(RsdparsaSessionHandle session, const SdpOrigin& origin);
     27 
     28  Sdp* Clone() const override;
     29 
     30  const SdpOrigin& GetOrigin() const override;
     31 
     32  // Note: connection information is always retrieved from media sections
     33  uint32_t GetBandwidth(const std::string& type) const override;
     34 
     35  size_t GetMediaSectionCount() const override {
     36    return sdp_media_section_count(mSession.get());
     37  }
     38 
     39  const SdpAttributeList& GetAttributeList() const override {
     40    return *mAttributeList;
     41  }
     42 
     43  SdpAttributeList& GetAttributeList() override { return *mAttributeList; }
     44 
     45  const SdpMediaSection& GetMediaSection(size_t level) const override;
     46 
     47  SdpMediaSection& GetMediaSection(size_t level) override;
     48 
     49  SdpMediaSection& AddMediaSection(SdpMediaSection::MediaType media,
     50                                   SdpDirectionAttribute::Direction dir,
     51                                   uint16_t port,
     52                                   SdpMediaSection::Protocol proto,
     53                                   sdp::AddrType addrType,
     54                                   const std::string& addr) override;
     55 
     56  void Serialize(std::ostream&) const override;
     57 
     58 private:
     59  RsdparsaSdp() : mOrigin("", 0, 0, sdp::kIPv4, "") {}
     60  RsdparsaSdp(const RsdparsaSdp& aOrig);
     61 
     62  RsdparsaSessionHandle mSession;
     63  SdpOrigin mOrigin;
     64  UniquePtr<RsdparsaSdpAttributeList> mAttributeList;
     65  std::vector<UniquePtr<RsdparsaSdpMediaSection>> mMediaSections;
     66 };
     67 
     68 }  // namespace mozilla
     69 
     70 #endif