#ifndef __GNET_GWEBTRADEROLEBRIEFEXTEND_RPCDATA
#define __GNET_GWEBTRADEROLEBRIEFEXTEND_RPCDATA

#include "rpcdefs.h"


namespace GNET
{
	class GWebTradeRoleBriefExtend : public GNET::Rpc::Data
	{
	public:
		Octets meridian_data;
		Octets card_leadership;
		Octets fate_ring_data;
		Octets title_data;
		Octets astrolabe_data;
		Octets shopping_consume_vip_data;
		int reserved3;
		int reserved4;
		int reserved5;
		int reserved6;

	public:
		GWebTradeRoleBriefExtend (const Octets& l_meridian_data = Octets(),const Octets& l_card_leadership = Octets(),const Octets& l_fate_ring_data = Octets()
			,const Octets& l_title_data = Octets(),const Octets& l_astrolabe_data = Octets(),const Octets& l_shopping_consume_vip_data = Octets()
			,int l_reserved3 = 0,int l_reserved4 = 0,int l_reserved5 = 0
			,int l_reserved6 = 0)
			: meridian_data(l_meridian_data),card_leadership(l_card_leadership),fate_ring_data(l_fate_ring_data)
			,title_data(l_title_data),astrolabe_data(l_astrolabe_data),shopping_consume_vip_data(l_shopping_consume_vip_data)
			,reserved3(l_reserved3),reserved4(l_reserved4),reserved5(l_reserved5)
			,reserved6(l_reserved6)
		{
		}

		GWebTradeRoleBriefExtend(const GWebTradeRoleBriefExtend &rhs)
			: meridian_data(rhs.meridian_data),card_leadership(rhs.card_leadership),fate_ring_data(rhs.fate_ring_data),
			title_data(rhs.title_data),astrolabe_data(rhs.astrolabe_data),shopping_consume_vip_data(rhs.shopping_consume_vip_data),
			reserved3(rhs.reserved3),reserved4(rhs.reserved4),reserved5(rhs.reserved5),
			reserved6(rhs.reserved6) { }

		Rpc::Data *Clone() const { return new GWebTradeRoleBriefExtend(*this); }

		Rpc::Data& operator = (const Rpc::Data &rhs)
		{
			const GWebTradeRoleBriefExtend *r = dynamic_cast<const GWebTradeRoleBriefExtend *>(&rhs);
			if (r && r != this)
			{
				meridian_data = r->meridian_data;
				card_leadership = r->card_leadership;
				fate_ring_data = r->fate_ring_data;
				title_data = r->title_data;
				astrolabe_data = r->astrolabe_data;
				shopping_consume_vip_data = r->shopping_consume_vip_data;
				reserved3 = r->reserved3;
				reserved4 = r->reserved4;
				reserved5 = r->reserved5;
				reserved6 = r->reserved6;
			}
			return *this;
		}

		GWebTradeRoleBriefExtend& operator = (const GWebTradeRoleBriefExtend &rhs)
		{
			const GWebTradeRoleBriefExtend *r = &rhs;
			if (r && r != this)
			{
				meridian_data = r->meridian_data;
				card_leadership = r->card_leadership;
				fate_ring_data = r->fate_ring_data;
				title_data = r->title_data;
				astrolabe_data = r->astrolabe_data;
				shopping_consume_vip_data = r->shopping_consume_vip_data;
				reserved3 = r->reserved3;
				reserved4 = r->reserved4;
				reserved5 = r->reserved5;
				reserved6 = r->reserved6;
			}
			return *this;
		}

		OctetsStream& marshal(OctetsStream & os) const
		{
			os << meridian_data;
			os << card_leadership;
			os << fate_ring_data;
			os << title_data;
			os << astrolabe_data;
			os << shopping_consume_vip_data;
			os << reserved3;
			os << reserved4;
			os << reserved5;
			os << reserved6;
			return os;
		}

		const OctetsStream& unmarshal(const OctetsStream &os)
		{
			os >> meridian_data;
			os >> card_leadership;
			os >> fate_ring_data;
			os >> title_data;
			os >> astrolabe_data;
			os >> shopping_consume_vip_data;
			os >> reserved3;
			os >> reserved4;
			os >> reserved5;
			os >> reserved6;
			return os;
		}

	};
};
#endif
