rath.msnm
Class SwitchboardSession

java.lang.Object
  |
  +--java.lang.Thread
        |
        +--rath.msnm.AbstractProcessor
              |
              +--rath.msnm.SwitchboardSession
All Implemented Interfaces:
Runnable

public class SwitchboardSession
extends AbstractProcessor

Ä£±¸µé°ú ´ëÈ­ ¶Ç´Â ÀνºÅÏÆ® ¸Þ½ÃÁö¸¦ ÁÖ°í ¹ÞÀ»¶§ Channel·Î »ç¿ëµÇ´Â SessionÀÌ´Ù. ÀÌ ¼¼¼ÇÀº »ç¿ëÀÚÀÇ ´ëÈ­°¡ ³¡³ª¸é Á¾·áµÈ´Ù.

Version:
$Id: SwitchboardSession.java,v 1.2 2002/03/04 05:30:59 xrath Exp $, since 2001/11/09
Author:
Jang-Ho Hwang, rath@xrath.com

Field Summary
 
Fields inherited from class rath.msnm.AbstractProcessor
callbackMap, in, isLive, msn, out, socket
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
SwitchboardSession(MSNMessenger msn, ServerInfo info, String sessionId)
           
 
Method Summary
 void acceptFileReceive(int cookie, File toReceive)
          »ó´ë¹æÀ¸·ÎºÎÅÍÀÇ ÆÄÀÏ ¼ö½Å ¿äûÀ» Çã¶ôÇÑ´Ù.
protected  void addMsnFriend(MsnFriend friend)
          Æ¯Á¤ »ç¿ëÀÚ¸¦ ÀÌ ¼¼¼Ç¿¡ Ãß°¡ÇÑ´Ù.
 void cleanUp()
          ½º·¹µå°¡ Á¾·áµÇ°í ½ºÆ®¸²À» ´Ý±â Á÷Àü¿¡ È£ÃâµÈ´Ù.
 void close()
          ÀÌ ¼¼¼ÇÀ» Á¾·áÇÑ´Ù.
 String getCookie()
           
 int getFriendCount()
          ÇöÀç ÀÌ ¼¼¼Ç¿¡ ¿¬°áµÇ¾îÀִ ģ±¸ÀÇ ¼ö¸¦ ¾ò¾î¿Â´Ù.
 MsnFriend getMsnFriend()
          °¡Àå ÃÖ±Ù¿¡ ÀÌ ¼¼¼Ç¿¡ µé¾î¿Â Ä£±¸¸¦ ¾ò¾î¿Â´Ù.
 Collection getMsnFriends()
           
 String getSessionId()
          ÇöÀç ¼¼¼Ç id¸¦ ¹®ÀÚ¿­ ÇüÅ·Π¹ÝÈ¯ÇØÁØ´Ù.
 int getTimeout()
          ÀÌ Channel¿¡¼­ ¾ó¸¶°£ ¾Æ¹«·± ¸Þ½ÃÁöµµ ¿À°¡Áö ¾Ê¾ÒÀ» °æ¿ì ¿¬°áÀ» Á¾·áÇÏ°Ô ÇÒ ¼ö Àִµ¥, À̰÷¿¡ Àû¿ëµÇ´Â TimeoutÀ¸·Î millisecond´ÜÀ§·Î ¾ò¾î¿Â´Ù.
 void init()
          ¼­¹ö¿ÍÀÇ ¿¬°áÀÌ ¸Î¾îÁø ÈÄ ÇØÁÖ¾î¾ß ÇÒ ÀÏÀÌ ÀÖ´Ù¸é À̰÷¿¡ ÇØÁÖµµ·Ï ÇÑ´Ù.
 boolean isInFriend(String loginName)
          ÁÖ¾îÁø loginNameÀ» °¡Áø »ç¿ëÀÚ°¡ ÀÌ ¼¼¼Ç¿¡ ¹°·ÁÀÖ´ÂÁö ¾Æ´ÑÁö È®ÀÎÇÑ´Ù.
protected  void makeConnection()
          ÇØ´ç server¿Í tcp/ip ¿¬°áÀ» ¸Î°í, ÀÔÃâ·Â ½ºÆ®¸²µéÀ» »ý¼ºÇÑ´Ù.
 void processError(Throwable e)
          ÇØ´ç Processor¿¡¼­ ¹ß»ýµÇ´Â ¸ðµç ¿¹¿Ü´Â À̰÷¿¡¼­ ó¸®ÇÑ´Ù.
