// Copyright 2008-2018 Yolo Technologies, Inc. All Rights Reserved. https://www.comblockengine.com





#if defined(DEFINE_IN_INTERFACE)

	#undef KBE_BASEAPP_INTERFACE_MACRO_H

#endif





#ifndef KBE_BASEAPP_INTERFACE_MACRO_H

#define KBE_BASEAPP_INTERFACE_MACRO_H



// common include	

#include "network/interface_defs.h"

// windows include	

#if KBE_PLATFORM == PLATFORM_WIN32

#else

// linux include

#endif

	

namespace KBEngine{



/**

	Baseapp消息宏,  参数为流, 需要自己解开

*/

#if defined(NETWORK_INTERFACE_DECLARE_BEGIN)

	#undef BASEAPP_MESSAGE_HANDLER_STREAM

	#undef BASEAPP_MESSAGE_EXPOSED

	#undef ENTITY_MESSAGE_EXPOSED

	#undef PROXY_MESSAGE_EXPOSED

#endif





#define BASEAPP_MESSAGE_EXPOSED(NAME)											\

	NETWORK_MESSAGE_EXPOSED(Baseapp, NAME)										\



#define ENTITY_MESSAGE_EXPOSED(NAME)											\

	NETWORK_MESSAGE_EXPOSED(Entity, NAME)										\



#define PROXY_MESSAGE_EXPOSED(NAME)												\

	NETWORK_MESSAGE_EXPOSED(Proxy, NAME)										\





#if defined(DEFINE_IN_INTERFACE)

#if defined(BASEAPP)

#define BASEAPP_MESSAGE_HANDLER_STREAM(NAME)									\

	void NAME##BaseappMessagehandler_stream::handle(Network::Channel* pChannel,	\

													KBEngine::MemoryStream& s)	\

	{																			\

			KBEngine::Baseapp::getSingleton().NAME(pChannel, s);				\

	}																			\



#else

#define BASEAPP_MESSAGE_HANDLER_STREAM(NAME)									\

	void NAME##BaseappMessagehandler_stream::handle(Network::Channel* pChannel,	\

													KBEngine::MemoryStream& s)	\

	{																			\

	}																			\

		

#endif

#else

#define BASEAPP_MESSAGE_HANDLER_STREAM(NAME)									\

	class NAME##BaseappMessagehandler_stream : public Network::MessageHandler	\

	{																			\

	public:																		\

		virtual void handle(Network::Channel* pChannel,							\

							KBEngine::MemoryStream& s);							\

	};																			\



#endif



#define BASEAPP_MESSAGE_DECLARE_STREAM(NAME, MSG_LENGTH)						\

	BASEAPP_MESSAGE_HANDLER_STREAM(NAME)										\

	NETWORK_MESSAGE_DECLARE_STREAM(Baseapp, NAME,								\

				NAME##BaseappMessagehandler_stream, MSG_LENGTH)					\

																				\



/**

	Baseapp消息宏,  只有零个参数的消息

*/

#if defined(NETWORK_INTERFACE_DECLARE_BEGIN)

	#undef BASEAPP_MESSAGE_HANDLER_ARGS0

#endif



#if defined(DEFINE_IN_INTERFACE)

#if defined(BASEAPP)

#define BASEAPP_MESSAGE_HANDLER_ARGS0(NAME)										\

	void NAME##BaseappMessagehandler0::handle(Network::Channel* pChannel,		\

												KBEngine::MemoryStream& s)		\

	{																			\

			KBEngine::Baseapp::getSingleton().NAME(pChannel);					\

	}																			\



#else

#define BASEAPP_MESSAGE_HANDLER_ARGS0(NAME)										\

	void NAME##BaseappMessagehandler0::handle(Network::Channel* pChannel,		\

												KBEngine::MemoryStream& s)		\

	{																			\

	}																			\

		

#endif

#else

#define BASEAPP_MESSAGE_HANDLER_ARGS0(NAME)										\

	class NAME##BaseappMessagehandler0 : public Network::MessageHandler			\

	{																			\

	public:																		\

		virtual void handle(Network::Channel* pChannel,							\

												KBEngine::MemoryStream& s);		\

	};																			\



#endif



