java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/chat/Spojeni.java
author František Kučera <franta-hg@frantovo.cz>
Wed Jun 30 00:26:14 2010 +0200 (2010-06-30)
changeset 149 8238cdb4113a
child 151 d7b5099bf65e
permissions -rw-r--r--
XMPP chat – první verze.
     1 package cz.frantovo.nekurak.chat;
     2 
     3 import java.util.ArrayList;
     4 import java.util.Collection;
     5 import java.util.logging.Level;
     6 import java.util.logging.Logger;
     7 import org.jivesoftware.smack.ConnectionConfiguration;
     8 import org.jivesoftware.smack.XMPPConnection;
     9 import org.jivesoftware.smack.XMPPException;
    10 
    11 /**
    12  *
    13  * @author fiki
    14  */
    15 public class Spojeni {
    16 
    17 	private XMPPConnection spojeni;
    18 	private Collection<MistnostPripojena> mistnosti = new ArrayList<MistnostPripojena>();
    19 	private static final Logger log = Logger.getLogger(Spojeni.class.getSimpleName());
    20 
    21 	public Spojeni(UcetRobota ucet) throws XMPPException {
    22 		/** Navážeme spojení */
    23 		ConnectionConfiguration nastaveni = new ConnectionConfiguration(ucet.getAdresaServeru(), ucet.getPort(), ucet.getDomena());
    24 		spojeni = new XMPPConnection(nastaveni);
    25 		spojeni.connect();
    26 		spojeni.login(ucet.getUzivatelskeJmeno(), ucet.getUzivatelskeHeslo(), ucet.getProstredek());
    27 
    28 		/** Vstoupíme do místností */
    29 		for (Mistnost m : ucet.getMistnosti()) {
    30 			MistnostPripojena mp = new MistnostPripojena(m, this);
    31 			mistnosti.add(mp);
    32 		}
    33 	}
    34 
    35 	public void odpoj() {
    36 		/** Rozloučíme se ve všech místnostech */
    37 		try {
    38 			for (MistnostPripojena mp : mistnosti) {
    39 				mp.odejdi();
    40 			}
    41 		} catch (Exception e) {
    42 			log.log(Level.WARNING, "Nepodařilo se odejít z místnosti před ukončením spojení.", e);
    43 		}
    44 
    45 		/** Ukončíme spojení */
    46 		spojeni.disconnect();
    47 	}
    48 
    49 	public XMPPConnection getSpojeni() {
    50 		return spojeni;
    51 	}
    52 
    53 	public Collection<MistnostPripojena> getMistnosti() {
    54 		return mistnosti;
    55 	}
    56 }