LCOV - code coverage report
Current view: top level - media/webrtc/signaling/src/sdp - SipccSdpAttributeList.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 2 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 1 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       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 _SIPCCSDPATTRIBUTELIST_H_
       8             : #define _SIPCCSDPATTRIBUTELIST_H_
       9             : 
      10             : #include "signaling/src/sdp/SdpAttributeList.h"
      11             : 
      12             : extern "C" {
      13             : #include "signaling/src/sdp/sipcc/sdp.h"
      14             : }
      15             : 
      16             : namespace mozilla
      17             : {
      18             : 
      19             : class SipccSdp;
      20             : class SipccSdpMediaSection;
      21             : class SdpErrorHolder;
      22             : 
      23             : class SipccSdpAttributeList : public SdpAttributeList
      24             : {
      25             :   friend class SipccSdpMediaSection;
      26             :   friend class SipccSdp;
      27             : 
      28             : public:
      29             :   // Make sure we don't hide the default arg thunks
      30             :   using SdpAttributeList::HasAttribute;
      31             :   using SdpAttributeList::GetAttribute;
      32             : 
      33             :   virtual bool HasAttribute(AttributeType type,
      34             :                             bool sessionFallback) const override;
      35             :   virtual const SdpAttribute* GetAttribute(
      36             :       AttributeType type, bool sessionFallback) const override;
      37             :   virtual void SetAttribute(SdpAttribute* attr) override;
      38             :   virtual void RemoveAttribute(AttributeType type) override;
      39             :   virtual void Clear() override;
      40             : 
      41             :   virtual const SdpConnectionAttribute& GetConnection() const override;
      42             :   virtual const SdpFingerprintAttributeList& GetFingerprint() const
      43             :       override;
      44             :   virtual const SdpGroupAttributeList& GetGroup() const override;
      45             :   virtual const SdpOptionsAttribute& GetIceOptions() const override;
      46             :   virtual const SdpRtcpAttribute& GetRtcp() const override;
      47             :   virtual const SdpRemoteCandidatesAttribute& GetRemoteCandidates() const
      48             :       override;
      49             :   virtual const SdpSetupAttribute& GetSetup() const override;
      50             :   virtual const SdpSsrcAttributeList& GetSsrc() const override;
      51             :   virtual const SdpSsrcGroupAttributeList& GetSsrcGroup() const override;
      52             :   virtual const SdpDtlsMessageAttribute& GetDtlsMessage() const override;
      53             : 
      54             :   // These attributes can appear multiple times, so the returned
      55             :   // classes actually represent a collection of values.
      56             :   virtual const std::vector<std::string>& GetCandidate() const override;
      57             :   virtual const SdpExtmapAttributeList& GetExtmap() const override;
      58             :   virtual const SdpFmtpAttributeList& GetFmtp() const override;
      59             :   virtual const SdpImageattrAttributeList& GetImageattr() const override;
      60             :   const SdpSimulcastAttribute& GetSimulcast() const override;
      61             :   virtual const SdpMsidAttributeList& GetMsid() const override;
      62             :   virtual const SdpMsidSemanticAttributeList& GetMsidSemantic()
      63             :     const override;
      64             :   const SdpRidAttributeList& GetRid() const override;
      65             :   virtual const SdpRtcpFbAttributeList& GetRtcpFb() const override;
      66             :   virtual const SdpRtpmapAttributeList& GetRtpmap() const override;
      67             :   virtual const SdpSctpmapAttributeList& GetSctpmap() const override;
      68             :   virtual uint32_t GetSctpPort() const override;
      69             :   virtual uint32_t GetMaxMessageSize() const override;
      70             : 
      71             :   // These attributes are effectively simple types, so we'll make life
      72             :   // easy by just returning their value.
      73             :   virtual const std::string& GetIcePwd() const override;
      74             :   virtual const std::string& GetIceUfrag() const override;
      75             :   virtual const std::string& GetIdentity() const override;
      76             :   virtual const std::string& GetLabel() const override;
      77             :   virtual unsigned int GetMaxptime() const override;
      78             :   virtual const std::string& GetMid() const override;
      79             :   virtual unsigned int GetPtime() const override;
      80             : 
      81             :   virtual SdpDirectionAttribute::Direction GetDirection() const override;
      82             : 
      83             :   virtual void Serialize(std::ostream&) const override;
      84             : 
      85             :   virtual ~SipccSdpAttributeList();
      86             : 
      87             : private:
      88             :   static const std::string kEmptyString;
      89             :   static const size_t kNumAttributeTypes = SdpAttribute::kLastAttribute + 1;
      90             : 
      91             :   // Pass a session-level attribute list if constructing a media-level one,
      92             :   // otherwise pass nullptr
      93             :   explicit SipccSdpAttributeList(const SipccSdpAttributeList* sessionLevel);
      94             : 
      95             :   bool Load(sdp_t* sdp, uint16_t level, SdpErrorHolder& errorHolder);
      96             :   void LoadSimpleStrings(sdp_t* sdp, uint16_t level,
      97             :                          SdpErrorHolder& errorHolder);
      98             :   void LoadSimpleString(sdp_t* sdp, uint16_t level, sdp_attr_e attr,
      99             :                         AttributeType targetType, SdpErrorHolder& errorHolder);
     100             :   void LoadSimpleNumbers(sdp_t* sdp, uint16_t level,
     101             :                          SdpErrorHolder& errorHolder);
     102             :   void LoadSimpleNumber(sdp_t* sdp, uint16_t level, sdp_attr_e attr,
     103             :                         AttributeType targetType, SdpErrorHolder& errorHolder);
     104             :   void LoadFlags(sdp_t* sdp, uint16_t level);
     105             :   void LoadDirection(sdp_t* sdp, uint16_t level, SdpErrorHolder& errorHolder);
     106             :   bool LoadRtpmap(sdp_t* sdp, uint16_t level, SdpErrorHolder& errorHolder);
     107             :   bool LoadSctpmap(sdp_t* sdp, uint16_t level, SdpErrorHolder& errorHolder);
     108             :   void LoadIceAttributes(sdp_t* sdp, uint16_t level);
     109             :   bool LoadFingerprint(sdp_t* sdp, uint16_t level, SdpErrorHolder& errorHolder);
     110             :   void LoadCandidate(sdp_t* sdp, uint16_t level);
     111             :   void LoadSetup(sdp_t* sdp, uint16_t level);
     112             :   void LoadSsrc(sdp_t* sdp, uint16_t level);
     113             :   bool LoadImageattr(sdp_t* sdp, uint16_t level, SdpErrorHolder& errorHolder);
     114             :   bool LoadSimulcast(sdp_t* sdp, uint16_t level, SdpErrorHolder& errorHolder);
     115             :   bool LoadGroups(sdp_t* sdp, uint16_t level, SdpErrorHolder& errorHolder);
     116             :   bool LoadMsidSemantics(sdp_t* sdp,
     117             :                          uint16_t level,
     118             :                          SdpErrorHolder& errorHolder);
     119             :   void LoadIdentity(sdp_t* sdp, uint16_t level);
     120             :   void LoadDtlsMessage(sdp_t* sdp, uint16_t level);
     121             :   void LoadFmtp(sdp_t* sdp, uint16_t level);
     122             :   void LoadMsids(sdp_t* sdp, uint16_t level, SdpErrorHolder& errorHolder);
     123             :   bool LoadRid(sdp_t* sdp, uint16_t level, SdpErrorHolder& errorHolder);
     124             :   void LoadExtmap(sdp_t* sdp, uint16_t level, SdpErrorHolder& errorHolder);
     125             :   void LoadRtcpFb(sdp_t* sdp, uint16_t level, SdpErrorHolder& errorHolder);
     126             :   void LoadRtcp(sdp_t* sdp, uint16_t level, SdpErrorHolder& errorHolder);
     127             :   static SdpRtpmapAttributeList::CodecType GetCodecType(rtp_ptype type);
     128             : 
     129             :   bool
     130           0 :   AtSessionLevel() const
     131             :   {
     132           0 :     return !mSessionLevel;
     133             :   }
     134             :   bool IsAllowedHere(SdpAttribute::AttributeType type) const;
     135             :   void WarnAboutMisplacedAttribute(SdpAttribute::AttributeType type,
     136             :                                    uint32_t lineNumber,
     137             :                                    SdpErrorHolder& errorHolder);
     138             : 
     139             :   const SipccSdpAttributeList* mSessionLevel;
     140             : 
     141             :   SdpAttribute* mAttributes[kNumAttributeTypes];
     142             : 
     143             :   SipccSdpAttributeList(const SipccSdpAttributeList& orig) = delete;
     144             :   SipccSdpAttributeList& operator=(const SipccSdpAttributeList& rhs) = delete;
     145             : };
     146             : 
     147             : } // namespace mozilla
     148             : 
     149             : #endif

Generated by: LCOV version 1.13