#define BASEAPP_MESSAGE_DECLARE_ARGS0(NAME, MSG_LENGTH)							\

	BASEAPP_MESSAGE_HANDLER_ARGS0(NAME)											\

	NETWORK_MESSAGE_DECLARE_ARGS0(Baseapp, NAME,								\

				NAME##BaseappMessagehandler0, MSG_LENGTH)						\

																				\



/**

	Baseapp消息宏,  只有一个参数的消息

*/

#if defined(NETWORK_INTERFACE_DECLARE_BEGIN)

	#undef BASEAPP_MESSAGE_HANDLER_ARGS1

#endif



#if defined(DEFINE_IN_INTERFACE)

#if defined(BASEAPP)

#define BASEAPP_MESSAGE_HANDLER_ARGS1(NAME, ARG_TYPE1, ARG_NAME1)				\

	void NAME##BaseappMessagehandler1::handle(Network::Channel* pChannel,		\

												KBEngine::MemoryStream& s)		\

	{																			\

			ARG_TYPE1 ARG_NAME1;												\

			s >> ARG_NAME1;														\

			KBEngine::Baseapp::getSingleton().NAME(pChannel, ARG_NAME1);		\

	}																			\



#else

#define BASEAPP_MESSAGE_HANDLER_ARGS1(NAME, ARG_TYPE1, ARG_NAME1)				\

	void NAME##BaseappMessagehandler1::handle(Network::Channel* pChannel,		\

												KBEngine::MemoryStream& s)		\

	{																			\

	}																			\

		

#endif

#else

#define BASEAPP_MESSAGE_HANDLER_ARGS1(NAME, ARG_TYPE1, ARG_NAME1)				\

	class NAME##BaseappMessagehandler1 : public Network::MessageHandler			\

	{																			\

	public:																		\

		virtual void handle(Network::Channel* pChannel,							\

							KBEngine::MemoryStream& s);							\

	};																			\



#endif



#define BASEAPP_MESSAGE_DECLARE_ARGS1(NAME, MSG_LENGTH, ARG_TYPE1, ARG_NAME1)	\

	BASEAPP_MESSAGE_HANDLER_ARGS1(NAME, ARG_TYPE1, ARG_NAME1)					\

	NETWORK_MESSAGE_DECLARE_ARGS1(Baseapp, NAME,								\

				NAME##BaseappMessagehandler1, MSG_LENGTH, ARG_TYPE1, ARG_NAME1)	\

																				\



/**

	Baseapp消息宏,  只有二个参数的消息

*/

#if defined(NETWORK_INTERFACE_DECLARE_BEGIN)

	#undef BASEAPP_MESSAGE_HANDLER_ARGS2

#endif



#if defined(DEFINE_IN_INTERFACE)

#if defined(BASEAPP)

#define BASEAPP_MESSAGE_HANDLER_ARGS2(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2)				\

	void NAME##BaseappMessagehandler2::handle(Network::Channel* pChannel,		\

												KBEngine::MemoryStream& s)		\

	{																			\

			ARG_TYPE1 ARG_NAME1;												\

			s >> ARG_NAME1;														\

			ARG_TYPE2 ARG_NAME2;												\

			s >> ARG_NAME2;														\

			KBEngine::Baseapp::getSingleton().NAME(pChannel,					\

													ARG_NAME1, ARG_NAME2);		\

	}																			\



#else

#define BASEAPP_MESSAGE_HANDLER_ARGS2(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2)				\

	void NAME##BaseappMessagehandler2::handle(Network::Channel* pChannel,		\

												KBEngine::MemoryStream& s)		\

	{																			\

	}																			\

		

#endif

#else

#define BASEAPP_MESSAGE_HANDLER_ARGS2(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2)				\

	class NAME##BaseappMessagehandler2 : public Network::MessageHandler			\

	{																			\

	public:																		\

		virtual void handle(Network::Channel* pChannel,							\

							KBEngine::MemoryStream& s);							\

	};																			\



#endif



#define BASEAPP_MESSAGE_DECLARE_ARGS2(NAME, MSG_LENGTH, ARG_TYPE1, ARG_NAME1,	\

											ARG_TYPE2, ARG_NAME2)				\

	BASEAPP_MESSAGE_HANDLER_ARGS2(NAME, ARG_TYPE1, ARG_NAME1, 					\

											ARG_TYPE2, ARG_NAME2)				\

	NETWORK_MESSAGE_DECLARE_ARGS2(Baseapp, NAME,								\

				NAME##BaseappMessagehandler2, MSG_LENGTH, ARG_TYPE1, ARG_NAME1,	\

											ARG_TYPE2, ARG_NAME2)				\





/**

	Baseapp消息宏,  只有三个参数的消息

*/

#if defined(NETWORK_INTERFACE_DECLARE_BEGIN)

	#undef BASEAPP_MESSAGE_HANDLER_ARGS3

#endif



#if defined(DEFINE_IN_INTERFACE)

#if defined(BASEAPP)

