#pragma once

#include <map>
#include <string>
#include "NetCli_Channel.h"

using namespace std;

class NetCli_ChannelChild : public NetCli_Channel
{
public:
	static bool _Init();
	static bool _Release();
	
	static	int					GetChannelID(const char* name);
	static	int					GetZoneChannelID(const char* name);

	virtual void R_CliConnectToChat( int ChatSockID );
	//收到Cli 轉送給 Cli的資訊
	virtual void R_ClitoCli_Data( const char* Data , int Size );

	virtual void R_CreateChannelOK( int ChannelID , const char* Name );
	virtual void R_CreateChannelFailed( const char* Name );
	virtual void R_JoinChannelOK( int ChannelID , const char* Name );
	virtual void R_JoinChannelFailed( const char* Name );
	virtual void R_LeaveChannelOK( int ChannelID );
	virtual void R_LeaveChannelFailed( int ChannelID );

	virtual void R_ChannelPlayerListResult	( GroupObjectTypeEnum Type , int ChannelID , vector<string> &Name );
	virtual void R_JoinPlayerDisabledResult ( int ChannelID , GroupObjectTypeEnum Type , bool JoinEnabled );

	//系統頻道列表
	virtual void R_SysChannel( GroupObjectTypeEnum Type , int ChannelID , char* Name );
protected:
	static	map<string, int>			s_channel;
	static	map<string, int>			s_zoneChannel;
};

