rath.msnm
Class NotificationProcessor

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

public class NotificationProcessor
extends AbstractProcessor
implements UserStatus

NS ¼­¹ö¿Í ÀÏ»ýÀ» °°ÀÌÇÏ´Â ÇÁ·Î¼¼¼­

Version:
$Id: NotificationProcessor.java,v 1.1.1.1 2002/03/03 21:32:35 xrath Exp $, since 2001/11/07
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
 
Fields inherited from interface rath.msnm.UserStatus
AWAY_FROM_COMPUTER, BE_RIGHT_BACK, BUSY, IDLE, INVISIBLE, OFFLINE, ON_THE_LUNCH, ON_THE_PHONE, ONLINE
 
Constructor Summary
NotificationProcessor(MSNMessenger msn, ServerInfo info)
           
NotificationProcessor(MSNMessenger msn, ServerInfo info, int trId)
           
 
Method Summary
protected  void acceptRinging(IncomingMessage msg)
          ÀüÈ­ ¹Þ°í Switchboard Server¿Í ¼¼¼ÇÀ» ¿¬°áÇÑ´Ù.
 void cleanUp()
          ½º·¹µå°¡ Á¾·áµÇ°í ½ºÆ®¸²À» ´Ý±â Á÷Àü¿¡ È£ÃâµÈ´Ù.
 void connectToSwitchboard(IncomingMessage msg)
          ´ëÈ­¸¦ ¿¬°áÇϱâ À§ÇØ NS·Î ¹ÞÀº »õ·Î¿î SSÀÇ ÁÖ¼Ò¸¦ °¡Áö°í SS¿¡ Á¢¼ÓÇϰí Calling¿äûÀ» ½ÃÀÛÇÑ´Ù.
 void doCallFriend(String loginName)
          ÁÖ¾îÁø loginName¿¡°Ô ´ëÈ­¿äû ÇÁ·Î¼¼½º¸¦ ½ÃÀÛÇÑ´Ù.
 SwitchboardSession doCallFriendWait(String loginName)
          ÁÖ¾îÁø loginName¿¡µ¥ ´ëÈ­¿äû ÇÁ·Î¼¼½º¸¦ ½ÃÀÛÇϰí, ¼¼¼ÇÀÌ ¿¬°áµÉ¶§±îÁö °è¼Ó ±â´Ù¸°´Ù.
 void doCollectList(IncomingMessage msg)
          LST ¸Þ½ÃÁö¸¦ ¼öÁýÇÑ´Ù.
 String getMyStatus()
           
 void init()
          DS¿ÍÀÇ ¿¬°áÀÌ ¸Î¾îÁ³À¸´Ï, Åë½ÅÀ» ½ÃÀÛÇϱâ À§ÇØ Version Á¤º¸¸¦ º¸³»´Â ÀÏÀ» ÇÏ°Ô µÈ´Ù.
 void judgeSerial(IncomingMessage msg)
          NSÀÇ SYN ÀÀ´äÀ» ¹Þ¾ÒÀ»¶§ È£ÃâµÇ¸ç, ClientÀÇ serial°ú ServerÀÇ serialÀÇ °ªÀÌ ´Ù¸¦ °æ¿ì RL°ú FLÀ» List-upÇÏ¿© sync¸¦ ¸ÂÃá´Ù.
 void logout()
          NS¿¡°Ô OUTÄڵ带 Àü¼ÛÇÏ°í ¿¬°áÀ» Á¾·áÇÑ´Ù.
 void processAuth(IncomingMessage msg)
           
 void processINF(IncomingMessage msg)
           
 void processLogon(IncomingMessage msg)
           
 void processMessage(IncomingMessage msg)
          ¼­¹ö·ÎºÎÅÍ µµÂøÇÏ´Â ¸Þ½ÃÁö (ÀϹæÀûÀÎ push°¡ ¾Æ´Ñ)¸¦ ó¸®ÇÏ´Â ºÎºÐÀÌ´Ù.
 void processNotifyMessage(IncomingMessage msg)
          Server·ÎºÎÅÍ ÀϹæÀûÀ¸·Î notifyµÇ´Â ¸Þ½ÃÁöµéÀ» ó¸®ÇÏ´Â ºÎºÐÀÌ´Ù.
 void processRename(IncomingMessage msg)
           
 void processVER(IncomingMessage msg)
           
 void requestAdd(String loginName)
           
 void requestRemove(String loginName)
           
 void responseAdd(IncomingMessage msg)
           
 void responseRemove(IncomingMessage msg)
           
 void setMyFriendlyName(String newName)
           
 void setMyStatus(String code)
          ÀÚ½ÅÀÇ »óŸ¦ º¯°æÇÑ´Ù.
 void start()
          ÇÁ·Î¼¼¼­ thread¸¦ ½ÃÀÛÇÑ´Ù.
 
Methods inherited from class rath.msnm.AbstractProcessor
getCurrentTransactionId, getServerName, isAutoOutSend, lookupMethod, makeConnection, markTransactionId, processError, 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, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

NotificationProcessor

public NotificationProcessor(MSNMessenger msn,
                             ServerInfo info)

NotificationProcessor

public NotificationProcessor(MSNMessenger msn,
                             ServerInfo info,
                             int trId)
Method Detail

init

public void init()
          throws IOException
DS¿ÍÀÇ ¿¬°áÀÌ ¸Î¾îÁ³À¸´Ï, Åë½ÅÀ» ½ÃÀÛÇϱâ À§ÇØ Version Á¤º¸¸¦ º¸³»´Â ÀÏÀ» ÇÏ°Ô µÈ´Ù.