#define BASEAPP_MESSAGE_HANDLER_ARGS3(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3)				\

	void NAME##BaseappMessagehandler3::handle(Network::Channel* pChannel,		\

												KBEngine::MemoryStream& s)		\

	{																			\

			ARG_TYPE1 ARG_NAME1;												\

			s >> ARG_NAME1;														\

			ARG_TYPE2 ARG_NAME2;												\

			s >> ARG_NAME2;														\

			ARG_TYPE3 ARG_NAME3;												\

			s >> ARG_NAME3;														\

			KBEngine::Baseapp::getSingleton().NAME(pChannel,					\

				ARG_NAME1, ARG_NAME2, 											\

				ARG_NAME3);														\

	}																			\



#else

#define BASEAPP_MESSAGE_HANDLER_ARGS3(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3)				\

	void NAME##BaseappMessagehandler3::handle(Network::Channel* pChannel,		\

												KBEngine::MemoryStream& s)		\

	{																			\

	}																			\

		

#endif

#else

#define BASEAPP_MESSAGE_HANDLER_ARGS3(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3)				\

	class NAME##BaseappMessagehandler3 : public Network::MessageHandler			\

	{																			\

	public:																		\

		virtual void handle(Network::Channel* pChannel,							\

												KBEngine::MemoryStream& s);		\

	};																			\



#endif



#define BASEAPP_MESSAGE_DECLARE_ARGS3(NAME, MSG_LENGTH, ARG_TYPE1, ARG_NAME1,	\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3)				\

	BASEAPP_MESSAGE_HANDLER_ARGS3(NAME, ARG_TYPE1, ARG_NAME1, 					\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3)				\

	NETWORK_MESSAGE_DECLARE_ARGS3(Baseapp, NAME,								\

				NAME##BaseappMessagehandler3, MSG_LENGTH, ARG_TYPE1, ARG_NAME1,	\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3)				\





/**

	Baseapp消息宏,  只有四个参数的消息

*/

#if defined(NETWORK_INTERFACE_DECLARE_BEGIN)

	#undef BASEAPP_MESSAGE_HANDLER_ARGS4

#endif



#if defined(DEFINE_IN_INTERFACE)

#if defined(BASEAPP)

#define BASEAPP_MESSAGE_HANDLER_ARGS4(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4)				\

	void NAME##BaseappMessagehandler4::handle(Network::Channel* pChannel,		\

												KBEngine::MemoryStream& s)		\

	{																			\

			ARG_TYPE1 ARG_NAME1;												\

			s >> ARG_NAME1;														\

			ARG_TYPE2 ARG_NAME2;												\

			s >> ARG_NAME2;														\

			ARG_TYPE3 ARG_NAME3;												\

			s >> ARG_NAME3;														\

			ARG_TYPE4 ARG_NAME4;												\

			s >> ARG_NAME4;														\

			KBEngine::Baseapp::getSingleton().NAME(pChannel,					\

													ARG_NAME1, ARG_NAME2, 		\

				ARG_NAME3, ARG_NAME4);											\

	}																			\



#else

#define BASEAPP_MESSAGE_HANDLER_ARGS4(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4)				\

	void NAME##BaseappMessagehandler4::handle(Network::Channel* pChannel,		\

												KBEngine::MemoryStream& s)		\

	{																			\

	}																			\

		

#endif

#else

#define BASEAPP_MESSAGE_HANDLER_ARGS4(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4)				\

	class NAME##BaseappMessagehandler4 : public Network::MessageHandler			\

	{																			\

	public:																		\

		virtual void handle(Network::Channel* pChannel,							\

							KBEngine::MemoryStream& s);							\

	};																			\



#endif



#define BASEAPP_MESSAGE_DECLARE_ARGS4(NAME, MSG_LENGTH, ARG_TYPE1, ARG_NAME1,	\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4)				\

	BASEAPP_MESSAGE_HANDLER_ARGS4(NAME, ARG_TYPE1, ARG_NAME1, 					\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4)				\

	NETWORK_MESSAGE_DECLARE_ARGS4(Baseapp, NAME,								\

				NAME##BaseappMessagehandler4, MSG_LENGTH, ARG_TYPE1, ARG_NAME1,	\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4)				\



/**

	Baseapp消息宏,  只有五个参数的消息

*/

#if defined(NETWORK_INTERFACE_DECLARE_BEGIN)

	#undef BASEAPP_MESSAGE_HANDLER_ARGS5

#endif



#if defined(DEFINE_IN_INTERFACE)

#if defined(BASEAPP)

#define BASEAPP_MESSAGE_HANDLER_ARGS5(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5)				\

	void NAME##BaseappMessagehandler5::handle(Network::Channel* pChannel,		\

												KBEngine::MemoryStream& s)		\

	{																			\

			ARG_TYPE1 ARG_NAME1;												\

			s >> ARG_NAME1;														\

			ARG_TYPE2 ARG_NAME2;												\

			s >> ARG_NAME2;														\

			ARG_TYPE3 ARG_NAME3;												\

			s >> ARG_NAME3;														\

			ARG_TYPE4 ARG_NAME4;												\

			s >> ARG_NAME4;														\

			ARG_TYPE5 ARG_NAME5;												\

			s >> ARG_NAME5;														\

			KBEngine::Baseapp::getSingleton().NAME(pChannel,					\

													ARG_NAME1, ARG_NAME2, 		\

				ARG_NAME3, ARG_NAME4, ARG_NAME5);								\

	}																			\



