⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sdpcontents.hxx

📁 这是国外的resip协议栈
💻 HXX
📖 第 1 页 / 共 2 页
字号:
                  class Adjustment                  {                     public:                        Adjustment(unsigned long time,                                   int offset);                        Adjustment(const Adjustment& rhs);                        Adjustment& operator=(const Adjustment& rhs);                        unsigned long time;                        int offset;                  };                  Timezones();                  Timezones(const Timezones& rhs);                  Timezones& operator=(const Timezones& rhs);                  void parse(ParseBuffer& pb);                  std::ostream& encode(std::ostream&) const;                  void addAdjustment(const Adjustment& adjusment);                  const std::list<Adjustment>& getAdjustments() const {return mAdjustments; }               private:                  std::list<Adjustment> mAdjustments;            };            class Encryption            {               public:                  typedef enum {NoEncryption = 0, Prompt, Clear, Base64, UriKey} KeyType;                  Encryption(const KeyType& method,                             const Data& key);                  Encryption(const Encryption& rhs);                  Encryption& operator=(const Encryption& rhs);                  void parse(ParseBuffer& pb);                  std::ostream& encode(std::ostream&) const;                  const KeyType& getMethod() const {return mMethod;}                  const KeyType& method() const {return mMethod;}                  KeyType& method() {return mMethod;}                  const Data& getKey() const {return mKey;}                  const Data& key() const {return mKey;}                  Data& key() {return mKey;}                  Encryption();               private:                  KeyType mMethod;                  Data mKey;            };            class Medium            {               public:                  Medium();                  Medium(const Medium& rhs);                  Medium(const Data& name,                         unsigned long port,                         unsigned long multicast,                         const Data& protocol);                  Medium& operator=(const Medium& rhs);                  void parse(ParseBuffer& pb);                  std::ostream& encode(std::ostream&) const;                  void addFormat(const Data& format);                  void setConnection(const Connection& connection);                  void addConnection(const Connection& connection);                  void setBandwidth(const Bandwidth& bandwidth);                  void addBandwidth(const Bandwidth& bandwidth);                  void addAttribute(const Data& key, const Data& value = Data::Empty);                  const Data& name() const {return mName;}                  Data& name() {return mName;}                  int port() const {return mPort;}                  unsigned long& port() {return mPort;}                 void setPort(int port);                  int multicast() const {return mMulticast;}                  unsigned long& multicast() {return mMulticast;}                  const Data& protocol() const {return mProtocol;}                  Data& protocol() {return mProtocol;}                  // preferred codec/format interface                  const std::list<Codec>& codecs() const;                  std::list<Codec>& codecs();                  void clearCodecs();                  void addCodec(const Codec& codec);                  const std::list<Data>& getFormats() const {return mFormats;}                  const Data& information() const {return mInformation;}                  Data& information() {return mInformation;}                  const std::list<Bandwidth>& bandwidths() const {return mBandwidths;}                  std::list<Bandwidth>& bandwidths() {return mBandwidths;}                  // from session if empty                  const std::list<Connection> getConnections() const;                  // does not include session connections                  const std::list<Connection>& getMediumConnections() const {return mConnections;}                  std::list<Connection>& getMediumConnections() {return mConnections;}                  const Encryption& getEncryption() const {return mEncryption;}                  const Encryption& encryption() const {return mEncryption;}                  Encryption& encryption() {return mEncryption;}                  bool exists(const Data& key) const;                  const std::list<Data>& getValues(const Data& key) const;                  void clearAttribute(const Data& key);                  const Codec& findFirstMatchingCodecs(const std::list<Codec>& codecList, Codec* pMatchingCodec = 0) const;                  const Codec& findFirstMatchingCodecs(const Medium& medium, Codec* pMatchingCodec = 0) const;                  int findTelephoneEventPayloadType() const;               private:                  void setSession(Session* session);                  Session* mSession;                  Data mName;                  unsigned long mPort;                  unsigned long mMulticast;                  Data mProtocol;                  mutable std::list<Data> mFormats;                  mutable std::list<Codec> mCodecs;                  Data mTransport;                  Data mInformation;                  std::list<Connection> mConnections;                  std::list<Bandwidth> mBandwidths;                  Encryption mEncryption;                  mutable AttributeHelper mAttributeHelper;                  mutable bool mRtpMapDone;                  typedef HashMap<int, Codec> RtpMap;                  mutable RtpMap mRtpMap;                  friend class Session;            };            Session(int version,                    const Origin& origin,                    const Data& name);            Session() : mVersion(0) {}            Session(const Session& rhs);            Session& operator=(const Session& rhs);            void parse(ParseBuffer& pb);            std::ostream& encode(std::ostream&) const;            int version() const {return mVersion;}            int& version() {return mVersion;}            const Origin& origin() const {return mOrigin;}            Origin& origin() {return mOrigin;}            const Data& name() const {return mName;}            Data& name() {return mName;}            const Data& information() const {return mInformation;}            Data& information() {return mInformation;}            const Uri& uri() const {return mUri;}            Uri& uri() {return mUri;}            const std::list<Email>& getEmails() const {return mEmails;}            const std::list<Phone>& getPhones() const {return mPhones;}            const Connection& connection() const {return mConnection;}            Connection& connection() {return mConnection;} // !dlb! optional?            bool isConnection() const { return mConnection.mAddress != Data::Empty; }            const std::list<Bandwidth>& bandwidths() const {return mBandwidths;}            std::list<Bandwidth>& bandwidths() {return mBandwidths;}            const std::list<Time>& getTimes() const {return mTimes;}            std::list<Time>& getTimes() {return mTimes;}            const Timezones& getTimezones() const {return mTimezones;}            const Encryption& getEncryption() const {return mEncryption;}            const Encryption& encryption() const {return mEncryption;}            Encryption& encryption() {return mEncryption;}            const std::list<Medium>& media() const {return mMedia;}            std::list<Medium>& media() {return mMedia;}            void addEmail(const Email& email);            void addPhone(const Phone& phone);            void addBandwidth(const Bandwidth& bandwidth);            void addTime(const Time& t);            void addMedium(const Medium& medium);            void clearMedium() {  mMedia.clear(); }            void clearAttribute(const Data& key);            void addAttribute(const Data& key, const Data& value = Data::Empty);            bool exists(const Data& key) const;            const std::list<Data>& getValues(const Data& key) const;         private:            int mVersion;            Origin mOrigin;            Data mName;            std::list<Medium> mMedia;            // applies to all Media where unspecified            Data mInformation;            Uri mUri;            std::list<Email> mEmails;            std::list<Phone> mPhones;            Connection mConnection;            std::list<Bandwidth> mBandwidths;            std::list<Time> mTimes;            Timezones mTimezones;            Encryption mEncryption;            AttributeHelper mAttributeHelper;            friend class SdpContents;      };      SdpContents();      SdpContents(HeaderFieldValue* hfv, const Mime& contentTypes);      ~SdpContents();      // !nash! there is no need for overriding copy ctor as every members gets copied      //SdpContents(const SdpContents& rhs);      SdpContents& operator=(const SdpContents& rhs);      virtual Contents* clone() const;      virtual Data getBodyData() const;      Session& session() {checkParsed(); return mSession;}      const Session& session() const {checkParsed(); return mSession;}      virtual std::ostream& encodeParsed(std::ostream& str) const;      virtual void parse(ParseBuffer& pb);      static const Mime& getStaticType() ;      static bool init();   private:      SdpContents(const Data& data, const Mime& contentTypes);      Session mSession;};static bool invokeSdpContentsInit = SdpContents::init();typedef SdpContents::Session::Codec Codec;bool operator==(const SdpContents::Session::Codec& lhs,                const SdpContents::Session::Codec& rhs);std::ostream& operator<<(std::ostream& str, const SdpContents::Session::Codec& codec);}#endif/* ==================================================================== * The Vovida Software License, Version 1.0 * * Copyright (c) 2000 Vovida Networks, Inc.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *    notice, this std::vector of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright *    notice, this std::vector of conditions and the following disclaimer in *    the documentation and/or other materials provided with the *    distribution. * * 3. The names "VOCAL", "Vovida Open Communication Application Library", *    and "Vovida Open Communication Application Library (VOCAL)" must *    not be used to endorse or promote products derived from this *    software without prior written permission. For written *    permission, please contact vocal@vovida.org. * * 4. Products derived from this software may not be called "VOCAL", nor *    may "VOCAL" appear in their name, without prior written *    permission of Vovida Networks, Inc. * * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL VOVIDA * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES * IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. * * ==================================================================== * * This software consists of voluntary contributions made by Vovida * Networks, Inc. and many individuals on behalf of Vovida Networks, * Inc.  For more information on Vovida Networks, Inc., please see * <http://www.vovida.org/>. * */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -