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

📄 typehandler.h

📁 很好用的网络封装库,不熟悉网络编程的人也可以使用。使用风格良好的标准c++编写。
💻 H
📖 第 1 页 / 共 5 页
字号:
		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>());
	}

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 TypeHandler<Poco::Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12> >
{
public:
	typedef typename Poco::TypeWrapper<Poco::Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12> >::CONSTREFTYPE TupleConstRef;
	typedef typename Poco::TypeWrapper<Poco::Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12> >::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>());
	}

	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>());
	}

	static std::size_t size()
	{
		return Poco::Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12>::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>());
	}

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 TypeHandler<Poco::Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11> >
{
public:
	typedef typename Poco::TypeWrapper<Poco::Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11> >::CONSTREFTYPE TupleConstRef;
	typedef typename Poco::TypeWrapper<Poco::Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11> >::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>());
	}

	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>());
	}

	static std::size_t size()
	{
		return Poco::Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11>::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>());
	}

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 TypeHandler<Poco::Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10> >
{
public:
	typedef typename Poco::TypeWrapper<Poco::Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10> >::CONSTREFTYPE TupleConstRef;
	typedef typename Poco::TypeWrapper<Poco::Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10> >::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>());
	}

	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>());
	}

	static std::size_t size()
	{
		return Poco::Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>::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>());
	}

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 TypeHandler<Poco::Tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> >
{
public:
	typedef typename Poco::TypeWrapper<Poco::Tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> >::CONSTREFTYPE TupleConstRef;
	typedef typename Poco::TypeWrapper<Poco::Tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> >::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>());

⌨️ 快捷键说明

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