Specified by:
init in class AbstractProcessor
IOException

processMessage

public void processMessage(IncomingMessage msg)
                    throws Exception
Description copied from class: AbstractProcessor
¼­¹ö·ÎºÎÅÍ µµÂøÇÏ´Â ¸Þ½ÃÁö (ÀϹæÀûÀÎ push°¡ ¾Æ´Ñ)¸¦ ó¸®ÇÏ´Â ºÎºÐÀÌ´Ù.

Overrides:
processMessage in class AbstractProcessor
Exception

processNotifyMessage

public void processNotifyMessage(IncomingMessage msg)
                          throws Exception
Description copied from class: AbstractProcessor
Server·ÎºÎÅÍ ÀϹæÀûÀ¸·Î notifyµÇ´Â ¸Þ½ÃÁöµéÀ» ó¸®ÇÏ´Â ºÎºÐÀÌ´Ù. ÀÌ ¸Þ¼Òµå¸¦ Á÷Á¢ È£ÃâÇÏÁö´Â ¸»µµ·Ï Ç϶ó.

Overrides:
processNotifyMessage in class AbstractProcessor
Exception

acceptRinging

protected void acceptRinging(IncomingMessage msg)
                      throws IOException
ÀüÈ­ ¹Þ°í Switchboard Server¿Í ¼¼¼ÇÀ» ¿¬°áÇÑ´Ù. ¾Ë¾Æ¼­ Internal session hashmap¿¡ ÀúÀåµÉ °ÍÀÌ´Ù.

IOException

processVER

public void processVER(IncomingMessage msg)
                throws Exception
Exception

processINF

public void processINF(IncomingMessage msg)
                throws Exception
Exception

processAuth

public void processAuth(IncomingMessage msg)
                 throws Exception
Exception

processLogon

public void processLogon(IncomingMessage msg)
                  throws Exception
Exception

judgeSerial

public void judgeSerial(IncomingMessage msg)
                 throws IOException
NSÀÇ SYN ÀÀ´äÀ» ¹Þ¾ÒÀ»¶§ È£ÃâµÇ¸ç, ClientÀÇ serial°ú ServerÀÇ serialÀÇ °ªÀÌ ´Ù¸¦ °æ¿ì RL°ú FLÀ» List-upÇÏ¿© sync¸¦ ¸ÂÃá´Ù.

IOException

doCollectList

public void doCollectList(IncomingMessage msg)
                   throws IOException
LST ¸Þ½ÃÁö¸¦ ¼öÁýÇÑ´Ù.

IOException

setMyStatus

public void setMyStatus(String code)
                 throws IOException
ÀÚ½ÅÀÇ »óŸ¦ º¯°æÇÑ´Ù. º¯°æ°¡´ÉÇÑ »óÅÂÄÚµå´Â UserStatus ÀÎÅÍÆäÀ̽º¿¡ Á¤ÀÇµÈ °Í¸¸À» »ç¿ëÇÏ¿©¾ß¸¸ ÇÑ´Ù.

IOException

getMyStatus

public String getMyStatus()

setMyFriendlyName

public void setMyFriendlyName(String newName)
                       throws IOException
IOException

processRename

public void processRename(IncomingMessage msg)
                   throws IOException
IOException

start

public void start()
ÇÁ·Î¼¼¼­ thread¸¦ ½ÃÀÛÇÑ´Ù.

Overrides:
start in class Thread

doCallFriend

public void doCallFriend(String loginName)
                  throws IOException
ÁÖ¾îÁø loginName¿¡°Ô ´ëÈ­¿äû ÇÁ·Î¼¼½º¸¦ ½ÃÀÛÇÑ´Ù.

IOException

requestAdd

public void requestAdd(String loginName)
                throws IOException
IOException

responseAdd

public void responseAdd(IncomingMessage msg)
                 throws IOException
IOException

requestRemove

public void requestRemove(String loginName)
                   throws IOException
IOException

responseRemove

public void responseRemove(IncomingMessage msg)
                    throws IOException
IOException

doCallFriendWait

public SwitchboardSession doCallFriendWait(String loginName)
                                    throws IOException,
                                           InterruptedException
ÁÖ¾îÁø loginName¿¡µ¥ ´ëÈ­¿äû ÇÁ·Î¼¼½º¸¦ ½ÃÀÛÇϰí, ¼¼¼ÇÀÌ ¿¬°áµÉ¶§±îÁö °è¼Ó ±â´Ù¸°´Ù.

Returns:
¿¬°áµÈ SwitchboardSession
IOException
InterruptedException
Since:
2002/01/07, rath@xrath.com

connectToSwitchboard

public void connectToSwitchboard(IncomingMessage msg)
                          throws IOException
´ëÈ­¸¦ ¿¬°áÇϱâ À§ÇØ NS·Î ¹ÞÀº »õ·Î¿î SSÀÇ ÁÖ¼Ò¸¦ °¡Áö°í SS¿¡ Á¢¼ÓÇϰí Calling¿äûÀ» ½ÃÀÛÇÑ´Ù.

IOException

cleanUp

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

Specified by:
cleanUp in class AbstractProcessor

logout

public void logout()
            throws IOException
NS¿¡°Ô OUTÄڵ带 Àü¼ÛÇÏ°í ¿¬°áÀ» Á¾·áÇÑ´Ù.

IOException