Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.relayirc.chatengine
Class IRCConnection  view IRCConnection download IRCConnection.java

java.lang.Object
  extended byorg.relayirc.chatengine.IRCConnection
All Implemented Interfaces:
IRCConstants, java.lang.Runnable

public class IRCConnection
extends java.lang.Object
implements java.lang.Runnable, IRCConstants

A socket connection to a RFC-1459 compatible IRC server. Parses incoming IRC messages, replies, commands and errors and notifies all listeners of such. Also provides a writeln() method for sending commands to the IRC server.

FIX: Currently, only one listener is allowed.


Nested Class Summary
private  class IRCConnection._IRCConnectionMux
           
private  class IRCConnection._tok
          Used in parsing.
 
Field Summary
private  java.lang.String _altNick
           
private  java.lang.String _fullName
           
private  java.io.BufferedReader _inputStream
           
private  IRCConnectionListener _listener
           
private  java.lang.String _localHost
           
private  java.lang.Thread _messageLoopThread
           
private  IRCConnection._IRCConnectionMux _mux
           
private  java.lang.String _nick
           
private  java.io.DataOutputStream _outputStream
           
private  int _port
           
private  java.lang.String _server
           
private  java.net.Socket _socket
           
private  int _state
           
private  java.lang.String _userName
           
static int CONNECTED
           
static int CONNECTING
           
static int DISCONNECTED
           
static int DISCONNECTING
           
 
Fields inherited from interface org.relayirc.chatengine.IRCConstants
ERR_ALREADYREGISTRED, ERR_BADCHANNELKEY, ERR_BANNEDFROMCHAN, ERR_CANNOTSENDTOCHAN, ERR_CANTKILLSERVER, ERR_CHANNELISFULL, ERR_CHANOPRIVSNEEDED, ERR_ERRONEUSNICKNAME, ERR_FILEERROR, ERR_INVITEONLYCHAN, ERR_KEYSET, ERR_NEEDMOREPARAMS, ERR_NICKCOLLISION, ERR_NICKNAMEINUSE, ERR_NOADMININFO, ERR_NOLOGIN, ERR_NOMOTD, ERR_NONICKNAMEGIVEN, ERR_NOOPERHOST, ERR_NOORIGIN, ERR_NOPERMFORHOST, ERR_NOPRIVILEGES, ERR_NORECIPIENT, ERR_NOSUCHCHANNEL, ERR_NOSUCHNICK, ERR_NOSUCHSERVER, ERR_NOTEXTTOSEND, ERR_NOTONCHANNEL, ERR_NOTOPLEVEL, ERR_NOTREGISTERED, ERR_PASSWDMISMATCH, ERR_SUMMONDISABLED, ERR_TOOMANYCHANNELS, ERR_TOOMANYTARGETS, ERR_UMODEUNKNOWNFLAG, ERR_UNKNOWNCOMMAND, ERR_UNKNOWNMODE, ERR_USERNOTINCHANNEL, ERR_USERONCHANNEL, ERR_USERSDISABLED, ERR_USERSDONTMATCH, ERR_WASNOSUCHNICK, ERR_WILDTOPLEVEL, ERR_YOUREBANNEDCREEP, RPL_ADMINEMAIL, RPL_ADMINLOC1, RPL_ADMINLOC2, RPL_ADMINME, RPL_AWAY, RPL_BANLIST, RPL_CHANNELMODEIS, RPL_CLOSEEND, RPL_CLOSING, RPL_ENDOFBANLIST, RPL_ENDOFINFO, RPL_ENDOFLINKS, RPL_ENDOFMOTD, RPL_ENDOFNAMES, RPL_ENDOFSERVICES, RPL_ENDOFSTATS, RPL_ENDOFUSERS, RPL_ENDOFWHO, RPL_ENDOFWHOIS, RPL_ENDOFWHOWAS, RPL_INFO, RPL_INFOSTART, RPL_INVITING, RPL_ISON, RPL_KILLDONE, RPL_LINKS, RPL_LIST, RPL_LISTEND, RPL_LISTSTART, RPL_LUSERCHANNELS, RPL_LUSERCLIENT, RPL_LUSERME, RPL_LUSEROP, RPL_LUSERUNKNOWN, RPL_MOTD, RPL_MOTDSTART, RPL_MYPORTIS, RPL_NAMREPLY, RPL_NONE, RPL_NOTOPIC, RPL_NOUSERS, RPL_NOWAWAY, RPL_REHASHING, RPL_SERVICE, RPL_SERVICEINFO, RPL_SERVLIST, RPL_SERVLISTEND, RPL_STATSCLINE, RPL_STATSCOMMANDS, RPL_STATSHLINE, RPL_STATSILINE, RPL_STATSKLINE, RPL_STATSLINKINFO, RPL_STATSLLINE, RPL_STATSNLINE, RPL_STATSOLINE, RPL_STATSQLINE, RPL_STATSUPTIME, RPL_STATSYLINE, RPL_SUMMONING, RPL_TIME, RPL_TOPIC, RPL_TRACECLASS, RPL_TRACECONNECTING, RPL_TRACEHANDSHAKE, RPL_TRACELINK, RPL_TRACELOG, RPL_TRACENEWTYPE, RPL_TRACEOPERATOR, RPL_TRACESERVER, RPL_TRACEUNKNOWN, RPL_TRACEUSER, RPL_UMODEIS, RPL_UNAWAY, RPL_USERHOST, RPL_USERS, RPL_USERSSTART, RPL_VERSION, RPL_WHOISCHANNELS, RPL_WHOISCHANOP, RPL_WHOISIDLE, RPL_WHOISOPERATOR, RPL_WHOISSERVER, RPL_WHOISUSER, RPL_WHOREPLY, RPL_WHOWASUSER, RPL_YOUREOPER
 