protected  void processInstantMessage(IncomingMessage msg, MimeMessage mime)
          ÀνºÅÏÆ® ¸Þ½ÃÁö°¡ µµÂøÇÏ¿´À»¶§ ±× ¸Þ½ÃÁö¸¦ ó¸®ÇÏ´Â ¸Þ¼ÒµåÀÌ´Ù.
protected  void processMimeMessage(IncomingMessage msg)
           
 void processNotifyMessage(IncomingMessage msg)
          Switchboard Server·ÎºÎÅÍ notifyµÇ´Â ¸Þ½ÃÁöµéÀ» ó¸®ÇÑ´Ù.
 void processRosterInfo(IncomingMessage msg)
           
protected  void processTypingUser(IncomingMessage msg, MimeMessage mime)
          ´©±º°¡ ÀÚ½ÅÀ» ÇâÇØ ÀνºÅÏÆ® ¸Þ½ÃÁö¸¦ ³¯¸®±â À§ÇØ Å°º¸µå¸¦ ´Ù´Ú´Ù´Ú µÎµé±â°í ÀÖÀ»¶§ Á¾Á¾ ³¯¶ó¿À´Â ¸Þ½ÃÁöÀÌ´Ù.
protected  void processWhoJoined(IncomingMessage msg)
           
 void rejectFileReceive(int cookie)
          »ó´ë¹æÀ¸·ÎºÎÅÍÀÇ ÆÄÀÏ ¼ö½Å ¿äûÀ» °ÅÀýÇÑ´Ù.
protected  MsnFriend removeMsnFriend(String loginName)
          Æ¯Á¤ loginNameÀ» °¡Áø »ç¿ëÀÚ¸¦ ÀÌ ¼¼¼Ç¿¡¼­ Á¦°ÅÇÑ´Ù.
 void sendFileRequest(ToSendFile file, FileTransferMessage mime)
          ÀÌ ¼¼¼Ç¿¡ ¹°¸° »ç¶÷¿¡°Ô ÆÄÀÏÀ» Àü¼ÛÇϰڴٴ ¸Þ½ÃÁö¸¦ º¸³½´Ù.
 void sendInstantMessage(MimeMessage mime)
          ÀνºÅϽº ¸Þ½ÃÁö¸¦ Àü¼ÛÇÑ´Ù.
 void sendMessage(MimeMessage mime)
          ÀÌ ¼¼¼Ç¿¡ ÀÖ´Â ¸ðµç »ç¶÷¿¡°Ô ¸Þ½ÃÁö¸¦ º¸³½´Ù.
 void sendTypingMessage(MimeMessage mime)
          Å¸ÀÌÇÎ ÁßÀ̶ó´Â ¸Þ½ÃÁö¸¦ Àü¼ÛÇÑ´Ù.
 void setCookie(String cookie)
           
 void setSessionId(String sessionId)
          ÇöÀç ¼¼¼ÇÀÇ id¸¦ ¹®ÀÚ¿­ ÇüÅ·Π¼³Á¤ÇÑ´Ù.
 void setTimeout(int timeout)
          ÀÌ Channel¿¡¼­ ¾ó¸¶°£ ¾Æ¹«·± ¸Þ½ÃÁöµµ ¿À°¡Áö ¾Ê¾ÒÀ» °æ¿ì ¿¬°áÀ» Á¾·áÇÏ°Ô ÇÒ ¼ö Àִµ¥, À̰÷¿¡ Àû¿ëµÇ´Â TimeoutÀ¸·Î millisecond´ÜÀ§·Î ¼³Á¤ÇÑ´Ù.
 
Methods inherited from class rath.msnm.AbstractProcessor
getCurrentTransactionId, getServerName, isAutoOutSend, lookupMethod, markTransactionId, processMessage, registerCallback, removeInfiniteTransactionId, run, sendCHLResponse, sendMessage, sendMimeMessage, setAutoOutSend, setServerName
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getContextClassLoader, getName, getPriority, getThreadGroup, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setName, setPriority, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SwitchboardSession

public SwitchboardSession(MSNMessenger msn,
                          ServerInfo info,
                          String sessionId)
Method Detail

getSessionId

public String getSessionId()
ÇöÀç ¼¼¼Ç id¸¦ ¹®ÀÚ¿­ ÇüÅ·Π¹ÝÈ¯ÇØÁØ´Ù.


setSessionId

