package client;

import java.io.IOException;
import java.util.Vector;

import protocol.Message;
import protocol.TCPClientMessage;
import protocol.Header.MsgType;

import chat.ChatRoom;
import chat.GestTopics;

public class ClientGestTopics extends TCPClientMessage implements GestTopics {

	public Vector<String> listerTopics() {
		try {
			sendMessage(new Message(MsgType.LISTE_TOPICS));
			Message reply = getMessage();
			if (reply.head.type == MsgType.LISTE_TOPICS ) {
				return reply.data;
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}

	public void creerTopic(String topic) {
		try {
			sendMessage(new Message(MsgType.CREATE_TOPIC,topic));
			Message reply = getMessage();
			if (reply.head.type == MsgType.ACK_OK ) {
				return;
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public ChatRoom rejoindreTopic(String topic) {
		try {
			sendMessage(new Message(MsgType.JOIN_TOPIC,topic));
			Message reply = getMessage();
			if (reply.head.type == MsgType.TOPIC_ADR ) {
				ClientGestChatRoom cr = new ClientGestChatRoom (topic);
				cr.setServer(servAdr, Integer.parseInt(reply.data.get(0)));
				cr.connect();
				return cr;
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}

}