#else

#define BASEAPP_MESSAGE_HANDLER_ARGS5(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5)				\

	void NAME##BaseappMessagehandler5::handle(Network::Channel* pChannel,		\

												KBEngine::MemoryStream& s)		\

	{																			\

	}																			\

		

#endif

#else

#define BASEAPP_MESSAGE_HANDLER_ARGS5(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5)				\

	class NAME##BaseappMessagehandler5 : public Network::MessageHandler			\

	{																			\

	public:																		\

		virtual void handle(Network::Channel* pChannel,							\

							KBEngine::MemoryStream& s);							\

	};																			\



#endif



#define BASEAPP_MESSAGE_DECLARE_ARGS5(NAME, MSG_LENGTH, ARG_TYPE1, ARG_NAME1,	\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5)				\

	BASEAPP_MESSAGE_HANDLER_ARGS5(NAME, ARG_TYPE1, ARG_NAME1, 					\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5)				\

	NETWORK_MESSAGE_DECLARE_ARGS5(Baseapp, NAME,								\

				NAME##BaseappMessagehandler5, MSG_LENGTH, ARG_TYPE1, ARG_NAME1,	\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5)				\





/**

	Baseapp消息宏,  只有六个参数的消息

*/

#if defined(NETWORK_INTERFACE_DECLARE_BEGIN)

	#undef BASEAPP_MESSAGE_HANDLER_ARGS6

#endif



#if defined(DEFINE_IN_INTERFACE)

#if defined(BASEAPP)

#define BASEAPP_MESSAGE_HANDLER_ARGS6(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6)				\

	void NAME##BaseappMessagehandler6::handle(Network::Channel* pChannel,		\

												KBEngine::MemoryStream& s)		\

	{																			\

			ARG_TYPE1 ARG_NAME1;												\

			s >> ARG_NAME1;														\

			ARG_TYPE2 ARG_NAME2;												\

			s >> ARG_NAME2;														\

			ARG_TYPE3 ARG_NAME3;												\

			s >> ARG_NAME3;														\

			ARG_TYPE4 ARG_NAME4;												\

			s >> ARG_NAME4;														\

			ARG_TYPE5 ARG_NAME5;												\

			s >> ARG_NAME5;														\

			ARG_TYPE6 ARG_NAME6;												\

			s >> ARG_NAME6;														\

			KBEngine::Baseapp::getSingleton().NAME(pChannel,					\

													ARG_NAME1, ARG_NAME2, 		\

				ARG_NAME3, ARG_NAME4, ARG_NAME5, ARG_NAME6);					\

	}																			\



#else

#define BASEAPP_MESSAGE_HANDLER_ARGS6(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6)				\

	void NAME##BaseappMessagehandler6::handle(Network::Channel* pChannel,		\

												KBEngine::MemoryStream& s)		\

	{																			\

	}																			\

		

#endif

#else

#define BASEAPP_MESSAGE_HANDLER_ARGS6(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6)				\

	class NAME##BaseappMessagehandler6 : public Network::MessageHandler			\

	{																			\

	public:																		\

		virtual void handle(Network::Channel* pChannel,							\

							KBEngine::MemoryStream& s);							\

	};																			\



#endif



