Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/net/ethernet/asix/   (Linux Kernel Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 156 B image not shown  

Quelle  SipccSdpAttributeList.h

  Sprache: C
 

/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */


#ifndef DOM_MEDIA_WEBRTC_SDP_SIPCCSDPATTRIBUTELIST_H_
#define DOM_MEDIA_WEBRTC_SDP_SIPCCSDPATTRIBUTELIST_H_

#include "mozilla/UniquePtr.h"
#include "sdp/SdpAttributeList.h"
#include "sdp/SdpParser.h"

extern "C" {
#include "sipcc_sdp.h"
}

namespace mozilla {

class SipccSdp;
class SipccSdpMediaSection;

class SipccSdpAttributeList : public SdpAttributeList {
  friend class SipccSdpMediaSection;
  friend class SipccSdp;

 public:
  // Make sure we don't hide the default arg thunks
  using SdpAttributeList::GetAttribute;
  using SdpAttributeList::HasAttribute;

  virtual bool HasAttribute(const AttributeType type,
                            const bool sessionFallback) const override;
  virtual const SdpAttribute* GetAttribute(
      const AttributeType type, const bool sessionFallback) const override;
  virtual void SetAttribute(UniquePtr<SdpAttribute>&& attr) override;
  virtual void RemoveAttribute(const AttributeType type) override;
  virtual void Clear() override;
  virtual uint32_t Count() const override;

  virtual const SdpConnectionAttribute& GetConnection() const override;
  virtual const SdpFingerprintAttributeList& GetFingerprint() const override;
  virtual const SdpGroupAttributeList& GetGroup() const override;
  virtual const SdpOptionsAttribute& GetIceOptions() const override;
  virtual const SdpRtcpAttribute& GetRtcp() const override;
  virtual const SdpRemoteCandidatesAttribute& GetRemoteCandidates()
      const override;
  virtual const SdpSetupAttribute& GetSetup() const override;
  virtual const SdpSsrcAttributeList& GetSsrc() const override;
  virtual const SdpSsrcGroupAttributeList& GetSsrcGroup() const override;
  virtual const SdpDtlsMessageAttribute& GetDtlsMessage() const override;

  // These attributes can appear multiple times, so the returned
  // classes actually represent a collection of values.
  virtual const std::vector<std::string>& GetCandidate() const override;
  virtual const SdpExtmapAttributeList& GetExtmap() const override;
  virtual const SdpFmtpAttributeList& GetFmtp() const override;
  virtual const SdpImageattrAttributeList& GetImageattr() const override;
  const SdpSimulcastAttribute& GetSimulcast() const override;
  virtual const SdpMsidAttributeList& GetMsid() const override;
  virtual const SdpMsidSemanticAttributeList& GetMsidSemantic() const override;
  const SdpRidAttributeList& GetRid() const override;
  virtual const SdpRtcpFbAttributeList& GetRtcpFb() const override;
  virtual const SdpRtpmapAttributeList& GetRtpmap() const override;
  virtual const SdpSctpmapAttributeList& GetSctpmap() const override;
  virtual uint32_t GetSctpPort() const override;
  virtual uint32_t GetMaxMessageSize() const override;

  // These attributes are effectively simple types, so we'll make life
  // easy by just returning their value.
  virtual const std::string& GetIcePwd() const override;
  virtual const std::string& GetIceUfrag() const override;
  virtual const std::string& GetIdentity() const override;
  virtual const std::string& GetLabel() const override;
  virtual unsigned int GetMaxptime() const override;
  virtual const std::string& GetMid() const override;
  virtual unsigned int GetPtime() const override;

  virtual SdpDirectionAttribute::Direction GetDirection() const override;

  virtual void Serialize(std::ostream&) const override;

  virtual ~SipccSdpAttributeList() = default;

  SipccSdpAttributeList(const SipccSdpAttributeList& orig) = delete;
  SipccSdpAttributeList& operator=(const SipccSdpAttributeList& rhs) = delete;

 private:
  static const std::string kEmptyString;
  static const size_t kNumAttributeTypes = SdpAttribute::kLastAttribute + 1;

  // Pass a session-level attribute list if constructing a media-level one,
  // otherwise pass nullptr
  explicit SipccSdpAttributeList(const SipccSdpAttributeList* sessionLevel);

  // Copy c'tor, sort of
  SipccSdpAttributeList(const SipccSdpAttributeList& aOrig,
                        const SipccSdpAttributeList* sessionLevel);

  using InternalResults = SdpParser::InternalResults;

  bool Load(sdp_t* sdp, const uint16_t level, InternalResults& results);
  void LoadSimpleStrings(sdp_t* sdp, const uint16_t level,
                         InternalResults& results);
  void LoadSimpleString(sdp_t* sdp, const uint16_t level, const sdp_attr_e attr,
                        const AttributeType targetType,
                        InternalResults& results);
  void LoadSimpleNumbers(sdp_t* sdp, const uint16_t level,
                         InternalResults& results);
  void LoadSimpleNumber(sdp_t* sdp, const uint16_t level, const sdp_attr_e attr,
                        const AttributeType targetType,
                        InternalResults& results);
  void LoadFlags(sdp_t* sdp, const uint16_t level);
  void LoadDirection(sdp_t* sdp, const uint16_t level,
                     InternalResults& results);
  bool LoadRtpmap(sdp_t* sdp, const uint16_t level, InternalResults& results);
  bool LoadSctpmap(sdp_t* sdp, const uint16_t level, InternalResults& results);
  void LoadIceAttributes(sdp_t* sdp, const uint16_t level);
  bool LoadFingerprint(sdp_t* sdp, const uint16_t level,
                       InternalResults& results);
  void LoadCandidate(sdp_t* sdp, const uint16_t level);
  void LoadSetup(sdp_t* sdp, const uint16_t level);
  void LoadSsrc(sdp_t* sdp, const uint16_t level);
  void LoadSsrcGroup(sdp_t* sdp, const uint16_t level);
  bool LoadImageattr(sdp_t* sdp, const uint16_t level,
                     InternalResults& results);
  bool LoadSimulcast(sdp_t* sdp, const uint16_t level,
                     InternalResults& results);
  bool LoadGroups(sdp_t* sdp, const uint16_t level, InternalResults& results);
  bool LoadMsidSemantics(sdp_t* sdp, const uint16_t level,
                         InternalResults& results);
  void LoadIdentity(sdp_t* sdp, const uint16_t level);
  void LoadDtlsMessage(sdp_t* sdp, const uint16_t level);
  void LoadFmtp(sdp_t* sdp, const uint16_t level);
  void LoadMsids(sdp_t* sdp, const uint16_t level, InternalResults& results);
  bool LoadRid(sdp_t* sdp, const uint16_t level, InternalResults& results);
  void LoadExtmap(sdp_t* sdp, const uint16_t level, InternalResults& results);
  void LoadRtcpFb(sdp_t* sdp, const uint16_t level, InternalResults& results);
  void LoadRtcp(sdp_t* sdp, const uint16_t level, InternalResults& results);
  static SdpRtpmapAttributeList::CodecType GetCodecType(const rtp_ptype type);

  bool AtSessionLevel() const { return !mSessionLevel; }
  bool IsAllowedHere(const SdpAttribute::AttributeType type) const;
  void WarnAboutMisplacedAttribute(const SdpAttribute::AttributeType type,
                                   const uint32_t lineNumber,
                                   InternalResults& results);

  const SipccSdpAttributeList* mSessionLevel;

  mozilla::UniquePtr<SdpAttribute> mAttributes[kNumAttributeTypes];
};

}  // namespace mozilla

#endif

Messung V0.5 in Prozent
C=97 H=98 G=97

¤ Dauer der Verarbeitung: 0.16 Sekunden  (vorverarbeitet am  2026-08-26) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.