	public:
		int userid;
		int aid;
		int zoneid;
		int title;
		Octets rolename;
		int netbarid;
		int netbarzone;
		Octets netbarname;
		int netbarlevel;
		Octets netbartitle;
		Octets awardtype;
		int reserved1;
		int reserved2;
		enum { PROTOCOL_TYPE = PROTOCOL_NETBARANNOUNCE };
	public:
		NetBarAnnounce() { type = PROTOCOL_NETBARANNOUNCE; }
		NetBarAnnounce(void*) : Protocol(PROTOCOL_NETBARANNOUNCE) { }
		NetBarAnnounce (int l_userid,int l_aid,int l_zoneid,
			int l_title,Octets l_rolename,int l_netbarid,
			int l_netbarzone,Octets l_netbarname,int l_netbarlevel,
			Octets l_netbartitle,Octets l_awardtype,int l_reserved1,
			int l_reserved2)
			 : userid(l_userid),aid(l_aid),zoneid(l_zoneid)
			,title(l_title),rolename(l_rolename),netbarid(l_netbarid)
			,netbarzone(l_netbarzone),netbarname(l_netbarname),netbarlevel(l_netbarlevel)
			,netbartitle(l_netbartitle),awardtype(l_awardtype),reserved1(l_reserved1)
			,reserved2(l_reserved2)
		{
			type = PROTOCOL_NETBARANNOUNCE;
		}

		NetBarAnnounce(const NetBarAnnounce &rhs)
			: Protocol(rhs),userid(rhs.userid),aid(rhs.aid),zoneid(rhs.zoneid)
			,title(rhs.title),rolename(rhs.rolename),netbarid(rhs.netbarid)
			,netbarzone(rhs.netbarzone),netbarname(rhs.netbarname),netbarlevel(rhs.netbarlevel)
			,netbartitle(rhs.netbartitle),awardtype(rhs.awardtype),reserved1(rhs.reserved1)
			,reserved2(rhs.reserved2) { }

		GNET::Protocol *Clone() const { return new NetBarAnnounce(*this); }

		OctetsStream& marshal(OctetsStream & os) const
		{
			os << userid;
			os << aid;
			os << zoneid;
			os << title;
			os << rolename;
			os << netbarid;
			os << netbarzone;
			os << netbarname;
			os << netbarlevel;
			os << netbartitle;
			os << awardtype;
			os << reserved1;
			os << reserved2;
			return os;
		}

		const OctetsStream& unmarshal(const OctetsStream &os)
		{
			os >> userid;
			os >> aid;
			os >> zoneid;
			os >> title;
			os >> rolename;
			os >> netbarid;
			os >> netbarzone;
			os >> netbarname;
			os >> netbarlevel;
			os >> netbartitle;
			os >> awardtype;
			os >> reserved1;
			os >> reserved2;
			return os;
		}

		int PriorPolicy( ) const { return 3; }

		bool SizePolicy(size_t size) const { return size <= 1024; }
