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

📄 typehandler.h.svn-base

📁 很好用的网络封装库,不熟悉网络编程的人也可以使用。使用风格良好的标准c++编写。
💻 SVN-BASE
📖 第 1 页 / 共 5 页
字号:
		pBinder->bind(pos++, tuple.template get<5>());
		pBinder->bind(pos++, tuple.template get<6>());
		pBinder->bind(pos++, tuple.template get<7>());
		pBinder->bind(pos++, tuple.template get<8>());
		pBinder->bind(pos++, tuple.template get<9>());
		pBinder->bind(pos++, tuple.template get<10>());
		pBinder->bind(pos++, tuple.template get<11>());
		pBinder->bind(pos++, tuple.template get<12>());
		pBinder->bind(pos++, tuple.template get<13>());
		pBinder->bind(pos++, tuple.template get<14>());
		pBinder->bind(pos++, tuple.template get<15>());
		pBinder->bind(pos++, tuple.template get<16>());
		pBinder->bind(pos++, tuple.template get<17>());
		pBinder->bind(pos++, tuple.template get<18>());
	}

	static void prepare(std::size_t pos, TupleConstRef tuple, AbstractPreparation* pPrepare)
	{
		poco_assert (pPrepare != 0);
		pPrepare->prepare(pos++, tuple.template get<0>());
		pPrepare->prepare(pos++, tuple.template get<1>());
		pPrepare->prepare(pos++, tuple.template get<2>());
		pPrepare->prepare(pos++, tuple.template get<3>());
		pPrepare->prepare(pos++, tuple.template get<4>());
		pPrepare->prepare(pos++, tuple.template get<5>());
		pPrepare->prepare(pos++, tuple.template get<6>());
		pPrepare->prepare(pos++, tuple.template get<7>());
		pPrepare->prepare(pos++, tuple.template get<8>());
		pPrepare->prepare(pos++, tuple.template get<9>());
		pPrepare->prepare(pos++, tuple.template get<10>());
		pPrepare->prepare(pos++, tuple.template get<11>());
		pPrepare->prepare(pos++, tuple.template get<12>());
		pPrepare->prepare(pos++, tuple.template get<13>());
		pPrepare->prepare(pos++, tuple.template get<14>());
		pPrepare->prepare(pos++, tuple.template get<15>());
		pPrepare->prepare(pos++, tuple.template get<16>());
		pPrepare->prepare(pos++, tuple.template get<17>());
		pPrepare->prepare(pos++, tuple.template get<18>());
	}

	static std::size_t size()
	{
		return Poco::Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18>::length;
	}

	static void extract(std::size_t pos, TupleRef tuple, TupleConstRef defVal, AbstractExtractor* pExt)
	{
		poco_assert (pExt != 0);
		if (!pExt->extract(pos++, tuple.template get<0>()))
			tuple.template set<0>(defVal.template get<0>());
		if (!pExt->extract(pos++, tuple.template get<1>()))
			tuple.template set<1>(defVal.template get<1>());
		if (!pExt->extract(pos++, tuple.template get<2>()))
			tuple.template set<2>(defVal.template get<2>());
		if (!pExt->extract(pos++, tuple.template get<3>()))
			tuple.template set<3>(defVal.template get<3>());
		if (!pExt->extract(pos++, tuple.template get<4>()))
			tuple.template set<4>(defVal.template get<4>());
		if (!pExt->extract(pos++, tuple.template get<5>()))
			tuple.template set<5>(defVal.template get<5>());
		if (!pExt->extract(pos++, tuple.template get<6>()))
			tuple.template set<6>(defVal.template get<6>());
		if (!pExt->extract(pos++, tuple.template get<7>()))
			tuple.template set<7>(defVal.template get<7>());
		if (!pExt->extract(pos++, tuple.template get<8>()))
			tuple.template set<8>(defVal.template get<8>());
		if (!pExt->extract(pos++, tuple.template get<9>()))
			tuple.template set<9>(defVal.template get<9>());
		if (!pExt->extract(pos++, tuple.template get<10>()))
			tuple.template set<10>(defVal.template get<10>());
		if (!pExt->extract(pos++, tuple.template get<11>()))
			tuple.template set<11>(defVal.template get<11>());
		if (!pExt->extract(pos++, tuple.template get<12>()))
			tuple.template set<12>(defVal.template get<12>());
		if (!pExt->extract(pos++, tuple.template get<13>()))
			tuple.template set<13>(defVal.template get<13>());
		if (!pExt->extract(pos++, tuple.template get<14>()))
			tuple.template set<14>(defVal.template get<14>());
		if (!pExt->extract(pos++, tuple.template get<15>()))
			tuple.template set<15>(defVal.template get<15>());
		if (!pExt->extract(pos++, tuple.template get<16>()))
			tuple.template set<16>(defVal.template get<16>());
		if (!pExt->extract(pos++, tuple.template get<17>()))
			tuple.template set<17>(defVal.template get<17>());
		if (!pExt->extract(pos++, tuple.template get<18>()))
			tuple.template set<18>(defVal.template get<18>());
	}

private:
	TypeHandler();
	~TypeHandler();
	TypeHandler(const TypeHandler&);
	TypeHandler& operator=(const TypeHandler&);
};


template <class T0, 
	class T1, 
	class T2, 
	class T3, 
	class T4, 
	class T5, 
	class T6, 
	class T7, 
	class T8, 
	class T9, 
	class T10, 
	class T11, 
	class T12, 
	class T13, 
	class T14, 
	class T15, 
	class T16, 
	class T17>
class TypeHandler<Poco::Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17> >
{
public:
	typedef typename Poco::TypeWrapper<Poco::Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17> >::CONSTREFTYPE TupleConstRef;
	typedef typename Poco::TypeWrapper<Poco::Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17> >::REFTYPE      TupleRef;

	static void bind(std::size_t pos, TupleConstRef tuple, AbstractBinder* pBinder)
	{
		poco_assert (pBinder != 0);
		pBinder->bind(pos++, tuple.template get<0>());
		pBinder->bind(pos++, tuple.template get<1>());
		pBinder->bind(pos++, tuple.template get<2>());
		pBinder->bind(pos++, tuple.template get<3>());
		pBinder->bind(pos++, tuple.template get<4>());
		pBinder->bind(pos++, tuple.template get<5>());
		pBinder->bind(pos++, tuple.template get<6>());
		pBinder->bind(pos++, tuple.template get<7>());
		pBinder->bind(pos++, tuple.template get<8>());
		pBinder->bind(pos++, tuple.template get<9>());
		pBinder->bind(pos++, tuple.template get<10>());
		pBinder->bind(pos++, tuple.template get<11>());
		pBinder->bind(pos++, tuple.template get<12>());
		pBinder->bind(pos++, tuple.template get<13>());
		pBinder->bind(pos++, tuple.template get<14>());
		pBinder->bind(pos++, tuple.template get<15>());
		pBinder->bind(pos++, tuple.template get<16>());
		pBinder->bind(pos++, tuple.template get<17>());
	}

	static void prepare(std::size_t pos, TupleConstRef tuple, AbstractPreparation* pPrepare)
	{
		poco_assert (pPrepare != 0);
		pPrepare->prepare(pos++, tuple.template get<0>());
		pPrepare->prepare(pos++, tuple.template get<1>());
		pPrepare->prepare(pos++, tuple.template get<2>());
		pPrepare->prepare(pos++, tuple.template get<3>());
		pPrepare->prepare(pos++, tuple.template get<4>());
		pPrepare->prepare(pos++, tuple.template get<5>());
		pPrepare->prepare(pos++, tuple.template get<6>());
		pPrepare->prepare(pos++, tuple.template get<7>());
		pPrepare->prepare(pos++, tuple.template get<8>());
		pPrepare->prepare(pos++, tuple.template get<9>());
		pPrepare->prepare(pos++, tuple.template get<10>());
		pPrepare->prepare(pos++, tuple.template get<11>());
		pPrepare->prepare(pos++, tuple.template get<12>());
		pPrepare->prepare(pos++, tuple.template get<13>());
		pPrepare->prepare(pos++, tuple.template get<14>());
		pPrepare->prepare(pos++, tuple.template get<15>());
		pPrepare->prepare(pos++, tuple.template get<16>());
		pPrepare->prepare(pos++, tuple.template get<17>());
	}

	static std::size_t size()
	{
		return Poco::Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17>::length;
	}

	static void extract(std::size_t pos, TupleRef tuple, TupleConstRef defVal, AbstractExtractor* pExt)
	{
		poco_assert (pExt != 0);
		if (!pExt->extract(pos++, tuple.template get<0>()))
			tuple.template set<0>(defVal.template get<0>());
		if (!pExt->extract(pos++, tuple.template get<1>()))
			tuple.template set<1>(defVal.template get<1>());
		if (!pExt->extract(pos++, tuple.template get<2>()))
			tuple.template set<2>(defVal.template get<2>());
		if (!pExt->extract(pos++, tuple.template get<3>()))
			tuple.template set<3>(defVal.template get<3>());
		if (!pExt->extract(pos++, tuple.template get<4>()))
			tuple.template set<4>(defVal.template get<4>());
		if (!pExt->extract(pos++, tuple.template get<5>()))
			tuple.template set<5>(defVal.template get<5>());
		if (!pExt->extract(pos++, tuple.template get<6>()))
			tuple.template set<6>(defVal.template get<6>());
		if (!pExt->extract(pos++, tuple.template get<7>()))
			tuple.template set<7>(defVal.template get<7>());
		if (!pExt->extract(pos++, tuple.template get<8>()))
			tuple.template set<8>(defVal.template get<8>());
		if (!pExt->extract(pos++, tuple.template get<9>()))
			tuple.template set<9>(defVal.template get<9>());
		if (!pExt->extract(pos++, tuple.template get<10>()))
			tuple.template set<10>(defVal.template get<10>());
		if (!pExt->extract(pos++, tuple.template get<11>()))
			tuple.template set<11>(defVal.template get<11>());
		if (!pExt->extract(pos++, tuple.template get<12>()))
			tuple.template set<12>(defVal.template get<12>());
		if (!pExt->extract(pos++, tuple.template get<13>()))
			tuple.template set<13>(defVal.template get<13>());
		if (!pExt->extract(pos++, tuple.template get<14>()))
			tuple.template set<14>(defVal.template get<14>());
		if (!pExt->extract(pos++, tuple.template get<15>()))
			tuple.template set<15>(defVal.template get<15>());
		if (!pExt->extract(pos++, tuple.template get<16>()))
			tuple.template set<16>(defVal.template get<16>());
		if (!pExt->extract(pos++, tuple.template get<17>()))
			tuple.template set<17>(defVal.template get<17>());
	}

private:
	TypeHandler();
	~TypeHandler();
	TypeHandler(const TypeHandler&);
	TypeHandler& operator=(const TypeHandler&);
};


template <class T0, 
	class T1, 
	class T2, 
	class T3, 
	class T4, 
	class T5, 
	class T6, 
	class T7, 
	class T8, 
	class T9, 
	class T10, 
	class T11, 
	class T12, 
	class T13, 
	class T14, 
	class T15, 
	class T16>
class TypeHandler<Poco::Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16> >
{
public:
	typedef typename Poco::TypeWrapper<Poco::Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16> >::CONSTREFTYPE TupleConstRef;
	typedef typename Poco::TypeWrapper<Poco::Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16> >::REFTYPE      TupleRef;