#define BASEAPP_MESSAGE_DECLARE_ARGS6(NAME, MSG_LENGTH, ARG_TYPE1, ARG_NAME1,	\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6)				\

	BASEAPP_MESSAGE_HANDLER_ARGS6(NAME, ARG_TYPE1, ARG_NAME1, 					\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6)				\

	NETWORK_MESSAGE_DECLARE_ARGS6(Baseapp, NAME,								\

				NAME##BaseappMessagehandler6, MSG_LENGTH, ARG_TYPE1, ARG_NAME1,	\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6)				\



/**

	Baseapp消息宏,  只有七个参数的消息

*/

#if defined(NETWORK_INTERFACE_DECLARE_BEGIN)

	#undef BASEAPP_MESSAGE_HANDLER_ARGS7

#endif



#if defined(DEFINE_IN_INTERFACE)

#if defined(BASEAPP)

#define BASEAPP_MESSAGE_HANDLER_ARGS7(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7)				\

	void NAME##BaseappMessagehandler7::handle(Network::Channel* pChannel,		\

												KBEngine::MemoryStream& s)		\

	{																			\

			ARG_TYPE1 ARG_NAME1;												\

			s >> ARG_NAME1;														\

			ARG_TYPE2 ARG_NAME2;												\

			s >> ARG_NAME2;														\

			ARG_TYPE3 ARG_NAME3;												\

			s >> ARG_NAME3;														\

			ARG_TYPE4 ARG_NAME4;												\

			s >> ARG_NAME4;														\

			ARG_TYPE5 ARG_NAME5;												\

			s >> ARG_NAME5;														\

			ARG_TYPE6 ARG_NAME6;												\

			s >> ARG_NAME6;														\

			ARG_TYPE7 ARG_NAME7;												\

			s >> ARG_NAME7;														\

			KBEngine::Baseapp::getSingleton().NAME(pChannel,					\

										ARG_NAME1, ARG_NAME2, ARG_NAME3, 		\

										ARG_NAME4, ARG_NAME5, ARG_NAME6,		\

										ARG_NAME7);								\

	}																			\



#else

#define BASEAPP_MESSAGE_HANDLER_ARGS7(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7)				\

	void NAME##BaseappMessagehandler7::handle(Network::Channel* pChannel,		\

												KBEngine::MemoryStream& s)		\

	{																			\

	}																			\

		

#endif

#else

#define BASEAPP_MESSAGE_HANDLER_ARGS7(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7)				\

	class NAME##BaseappMessagehandler7 : public Network::MessageHandler			\

	{																			\

	public:																		\

		virtual void handle(Network::Channel* pChannel,							\

							KBEngine::MemoryStream& s);							\

	};																			\



#endif



#define BASEAPP_MESSAGE_DECLARE_ARGS7(NAME, MSG_LENGTH, ARG_TYPE1, ARG_NAME1,	\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7)				\

	BASEAPP_MESSAGE_HANDLER_ARGS7(NAME, ARG_TYPE1, ARG_NAME1, 					\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7)				\

	NETWORK_MESSAGE_DECLARE_ARGS7(Baseapp, NAME,								\

				NAME##BaseappMessagehandler7, MSG_LENGTH, ARG_TYPE1, ARG_NAME1,	\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7)				\





/**

	Baseapp消息宏,  只有八个参数的消息

*/

#if defined(NETWORK_INTERFACE_DECLARE_BEGIN)

	#undef BASEAPP_MESSAGE_HANDLER_ARGS8

#endif



#if defined(DEFINE_IN_INTERFACE)

#if defined(BASEAPP)

#define BASEAPP_MESSAGE_HANDLER_ARGS8(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7,				\

											ARG_TYPE8, ARG_NAME8)				\

	void NAME##BaseappMessagehandler8::handle(Network::Channel* pChannel,		\

												KBEngine::MemoryStream& s)		\

	{																			\

			ARG_TYPE1 ARG_NAME1;												\

			s >> ARG_NAME1;														\

			ARG_TYPE2 ARG_NAME2;												\

			s >> ARG_NAME2;														\

			ARG_TYPE3 ARG_NAME3;												\

			s >> ARG_NAME3;														\

			ARG_TYPE4 ARG_NAME4;												\

			s >> ARG_NAME4;														\

			ARG_TYPE5 ARG_NAME5;												\

			s >> ARG_NAME5;														\

			ARG_TYPE6 ARG_NAME6;												\

			s >> ARG_NAME6;														\

			ARG_TYPE7 ARG_NAME7;												\

			s >> ARG_NAME7;														\

			ARG_TYPE8 ARG_NAME8;												\

			s >> ARG_NAME8;														\

			KBEngine::Baseapp::getSingleton().NAME(pChannel,					\

										ARG_NAME1, ARG_NAME2, ARG_NAME3, 		\

										ARG_NAME4, ARG_NAME5, ARG_NAME6,		\

										ARG_NAME7, ARG_NAME8);					\

	}																			\



#else

#define BASEAPP_MESSAGE_HANDLER_ARGS8(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7,				\

											ARG_TYPE8, ARG_NAME8)				\

	void NAME##BaseappMessagehandler8::handle(Network::Channel* pChannel,		\

												KBEngine::MemoryStream& s)		\

	{																			\

	}																			\

		