public void setSessionId(String sessionId)
ÇöÀç ¼¼¼ÇÀÇ id¸¦ ¹®ÀÚ¿­ ÇüÅ·Π¼³Á¤ÇÑ´Ù.


getCookie

public String getCookie()

setCookie

public void setCookie(String cookie)

makeConnection

protected void makeConnection()
                       throws IOException
Description copied from class: AbstractProcessor
ÇØ´ç server¿Í tcp/ip ¿¬°áÀ» ¸Î°í, ÀÔÃâ·Â ½ºÆ®¸²µéÀ» »ý¼ºÇÑ´Ù. ÇöÀç´Â UTF-8 ÀÎÄÚµùÀ» ±âº»ÀûÀ¸·Î Çϵµ·Ï µÇ¾îÀÖ´Ù.

Overrides:
makeConnection in class AbstractProcessor
IOException

setTimeout

public void setTimeout(int timeout)
ÀÌ Channel¿¡¼­ ¾ó¸¶°£ ¾Æ¹«·± ¸Þ½ÃÁöµµ ¿À°¡Áö ¾Ê¾ÒÀ» °æ¿ì ¿¬°áÀ» Á¾·áÇÏ°Ô ÇÒ ¼ö Àִµ¥, À̰÷¿¡ Àû¿ëµÇ´Â TimeoutÀ¸·Î millisecond´ÜÀ§·Î ¼³Á¤ÇÑ´Ù.

Parameters:
timeout - millisecond´ÜÀ§ÀÇ SO_TIMEOUT

getTimeout

public int getTimeout()
ÀÌ Channel¿¡¼­ ¾ó¸¶°£ ¾Æ¹«·± ¸Þ½ÃÁöµµ ¿À°¡Áö ¾Ê¾ÒÀ» °æ¿ì ¿¬°áÀ» Á¾·áÇÏ°Ô ÇÒ ¼ö Àִµ¥, À̰÷¿¡ Àû¿ëµÇ´Â TimeoutÀ¸·Î millisecond´ÜÀ§·Î ¾ò¾î¿Â´Ù.

default·Î 180000(3ºÐ)À¸·Î ¼³Á¤µÇ¾îÀÖ´Ù.


init

public void init()
          throws IOException
Description copied from class: AbstractProcessor
¼­¹ö¿ÍÀÇ ¿¬°áÀÌ ¸Î¾îÁø ÈÄ ÇØÁÖ¾î¾ß ÇÒ ÀÏÀÌ ÀÖ´Ù¸é À̰÷¿¡ ÇØÁÖµµ·Ï ÇÑ´Ù.

Specified by:
init in class AbstractProcessor
IOException

addMsnFriend

protected void addMsnFriend(MsnFriend friend)
ƯÁ¤ »ç¿ëÀÚ¸¦ ÀÌ ¼¼¼Ç¿¡ Ãß°¡ÇÑ´Ù.


getMsnFriend

public MsnFriend getMsnFriend()
°¡Àå ÃÖ±Ù¿¡ ÀÌ ¼¼¼Ç¿¡ µé¾î¿Â Ä£±¸¸¦ ¾ò¾î¿Â´Ù.


isInFriend

public boolean isInFriend(String loginName)
ÁÖ¾îÁø loginNameÀ» °¡Áø »ç¿ëÀÚ°¡ ÀÌ ¼¼¼Ç¿¡ ¹°·ÁÀÖ´ÂÁö ¾Æ´ÑÁö È®ÀÎÇÑ´Ù.


removeMsnFriend

protected MsnFriend removeMsnFriend(String loginName)
ƯÁ¤ loginNameÀ» °¡Áø »ç¿ëÀÚ¸¦ ÀÌ ¼¼¼Ç¿¡¼­ Á¦°ÅÇÑ´Ù.


getMsnFriends

public Collection getMsnFriends()

getFriendCount

public int getFriendCount()
ÇöÀç ÀÌ ¼¼¼Ç¿¡ ¿¬°áµÇ¾îÀִ ģ±¸ÀÇ ¼ö¸¦ ¾ò¾î¿Â´Ù. ÀÚ±â ÀÚ½ÅÀº ÀÌ ¼ýÀÚ¿¡¼­ Á¦¿ÜµÈ´Ù.


processMimeMessage

protected void processMimeMessage(IncomingMessage msg)
                           throws Exception
Exception

processWhoJoined

protected void processWhoJoined(IncomingMessage msg)
                         throws Exception
Exception

processNotifyMessage

