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

📄 rrvip.hxx

📁 这是国外的resip协议栈
💻 HXX
字号:
#ifndef RESIP_RRVIP_HXX#define RESIP_RRVIP_HXX#include "rutil/dns/DnsStub.hxx"namespace resip{class RRVip : public DnsStub::ResultTransform{   public:      RRVip();      ~RRVip();      void vip(const Data& target, int rrType, const Data& vip);      void removeVip(const Data& target, int rrType);      void transform(const Data& target, int rrType, std::vector<DnsResourceRecord*>&);   private:      RRVip(const RRVip&);      RRVip& operator=(const RRVip&);      typedef std::vector<DnsResourceRecord*> RRVector;      class Transform      {         public:            Transform(const Data& vip);            virtual ~Transform();            virtual void transform(RRVector& rrs, bool& invalidVip);            void updateVip(const Data& vip);            const Data& vip() { return mVip; };         protected:            Data mVip; // ip for a/aaaa, target host for srv, and replacement for naptr.      };      class NaptrTransform : public Transform      {         public:            NaptrTransform(const Data& vip);            void transform(RRVector& rrs, bool&);      };      class SrvTransform : public Transform      {         public:            SrvTransform(const Data& vip);            void transform(RRVector& rrs, bool&);      };      class MapKey      {         public:            MapKey();            MapKey(const Data& target, int rrType);            bool operator<(const MapKey&) const;         private:            Data mTarget;            int mRRType;      };      class TransformFactory      {         public:            virtual ~TransformFactory() {}            virtual Transform* createTransform(const Data& vip) = 0;      };      class HostTransformFactory : public TransformFactory      {         public:            Transform* createTransform(const Data& vip) { return new Transform(vip); }      };      class NaptrTransformFactroy : public TransformFactory      {         public:            Transform* createTransform(const Data& vip) { return new NaptrTransform(vip); }      };      class SrvTransformFactory : public TransformFactory      {         public:            Transform* createTransform(const Data& vip) { return new SrvTransform(vip); }      };      typedef std::map<int, TransformFactory*> TransformFactoryMap;      TransformFactoryMap  mFactories;      typedef std::map<MapKey, Transform*> TransformMap;      TransformMap mTransforms;  };}#endif

⌨️ 快捷键说明

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