#endif

#else

#define BASEAPP_MESSAGE_HANDLER_ARGS8(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7,				\

											ARG_TYPE8, ARG_NAME8)				\

	class NAME##BaseappMessagehandler8 : public Network::MessageHandler			\

	{																			\

	public:																		\

		virtual void handle(Network::Channel* pChannel,							\

							KBEngine::MemoryStream& s);							\

	};																			\



#endif



#define BASEAPP_MESSAGE_DECLARE_ARGS8(NAME, MSG_LENGTH, ARG_TYPE1, ARG_NAME1,	\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7,				\

											ARG_TYPE8, ARG_NAME8)				\

	BASEAPP_MESSAGE_HANDLER_ARGS8(NAME, ARG_TYPE1, ARG_NAME1, 					\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7,				\

											ARG_TYPE8, ARG_NAME8)				\

	NETWORK_MESSAGE_DECLARE_ARGS8(Baseapp, NAME,								\

				NAME##BaseappMessagehandler8, MSG_LENGTH, ARG_TYPE1, ARG_NAME1,	\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7,				\

											ARG_TYPE8, ARG_NAME8)				\





/**

	Baseapp消息宏,  只有九个参数的消息

*/

#if defined(NETWORK_INTERFACE_DECLARE_BEGIN)

	#undef BASEAPP_MESSAGE_HANDLER_ARGS9

#endif



#if defined(DEFINE_IN_INTERFACE)

#if defined(BASEAPP)

#define BASEAPP_MESSAGE_HANDLER_ARGS9(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7,				\

											ARG_TYPE8, ARG_NAME8,				\

											ARG_TYPE9, ARG_NAME9)				\

	void NAME##BaseappMessagehandler9::handle(Network::Channel* pChannel,		\

												KBEngine::MemoryStream& s)		\

	{																			\

			ARG_TYPE1 ARG_NAME1;												\

			s >> ARG_NAME1;														\

			ARG_TYPE2 ARG_NAME2;												\

			s >> ARG_NAME2;														\

			ARG_TYPE3 ARG_NAME3;												\

			s >> ARG_NAME3;														\

			ARG_TYPE4 ARG_NAME4;												\

			s >> ARG_NAME4;														\

			ARG_TYPE5 ARG_NAME5;												\

			s >> ARG_NAME5;														\

			ARG_TYPE6 ARG_NAME6;												\

			s >> ARG_NAME6;														\

			ARG_TYPE7 ARG_NAME7;												\

			s >> ARG_NAME7;														\

			ARG_TYPE8 ARG_NAME8;												\

			s >> ARG_NAME8;														\

			ARG_TYPE9 ARG_NAME9;												\

			s >> ARG_NAME9;														\

			KBEngine::Baseapp::getSingleton().NAME(pChannel,					\

										ARG_NAME1, ARG_NAME2, ARG_NAME3, 		\

										ARG_NAME4, ARG_NAME5, ARG_NAME6,		\

										ARG_NAME7, ARG_NAME8, ARG_NAME9);		\

	}																			\



#else

#define BASEAPP_MESSAGE_HANDLER_ARGS9(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7,				\

											ARG_TYPE8, ARG_NAME8,				\

											ARG_TYPE9, ARG_NAME9)				\

	void NAME##BaseappMessagehandler9::handle(Network::Channel* pChannel,		\

												KBEngine::MemoryStream& s)		\

	{																			\

	}																			\

		

#endif

#else

#define BASEAPP_MESSAGE_HANDLER_ARGS9(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7,				\

											ARG_TYPE8, ARG_NAME8,				\

											ARG_TYPE9, ARG_NAME9)				\

	class NAME##BaseappMessagehandler9 : public Network::MessageHandler			\

	{																			\

	public:																		\

		virtual void handle(Network::Channel* pChannel,							\

							KBEngine::MemoryStream& s);							\

	};																			\



#endif



#define BASEAPP_MESSAGE_DECLARE_ARGS9(NAME, MSG_LENGTH, ARG_TYPE1, ARG_NAME1,	\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7,				\

											ARG_TYPE8, ARG_NAME8,				\

											ARG_TYPE9, ARG_NAME9)				\

	BASEAPP_MESSAGE_HANDLER_ARGS9(NAME, ARG_TYPE1, ARG_NAME1, 					\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7,				\

											ARG_TYPE8, ARG_NAME8,				\

											ARG_TYPE9, ARG_NAME9)				\

	NETWORK_MESSAGE_DECLARE_ARGS9(Baseapp, NAME,								\

				NAME##BaseappMessagehandler9, MSG_LENGTH, ARG_TYPE1, ARG_NAME1,	\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7,				\

											ARG_TYPE8, ARG_NAME8,				\

											ARG_TYPE9, ARG_NAME9)				\





