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

📄 compat_h323.h

📁 asterisk 是一个很有知名度开源软件
💻 H
字号:
#ifndef COMPAT_H323_H#define COMPAT_H323_H#if VERSION(OPENH323_MAJOR,OPENH323_MINOR,OPENH323_BUILD) < VERSION(1,17,3)/** *  Workaround for broken (less than 1.17.3) OpenH323 stack to be able to *  make TCP connections from specific address */class MyH323TransportTCP : public H323TransportTCP{	PCLASSINFO(MyH323TransportTCP, H323TransportTCP);public:	MyH323TransportTCP(		H323EndPoint & endpoint,    ///<  H323 End Point object		PIPSocket::Address binding = PIPSocket::GetDefaultIpAny(), ///<  Local interface to use		BOOL listen = FALSE         ///<  Flag for need to wait for remote to connect	);	/**Connect to the remote party.	 */	virtual BOOL Connect();};#else#define MyH323TransportTCP H323TransportTCP#endif /* <VERSION(1,17,3) */class MyH323TransportUDP: public H323TransportUDP{	PCLASSINFO(MyH323TransportUDP, H323TransportUDP);public:	MyH323TransportUDP(H323EndPoint &endpoint,		PIPSocket::Address binding = PIPSocket::GetDefaultIpAny(),		WORD localPort = 0,		WORD remotePort = 0): H323TransportUDP(endpoint, binding, localPort, remotePort)	{	}	virtual BOOL DiscoverGatekeeper(H323Gatekeeper &,		H323RasPDU &,		const H323TransportAddress &);protected:	PDECLARE_NOTIFIER(PThread, MyH323TransportUDP, DiscoverMain);	H323Gatekeeper *discoverGatekeeper;	H323RasPDU *discoverPDU;	const H323TransportAddress *discoverAddress;	BOOL discoverResult;	BOOL discoverReady;	PMutex discoverMutex;};template <class _Abstract_T, typename _Key_T = PString>class MyPFactory: public PFactory<_Abstract_T, _Key_T>{public:	template <class _Concrete_T> class Worker: public PFactory<_Abstract_T, _Key_T>::WorkerBase	{	public:		Worker(const _Key_T &_key, bool singleton = false)			:PFactory<_Abstract_T, _Key_T>::WorkerBase(singleton), key(_key)		{			PFactory<_Abstract_T, _Key_T>::Register(key, this);		}		~Worker()		{			PFactory<_Abstract_T, _Key_T>::Unregister(key);		}	protected:		virtual _Abstract_T *Create(const _Key_T &) const { return new _Concrete_T; }	private:		PString key;    };};#ifdef H323_REGISTER_CAPABILITY#undef H323_REGISTER_CAPABILITY#endif#define H323_REGISTER_CAPABILITY(cls, capName) static MyPFactory<H323Capability>::Worker<cls> cls##Factory(capName, true)#ifdef OPAL_MEDIA_FORMAT_DECLARE#undef OPAL_MEDIA_FORMAT_DECLARE#endif#define OPAL_MEDIA_FORMAT_DECLARE(classname, _fullName, _defaultSessionID, _rtpPayloadType, _needsJitter,_bandwidth, _frameSize, _frameTime, _timeUnits, _timeStamp) \class classname : public OpalMediaFormat \{ \  public: \    classname() \      : OpalMediaFormat(_fullName, _defaultSessionID, _rtpPayloadType, _needsJitter, _bandwidth, \        _frameSize, _frameTime, _timeUnits, _timeStamp){} \}; \static MyPFactory<OpalMediaFormat>::Worker<classname> classname##Factory(_fullName, true)#endif /* !defined AST_H323_H */

⌨️ 快捷键说明

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