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

📄 sigslot.h

📁 本人收集整理的一份c/c++跨平台网络库
💻 H
📖 第 1 页 / 共 5 页
字号:
				arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>((dest_type *)pnewdest, m_pmemfun);		}		virtual void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4,			arg5_type a5, arg6_type a6, arg7_type a7, arg8_type a8)		{			(m_pobject->*m_pmemfun)(a1, a2, a3, a4, a5, a6, a7, a8);		}		virtual has_slots<mt_policy>* getdest() const		{			return m_pobject;		}	private:		dest_type* m_pobject;		void (dest_type::* m_pmemfun)(arg1_type, arg2_type, arg3_type, arg4_type,			arg5_type, arg6_type, arg7_type, arg8_type);	};	template<class mt_policy = SIGSLOT_DEFAULT_MT_POLICY>	class signal0 : public _signal_base0<mt_policy>	{	public:		typedef _signal_base0<mt_policy> base;		typedef typename base::connections_list connections_list;		using base::m_connected_slots;		signal0()		{			;		}		signal0(const signal0<mt_policy>& s)			: _signal_base0<mt_policy>(s)		{			;		}		template<class desttype>			void connect(desttype* pclass, void (desttype::*pmemfun)())		{			lock_block<mt_policy> lock(this);			_connection0<desttype, mt_policy>* conn = 				new _connection0<desttype, mt_policy>(pclass, pmemfun);			m_connected_slots.push_back(conn);			pclass->signal_connect(this);		}		void emit()		{			lock_block<mt_policy> lock(this);			typename connections_list::const_iterator itNext, it = m_connected_slots.begin();			typename connections_list::const_iterator itEnd = m_connected_slots.end();			while(it != itEnd)			{				itNext = it;				++itNext;				(*it)->emit();				it = itNext;			}		}		void operator()()		{			lock_block<mt_policy> lock(this);			typename connections_list::const_iterator itNext, it = m_connected_slots.begin();			typename connections_list::const_iterator itEnd = m_connected_slots.end();			while(it != itEnd)			{				itNext = it;				++itNext;				(*it)->emit();				it = itNext;			}		}	};	template<class arg1_type, class mt_policy = SIGSLOT_DEFAULT_MT_POLICY>	class signal1 : public _signal_base1<arg1_type, mt_policy>	{	public:		typedef _signal_base1<arg1_type, mt_policy> base;		typedef typename base::connections_list connections_list;		using base::m_connected_slots;		signal1()		{			;		}		signal1(const signal1<arg1_type, mt_policy>& s)			: _signal_base1<arg1_type, mt_policy>(s)		{			;		}		template<class desttype>			void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type))		{			lock_block<mt_policy> lock(this);			_connection1<desttype, arg1_type, mt_policy>* conn = 				new _connection1<desttype, arg1_type, mt_policy>(pclass, pmemfun);			m_connected_slots.push_back(conn);			pclass->signal_connect(this);		}		void emit(arg1_type a1)		{			lock_block<mt_policy> lock(this);			typename connections_list::const_iterator itNext, it = m_connected_slots.begin();			typename connections_list::const_iterator itEnd = m_connected_slots.end();			while(it != itEnd)			{				itNext = it;				++itNext;				(*it)->emit(a1);				it = itNext;			}		}		void operator()(arg1_type a1)		{			lock_block<mt_policy> lock(this);			typename connections_list::const_iterator itNext, it = m_connected_slots.begin();			typename connections_list::const_iterator itEnd = m_connected_slots.end();			while(it != itEnd)			{				itNext = it;				++itNext;				(*it)->emit(a1);				it = itNext;			}		}	};	template<class arg1_type, class arg2_type, class mt_policy = SIGSLOT_DEFAULT_MT_POLICY>	class signal2 : public _signal_base2<arg1_type, arg2_type, mt_policy>	{	public:		typedef _signal_base2<arg1_type, arg2_type, mt_policy> base;		typedef typename base::connections_list connections_list;		using base::m_connected_slots;		signal2()		{			;		}		signal2(const signal2<arg1_type, arg2_type, mt_policy>& s)			: _signal_base2<arg1_type, arg2_type, mt_policy>(s)		{			;		}		template<class desttype>			void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type,			arg2_type))		{			lock_block<mt_policy> lock(this);			_connection2<desttype, arg1_type, arg2_type, mt_policy>* conn = new				_connection2<desttype, arg1_type, arg2_type, mt_policy>(pclass, pmemfun);			m_connected_slots.push_back(conn);			pclass->signal_connect(this);		}		void emit(arg1_type a1, arg2_type a2)		{			lock_block<mt_policy> lock(this);			typename connections_list::const_iterator itNext, it = m_connected_slots.begin();			typename connections_list::const_iterator itEnd = m_connected_slots.end();			while(it != itEnd)			{				itNext = it;				++itNext;				(*it)->emit(a1, a2);				it = itNext;			}		}		void operator()(arg1_type a1, arg2_type a2)		{			lock_block<mt_policy> lock(this);			typename connections_list::const_iterator itNext, it = m_connected_slots.begin();			typename connections_list::const_iterator itEnd = m_connected_slots.end();			while(it != itEnd)			{				itNext = it;				++itNext;				(*it)->emit(a1, a2);				it = itNext;			}		}	};	template<class arg1_type, class arg2_type, class arg3_type, class mt_policy = SIGSLOT_DEFAULT_MT_POLICY>	class signal3 : public _signal_base3<arg1_type, arg2_type, arg3_type, mt_policy>	{	public:		typedef _signal_base3<arg1_type, arg2_type, arg3_type, mt_policy> base;		typedef typename base::connections_list connections_list;		using base::m_connected_slots;		signal3()		{			;		}		signal3(const signal3<arg1_type, arg2_type, arg3_type, mt_policy>& s)			: _signal_base3<arg1_type, arg2_type, arg3_type, mt_policy>(s)		{			;		}		template<class desttype>			void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type,			arg2_type, arg3_type))		{			lock_block<mt_policy> lock(this);			_connection3<desttype, arg1_type, arg2_type, arg3_type, mt_policy>* conn = 				new _connection3<desttype, arg1_type, arg2_type, arg3_type, mt_policy>(pclass,				pmemfun);			m_connected_slots.push_back(conn);			pclass->signal_connect(this);		}		void emit(arg1_type a1, arg2_type a2, arg3_type a3)		{			lock_block<mt_policy> lock(this);			typename connections_list::const_iterator itNext, it = m_connected_slots.begin();			typename connections_list::const_iterator itEnd = m_connected_slots.end();			while(it != itEnd)			{				itNext = it;				++itNext;				(*it)->emit(a1, a2, a3);				it = itNext;			}		}		void operator()(arg1_type a1, arg2_type a2, arg3_type a3)		{			lock_block<mt_policy> lock(this);			typename connections_list::const_iterator itNext, it = m_connected_slots.begin();			typename connections_list::const_iterator itEnd = m_connected_slots.end();			while(it != itEnd)			{				itNext = it;				++itNext;				(*it)->emit(a1, a2, a3);				it = itNext;			}		}	};	template<class arg1_type, class arg2_type, class arg3_type, class arg4_type, class mt_policy = SIGSLOT_DEFAULT_MT_POLICY>	class signal4 : public _signal_base4<arg1_type, arg2_type, arg3_type,		arg4_type, mt_policy>	{	public:		typedef _signal_base4<arg1_type, arg2_type, arg3_type, arg4_type, mt_policy> base;		typedef typename base::connections_list connections_list;		using base::m_connected_slots;		signal4()		{			;		}		signal4(const signal4<arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>& s)			: _signal_base4<arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>(s)		{			;		}		template<class desttype>			void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type,			arg2_type, arg3_type, arg4_type))		{			lock_block<mt_policy> lock(this);			_connection4<desttype, arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>*				conn = new _connection4<desttype, arg1_type, arg2_type, arg3_type,				arg4_type, mt_policy>(pclass, pmemfun);			m_connected_slots.push_back(conn);			pclass->signal_connect(this);		}		void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4)		{			lock_block<mt_policy> lock(this);			typename connections_list::const_iterator itNext, it = m_connected_slots.begin();			typename connections_list::const_iterator itEnd = m_connected_slots.end();			while(it != itEnd)			{				itNext = it;				++itNext;				(*it)->emit(a1, a2, a3, a4);				it = itNext;			}		}		void operator()(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4)		{			lock_block<mt_policy> lock(this);			typename connections_list::const_iterator itNext, it = m_connected_slots.begin();			typename connections_list::const_iterator itEnd = m_connected_slots.end();			while(it != itEnd)			{				itNext = it;				++itNext;				(*it)->emit(a1, a2, a3, a4);				it = itNext;			}		}	};	template<class arg1_type, class arg2_type, class arg3_type, class arg4_type,	class arg5_type, class mt_policy = SIGSLOT_DEFAULT_MT_POLICY>	class signal5 : public _signal_base5<arg1_type, arg2_type, arg3_type,		arg4_type, arg5_type, mt_policy>	{	public:		typedef _signal_base5<arg1_type, arg2_type, arg3_type, arg4_type, arg5_type, mt_policy> base;		typedef typename base::connections_list connections_list;		using base::m_connected_slots;		signal5()		{			;		}		signal5(const signal5<arg1_type, arg2_type, arg3_type, arg4_type,			arg5_type, mt_policy>& s)			: _signal_base5<arg1_type, arg2_type, arg3_type, arg4_type,			arg5_type, mt_policy>(s)		{			;		}		template<class desttype>			void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type,			arg2_type, arg3_type, arg4_type, arg5_type))		{			lock_block<mt_policy> lock(this);			_connection5<desttype, arg1_type, arg2_type, arg3_type, arg4_type,				arg5_type, mt_policy>* conn = new _connection5<desttype, arg1_type, arg2_type,				arg3_type, arg4_type, arg5_type, mt_policy>(pclass, pmemfun);			m_connected_slots.push_back(conn);			pclass->signal_connect(this);		}		void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4,			arg5_type a5)		{			lock_block<mt_policy> lock(this);			typename connections_list::const_iterator itNext, it = m_connected_slots.begin();			typename connections_list::const_iterator itEnd = m_connected_slots.end();			while(it != itEnd)			{				itNext = it;				++itNext;				(*it)->emit(a1, a2, a3, a4, a5);				it = itNext;			}		}		void operator()(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4,			arg5_type a5)		{			lock_block<mt_policy> lock(this);			typename connections_list::const_iterator itNext, it = m_connected_slots.begin();			typename connections_list::const_iterator itEnd = m_connected_slots.end();			while(it != itEnd)			{				itNext = it;				++itNext;				(*it)->emit(a1, a2, a3, a4, a5);				it = itNext;			}		}	};	template<class arg1_type, class arg2_type, class arg3_type, class arg4_type,	class arg5_type, class arg6_type, class mt_policy = SIGSLOT_DEFAULT_MT_POLICY>	class signal6 : public _signal_base6<arg1_type, arg2_type, arg3_type,		arg4_type, arg5_type, arg6_type, mt_policy>	{	public:		typedef _signal_base6<arg1_type, arg2_type, arg3_type, arg4_type, arg5_type, arg6_type, mt_policy> base;		typedef typename base::connections_list connections_list;		using base::m_connected_slots;		signal6()		{			;		}		signal6(const signal6<arg1_type, arg2_type, arg3_type, arg4_type,			arg5_type, arg6_type, mt_policy>& s)			: _signal_base6<arg1_type, arg2_type, arg3_type, arg4_type,			arg5_type, arg6_type, mt_policy>(s)		{			;		}		template<class desttype>			void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type,			arg2_type, arg3_type, arg4_type, arg5_type, arg6_type))		{			lock_block<mt_policy> lock(this);			_connection6<desttype, arg1_type, arg2_type, arg3_type, arg4_type,				arg5_type, arg6_type, mt_policy>* conn = 				new _connection6<desttype, arg1_type, arg2_type, arg3_type,				arg4_type, arg5_type, arg6_type, mt_policy>(pclass, pmemfun);			m_connected_slots.push_back(conn);			pclass->signal_connect(this);		}		void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4,			arg5_type a5, arg6_type a6)		{			lock_block<mt_policy> lock(this);			typename connections_list::const_iterator itNext, it = m_connected_slots.begin();			typename connections_list::const_iterator itEnd = m_connected_slots.end();			while(it != itEnd)			{				itNext = it;				++itNext;				(*it)->emit(a1, a2, a3, a4, a5, a6);				it = itNext;			}		}		void operator()(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4,			arg5_type a5, arg6_type a6)		{			lock_block<mt_policy> lock(this);			typename connections_list::const_iterator itNext, it = m_connected_slots.begin();			typename connections_list::const_iterator itEnd = m_connected_slots.end();			while(it != itEnd)			{				itNext = it;				++itNext;				(*it)->emit(a1, a2, a3, a4, a5, a6);				it = itNext;			}		}	};	template<class arg1_type, class arg2_type, class arg3_type, class arg4_type,	class arg5_type, class arg6_type, class arg7_type, class mt_policy = SIGSLOT_DEFAULT_MT_POLICY>	class signal7 : public _signal_base7<arg1_type, arg2_type, arg3_type,		arg4_type, arg5_type, arg6_type, arg7_type, mt_policy>	{	public:		typedef _signal_base7<arg1_type, arg2_type, arg3_type, arg4_type, 			arg5_type, arg6_type, arg7_type, mt_policy> base;		typedef typename base::connections_list connections_list;		using base::m_connected_slots;		signal7()		{			;		}		signal7(const signal7<arg1_type, arg2_type, arg3_type, arg4_type,			arg5_type, arg6_type, arg7_type, mt_policy>& s)			: _signal_base7<arg1_type, arg2_type, arg3_type, arg4_type,			arg5_typ

⌨️ 快捷键说明

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