/**

	Baseapp消息宏,  只有十个参数的消息

*/

#if defined(NETWORK_INTERFACE_DECLARE_BEGIN)

	#undef BASEAPP_MESSAGE_HANDLER_ARGS10

#endif



#if defined(DEFINE_IN_INTERFACE)

#if defined(BASEAPP)

#define BASEAPP_MESSAGE_HANDLER_ARGS10(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7,				\

											ARG_TYPE8, ARG_NAME8,				\

											ARG_TYPE9, ARG_NAME9,				\

											ARG_TYPE10, ARG_NAME10)				\

	void NAME##BaseappMessagehandler10::handle(Network::Channel* pChannel,		\

												KBEngine::MemoryStream& s)		\

	{																			\

			ARG_TYPE1 ARG_NAME1;												\

			s >> ARG_NAME1;														\

			ARG_TYPE2 ARG_NAME2;												\

			s >> ARG_NAME2;														\

			ARG_TYPE3 ARG_NAME3;												\

			s >> ARG_NAME3;														\

			ARG_TYPE4 ARG_NAME4;												\

			s >> ARG_NAME4;														\

			ARG_TYPE5 ARG_NAME5;												\

			s >> ARG_NAME5;														\

			ARG_TYPE6 ARG_NAME6;												\

			s >> ARG_NAME6;														\

			ARG_TYPE7 ARG_NAME7;												\

			s >> ARG_NAME7;														\

			ARG_TYPE8 ARG_NAME8;												\

			s >> ARG_NAME8;														\

			ARG_TYPE9 ARG_NAME9;												\

			s >> ARG_NAME9;														\

			ARG_TYPE10 ARG_NAME10;												\

			s >> ARG_NAME10;													\

			KBEngine::Baseapp::getSingleton().NAME(pChannel,					\

										ARG_NAME1, ARG_NAME2, ARG_NAME3, 		\

										ARG_NAME4, ARG_NAME5, ARG_NAME6,		\

										ARG_NAME7, ARG_NAME8, ARG_NAME9,		\

										ARG_NAME10);							\

	}																			\



#else

#define BASEAPP_MESSAGE_HANDLER_ARGS10(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7,				\

											ARG_TYPE8, ARG_NAME8,				\

											ARG_TYPE9, ARG_NAME9,				\

											ARG_TYPE10, ARG_NAME10)				\

	void NAME##BaseappMessagehandler10::handle(Network::Channel* pChannel,		\

												KBEngine::MemoryStream& s)		\

	{																			\

	}																			\

		

#endif

#else

#define BASEAPP_MESSAGE_HANDLER_ARGS10(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7,				\

											ARG_TYPE8, ARG_NAME8,				\

											ARG_TYPE9, ARG_NAME9,				\

											ARG_TYPE10, ARG_NAME10)				\

	class NAME##BaseappMessagehandler10 : public Network::MessageHandler		\

	{																			\

	public:																		\

		virtual void handle(Network::Channel* pChannel,							\

							KBEngine::MemoryStream& s);							\

	};																			\



#endif



#define BASEAPP_MESSAGE_DECLARE_ARGS10(NAME, MSG_LENGTH, ARG_TYPE1, ARG_NAME1,	\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7,				\

											ARG_TYPE8, ARG_NAME8,				\

											ARG_TYPE9, ARG_NAME9,				\

											ARG_TYPE10, ARG_NAME10)				\

	BASEAPP_MESSAGE_HANDLER_ARGS10(NAME, ARG_TYPE1, ARG_NAME1, 					\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7,				\

											ARG_TYPE8, ARG_NAME8,				\

											ARG_TYPE9, ARG_NAME9,				\

											ARG_TYPE10, ARG_NAME10)				\

	NETWORK_MESSAGE_DECLARE_ARGS10(Baseapp, NAME,								\

				NAME##BaseappMessagehandler10, MSG_LENGTH, ARG_TYPE1, ARG_NAME1,\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7,				\

											ARG_TYPE8, ARG_NAME8,				\

											ARG_TYPE9, ARG_NAME9,				\

											ARG_TYPE10, ARG_NAME10)				\





/**

	Baseapp消息宏,  只有十一个参数的消息

*/

#if defined(NETWORK_INTERFACE_DECLARE_BEGIN)

	#undef BASEAPP_MESSAGE_HANDLER_ARGS11

#endif



#if defined(DEFINE_IN_INTERFACE)

#if defined(BASEAPP)