Constructor Summary
IRCConnection(java.lang.String server, int port, java.lang.String nick, java.lang.String altNick, java.lang.String userName, java.lang.String fullName)
          Construct, but do not open, an IRC connection by specifying server hostname and port of a IRC server as well as user registration information.
 
Method Summary
 void close()
          Close socket connection to IRC server and close down message loop thread.
 java.lang.String getNick()
          Get nick name currently in use.
 int getState()
          Get engine's state (see ChatEngine.DISCONNECTED, ChatEngine.CONNECTED, etc.
 boolean isConnected()
          Returns true if we are connected.
 boolean isConnecting()
          Deprecated. Use getState() instead.
 void open()
          Opens socket connection to IRC server.
private  java.lang.String parseOrgnick(java.lang.String origin)
          Parses nick name of origin
 void run()
          The main message loop.
 void sendNick(java.lang.String nick)
          Send change-nickname request to IRC server and save value as the nick name currently in use.
 void setIRCConnectionListener(IRCConnectionListener listener)
          For now, only one listener is supported.
 void setState(int state)
          Set engine's state (see ChatEngine.DISCONNECTED, ChatEngine.CONNECTED, etc.
 void writeln(java.lang.String message)
          Write directly to the IRC chat server, refer to RFC-1459 for valid commands.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CONNECTED

public static final int CONNECTED
See Also:
Constant Field Values

CONNECTING

public static final int CONNECTING
See Also:
Constant Field Values

DISCONNECTED

public static final int DISCONNECTED
See Also:
Constant Field Values

DISCONNECTING

public static final int DISCONNECTING
See Also:
Constant Field Values

_state

private int _state

_server

private java.lang.String _server

_port

private int _port

_nick

private java.lang.String _nick

_altNick

private java.lang.String _altNick

_userName

private java.lang.String _userName

_fullName

private java.lang.String _fullName

_socket

private java.net.Socket _socket

_localHost

private java.lang.String _localHost

_messageLoopThread

private java.lang.Thread _messageLoopThread

_inputStream

private java.io.BufferedReader _inputStream

_outputStream

private java.io.DataOutputStream _outputStream

_listener

private IRCConnectionListener _listener

_mux

private IRCConnection._IRCConnectionMux _mux
Constructor Detail

IRCConnection

public IRCConnection(java.lang.String server,
                     int port,
                     java.lang.String nick,
                     java.lang.String altNick,
                     java.lang.String userName,
                     java.lang.String fullName)
Construct, but do not open, an IRC connection by specifying server hostname and port of a IRC server as well as user registration information.

Method Detail

getState

public int getState()
Get engine's state (see ChatEngine.DISCONNECTED, ChatEngine.CONNECTED, etc.


setState

public void setState(int state)
Set engine's state (see ChatEngine.DISCONNECTED, ChatEngine.CONNECTED, etc.


open

public void open()
Opens socket connection to IRC server. Starts message loop thread and starts firing events to listeners.


close

public void close()
Close socket connection to IRC server and close down message loop thread.


isConnected

public boolean isConnected()
Returns true if we are connected. @deprecated Use getState() instead.


isConnecting

public boolean isConnecting()
Deprecated. Use getState() instead.

Returns true if we are waiting for a connection.


setIRCConnectionListener

public void setIRCConnectionListener(IRCConnectionListener listener)
For now, only one listener is supported.


getNick

public java.lang.String getNick()
Get nick name currently in use.


sendNick

public void sendNick(java.lang.String nick)
Send change-nickname request to IRC server and save value as the nick name currently in use.


parseOrgnick

private java.lang.String parseOrgnick(java.lang.String origin)
Parses nick name of origin


run

public void run()
The main message loop. Opens a socket connection to the IRC server, sends logon information and enters message loop. The message loop parses each incoming message into a command string or opcode and arguments and calls the appropriate method on the mux.

Specified by:
run in interface java.lang.Runnable

writeln

public void writeln(java.lang.String message)
Write directly to the IRC chat server, refer to RFC-1459 for valid commands.