	static void bind(std::size_t pos, TupleConstRef tuple, AbstractBinder* pBinder)
	{
		poco_assert (pBinder != 0);
		pBinder->bind(pos++, tuple.template get<0>());
		pBinder->bind(pos++, tuple.template get<1>());
		pBinder->bind(pos++, tuple.template get<2>());
		pBinder->bind(pos++, tuple.template get<3>());
		pBinder->bind(pos++, tuple.template get<4>());
		pBinder->bind(pos++, tuple.template get<5>());
		pBinder->bind(pos++, tuple.template get<6>());
		pBinder->bind(pos++, tuple.template get<7>());
		pBinder->bind(pos++, tuple.template get<8>());
		pBinder->bind(pos++, tuple.template get<9>());
		pBinder->bind(pos++, tuple.template get<10>());
		pBinder->bind(pos++, tuple.template get<11>());
		pBinder->bind(pos++, tuple.template get<12>());
		pBinder->bind(pos++, tuple.template get<13>());
		pBinder->bind(pos++, tuple.template get<14>());
		pBinder->bind(pos++, tuple.template get<15>());
		pBinder->bind(pos++, tuple.template get<16>());
	}

	static void prepare(std::size_t pos, TupleConstRef tuple, AbstractPreparation* pPrepare)
	{
		poco_assert (pPrepare != 0);
		pPrepare->prepare(pos++, tuple.template get<0>());
		pPrepare->prepare(pos++, tuple.template get<1>());
		pPrepare->prepare(pos++, tuple.template get<2>());
		pPrepare->prepare(pos++, tuple.template get<3>());
		pPrepare->prepare(pos++, tuple.template get<4>());
		pPrepare->prepare(pos++, tuple.template get<5>());
		pPrepare->prepare(pos++, tuple.template get<6>());
		pPrepare->prepare(pos++, tuple.template get<7>());
		pPrepare->prepare(pos++, tuple.template get<8>());
		pPrepare->prepare(pos++, tuple.template get<9>());
		pPrepare->prepare(pos++, tuple.template get<10>());
		pPrepare->prepare(pos++, tuple.template get<11>());
		pPrepare->prepare(pos++, tuple.template get<12>());
		pPrepare->prepare(pos++, tuple.template get<13>());
		pPrepare->prepare(pos++, tuple.template get<14>());
		pPrepare->prepare(pos++, tuple.template get<15>());
		pPrepare->prepare(pos++, tuple.template get<16>());
	}

	static std::size_t size()
	{
		return Poco::Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16>::length;
	}

	static void extract(std::size_t pos, TupleRef tuple, TupleConstRef defVal, AbstractExtractor* pExt)
	{
		poco_assert (pExt != 0);
		if (!pExt->extract(pos++, tuple.template get<0>()))
			tuple.template set<0>(defVal.template get<0>());
		if (!pExt->extract(pos++, tuple.template get<1>()))
			tuple.template set<1>(defVal.template get<1>());
		if (!pExt->extract(pos++, tuple.template get<2>()))
			tuple.template set<2>(defVal.template get<2>());
		if (!pExt->extract(pos++, tuple.template get<3>()))
			tuple.template set<3>(defVal.template get<3>());
		if (!pExt->extract(pos++, tuple.template get<4>()))
			tuple.template set<4>(defVal.template get<4>());
		if (!pExt->extract(pos++, tuple.template get<5>()))
			tuple.template set<5>(defVal.template get<5>());
		if (!pExt->extract(pos++, tuple.template get<6>()))
			tuple.template set<6>(defVal.template get<6>());
		if (!pExt->extract(pos++, tuple.template get<7>()))
			tuple.template set<7>(defVal.template get<7>());
		if (!pExt->extract(pos++, tuple.template get<8>()))
			tuple.template set<8>(defVal.template get<8>());
		if (!pExt->extract(pos++, tuple.template get<9>()))
			tuple.template set<9>(defVal.template get<9>());
		if (!pExt->extract(pos++, tuple.template get<10>()))
			tuple.template set<10>(defVal.template get<10>());
		if (!pExt->extract(pos++, tuple.template get<11>()))
			tuple.template set<11>(defVal.template get<11>());
		if (!pExt->extract(pos++, tuple.template get<12>()))
			tuple.template set<12>(defVal.template get<12>());
		if (!pExt->extract(pos++, tuple.template get<13>()))

⌨️ 快捷键说明

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