#define BASEAPP_MESSAGE_HANDLER_ARGS11(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7,				\

											ARG_TYPE8, ARG_NAME8,				\

											ARG_TYPE9, ARG_NAME9,				\

											ARG_TYPE10, ARG_NAME10,				\

											ARG_TYPE11, ARG_NAME11)				\

	void NAME##BaseappMessagehandler11::handle(Network::Channel* pChannel,		\

												KBEngine::MemoryStream& s)		\

	{																			\

			ARG_TYPE1 ARG_NAME1;												\

			s >> ARG_NAME1;														\

			ARG_TYPE2 ARG_NAME2;												\

			s >> ARG_NAME2;														\

			ARG_TYPE3 ARG_NAME3;												\

			s >> ARG_NAME3;														\

			ARG_TYPE4 ARG_NAME4;												\

			s >> ARG_NAME4;														\

			ARG_TYPE5 ARG_NAME5;												\

			s >> ARG_NAME5;														\

			ARG_TYPE6 ARG_NAME6;												\

			s >> ARG_NAME6;														\

			ARG_TYPE7 ARG_NAME7;												\

			s >> ARG_NAME7;														\

			ARG_TYPE8 ARG_NAME8;												\

			s >> ARG_NAME8;														\

			ARG_TYPE9 ARG_NAME9;												\

			s >> ARG_NAME9;														\

			ARG_TYPE10 ARG_NAME10;												\

			s >> ARG_NAME10;													\

			ARG_TYPE11 ARG_NAME11;												\

			s >> ARG_NAME11;													\

			KBEngine::Baseapp::getSingleton().NAME(pChannel,					\

										ARG_NAME1, ARG_NAME2, ARG_NAME3, 		\

										ARG_NAME4, ARG_NAME5, ARG_NAME6,		\

										ARG_NAME7, ARG_NAME8, ARG_NAME9,		\

										ARG_NAME10, ARG_NAME11);				\

	}																			\



#else

#define BASEAPP_MESSAGE_HANDLER_ARGS11(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7,				\

											ARG_TYPE8, ARG_NAME8,				\

											ARG_TYPE9, ARG_NAME9,				\

											ARG_TYPE10, ARG_NAME10,				\

											ARG_TYPE11, ARG_NAME11)				\

	void NAME##BaseappMessagehandler11::handle(Network::Channel* pChannel,		\

												KBEngine::MemoryStream& s)		\

	{																			\

	}																			\

		

#endif

#else

#define BASEAPP_MESSAGE_HANDLER_ARGS11(NAME, ARG_TYPE1, ARG_NAME1,				\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7,				\

											ARG_TYPE8, ARG_NAME8,				\

											ARG_TYPE9, ARG_NAME9,				\

											ARG_TYPE10, ARG_NAME10,				\

											ARG_TYPE11, ARG_NAME11)				\

	class NAME##BaseappMessagehandler11 : public Network::MessageHandler		\

	{																			\

	public:																		\

		virtual void handle(Network::Channel* pChannel,							\

							KBEngine::MemoryStream& s);							\

	};																			\



#endif



#define BASEAPP_MESSAGE_DECLARE_ARGS11(NAME, MSG_LENGTH, ARG_TYPE1, ARG_NAME1,	\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7,				\

											ARG_TYPE8, ARG_NAME8,				\

											ARG_TYPE9, ARG_NAME9,				\

											ARG_TYPE10, ARG_NAME10,				\

											ARG_TYPE11, ARG_NAME11)				\

	BASEAPP_MESSAGE_HANDLER_ARGS11(NAME, ARG_TYPE1, ARG_NAME1, 					\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7,				\

											ARG_TYPE8, ARG_NAME8,				\

											ARG_TYPE9, ARG_NAME9,				\

											ARG_TYPE10, ARG_NAME10,				\

											ARG_TYPE11, ARG_NAME11)				\

	NETWORK_MESSAGE_DECLARE_ARGS11(Baseapp, NAME,								\

				NAME##BaseappMessagehandler11, MSG_LENGTH, ARG_TYPE1, ARG_NAME1,\

											ARG_TYPE2, ARG_NAME2,				\

											ARG_TYPE3, ARG_NAME3,				\

											ARG_TYPE4, ARG_NAME4,				\

											ARG_TYPE5, ARG_NAME5,				\

											ARG_TYPE6, ARG_NAME6,				\

											ARG_TYPE7, ARG_NAME7,				\

											ARG_TYPE8, ARG_NAME8,				\

											ARG_TYPE9, ARG_NAME9,				\

											ARG_TYPE10, ARG_NAME10,				\

											ARG_TYPE11, ARG_NAME11)				\





}

#endif