package client;

import java.util.Vector;

import chat.Chatroom;
import chat.TopicsManager;
import net.Message;
import net.TCPClient;
import net.Message.Header;

public class ClientTopicsManager extends TCPClient implements TopicsManager {
	@Override
	public void createTopic(String topic) {
		Message message = new Message(Header.CREATE_TOPIC, topic);
		try {
			sendMessage(message);
		} catch (Exception e) {
			System.out.println(e);
			e.printStackTrace();
		}
	}

	@Override
	public Chatroom joinTopic(String topic) {
		Message message = new Message(Header.JOIN_TOPIC, topic);
		try {
			sendMessage(message);
			Message answer = getMessage();
			Integer port = Integer.valueOf(answer.getData().get(0));
			ClientChatroom chatroom = new ClientChatroom();
			chatroom.setServer(getAdr(), port);
			chatroom.connect();
			Thread thread = new Thread(chatroom);
			thread.start();
			return chatroom;
		} catch (Exception e) {
			System.out.println(e);
			e.printStackTrace();
			return null;
		}
		
	}

	@Override
	public Vector<String> listTopics() {
		Message message = new Message(Header.LIST_TOPIC);
		Vector<String> topics = null;
		try {
			//System.out.println("nous envoyons un message");
			sendMessage(message);
			//System.out.println("message envoy�, nous attendons une r�ponse");
			Message answer = getMessage();
			topics = answer.getData();
			System.out.println("liste des topic" + topics);
		} catch (Exception e) {
			System.out.println(e);
			e.printStackTrace();
		}
		return topics;
	}

}