public void processNotifyMessage(IncomingMessage msg)
                          throws Exception
Switchboard Server·ÎºÎÅÍ notifyµÇ´Â ¸Þ½ÃÁöµéÀ» ó¸®ÇÑ´Ù.

Overrides:
processNotifyMessage in class AbstractProcessor
Exception

cleanUp

public void cleanUp()
½º·¹µå°¡ Á¾·áµÇ°í ½ºÆ®¸²À» ´Ý±â Á÷Àü¿¡ È£ÃâµÈ´Ù.

Specified by:
cleanUp in class AbstractProcessor

close

public void close()
           throws IOException
ÀÌ ¼¼¼ÇÀ» Á¾·áÇÑ´Ù.

IOException

processRosterInfo

public void processRosterInfo(IncomingMessage msg)
                       throws IOException
IOException

processTypingUser

protected void processTypingUser(IncomingMessage msg,
                                 MimeMessage mime)
                          throws IOException
´©±º°¡ ÀÚ½ÅÀ» ÇâÇØ ÀνºÅÏÆ® ¸Þ½ÃÁö¸¦ ³¯¸®±â À§ÇØ Å°º¸µå¸¦ ´Ù´Ú´Ù´Ú µÎµé±â°í ÀÖÀ»¶§ Á¾Á¾ ³¯¶ó¿À´Â ¸Þ½ÃÁöÀÌ´Ù.

IOException

processInstantMessage

protected void processInstantMessage(IncomingMessage msg,
                                     MimeMessage mime)
                              throws IOException
ÀνºÅÏÆ® ¸Þ½ÃÁö°¡ µµÂøÇÏ¿´À»¶§ ±× ¸Þ½ÃÁö¸¦ ó¸®ÇÏ´Â ¸Þ¼ÒµåÀÌ´Ù.

IOException

sendMessage

public void sendMessage(MimeMessage mime)
                 throws IOException
ÀÌ ¼¼¼Ç¿¡ ÀÖ´Â ¸ðµç »ç¶÷¿¡°Ô ¸Þ½ÃÁö¸¦ º¸³½´Ù.

IOException

sendFileRequest

public void sendFileRequest(ToSendFile file,
                            FileTransferMessage mime)
                     throws IOException
ÀÌ ¼¼¼Ç¿¡ ¹°¸° »ç¶÷¿¡°Ô ÆÄÀÏÀ» Àü¼ÛÇϰڴٴ ¸Þ½ÃÁö¸¦ º¸³½´Ù.

IOException

acceptFileReceive

public void acceptFileReceive(int cookie,
                              File toReceive)
                       throws IOException
»ó´ë¹æÀ¸·ÎºÎÅÍÀÇ ÆÄÀÏ ¼ö½Å ¿äûÀ» Çã¶ôÇÑ´Ù.

Parameters:
cookie - ÆÄÀÏ ÃÊû½Ã ¹Þ¾Ò´ø Äí۰ª.
toReceive - ´Ù¿î·ÎµåÇÒ ³»¿ëÀÌ ÀúÀåµÉ ÆÄÀÏ.
IOException

rejectFileReceive

public void rejectFileReceive(int cookie)
                       throws IOException
»ó´ë¹æÀ¸·ÎºÎÅÍÀÇ ÆÄÀÏ ¼ö½Å ¿äûÀ» °ÅÀýÇÑ´Ù.

Parameters:
cookie - ÆÄÀÏ ÃÊû½Ã ¹Þ¾Ò´ø Äí۰ª.
IOException

sendTypingMessage

public void sendTypingMessage(MimeMessage mime)
                       throws IOException
ŸÀÌÇÎ ÁßÀ̶ó´Â ¸Þ½ÃÁö¸¦ Àü¼ÛÇÑ´Ù.

IOException

sendInstantMessage

public void sendInstantMessage(MimeMessage mime)
                        throws IOException
ÀνºÅϽº ¸Þ½ÃÁö¸¦ Àü¼ÛÇÑ´Ù.

IOException

processError

public void processError(Throwable e)
Description copied from class: AbstractProcessor
ÇØ´ç Processor¿¡¼­ ¹ß»ýµÇ´Â ¸ðµç ¿¹¿Ü´Â À̰÷¿¡¼­ ó¸®ÇÑ´Ù. ¸¸¾à »ö´Ù¸¥ 󸮸¦ ÇÏ°í ½Í´Ù¸é, overridingÇ϶ó.

Overrides:
processError in class AbstractProcessor