rath.msnm.event
Class MsnAdapter

java.lang.Object
  |
  +--rath.msnm.event.MsnAdapter
All Implemented Interfaces:
EventListener, MsnListener

public class MsnAdapter
extends Object
implements MsnListener

비동기적으로 MSN Server에서 도착하는 메시지 이벤트들을 처리할 수 있는 이벤트 리스너 인터페이스를 구현한 텅빈 클래스이다.

Version:
$Id: MsnAdapter.java,v 1.1.1.1 2002/03/03 21:32:36 xrath Exp $, since 2001/11/09
Author:
Jang-Ho Hwang, rath@xrath.com

Constructor Summary
MsnAdapter()
           
 
Method Summary
 void addFailed(int errorCode)
          사용자 등록을 실패하였을때 발송되는 이벤트이다.
 void buddyListModified()
          BuddyList가 수정되어 Serial number가 변경된 직 후, 발송되는 이벤트이다.
 void filePosted(SwitchboardSession ss, int cookie, String filename, int filesize)
          누군가가 자신에게 파일을 보내려고 함을 알려주는 메소드이다.
 void fileReceiveError(VolatileDownloader downloader, Throwable e)
          파일을 수신하던중 예외가 발생하였음을 알려주는 메소드이다.
 void fileReceiveStarted(VolatileDownloader downloader)
          파일 다운로드 작업이 시작되었음을 알려준다.
 void fileSendAccepted(SwitchboardSession ss, int cookie)
          보내려고 했던 파일에 대하여 상대방이 Accept해주었음을 알려주는 메소드이다.
 void fileSendError(VolatileTransferServer server, Throwable e)
          파일을 송신하던중 예외가 발생하였음을 알려주는 메소드이다.
 void fileSendRejected(SwitchboardSession ss, int cookie, String reason)
          보내려고 했던 파일에 대하여 상대방이 Reject했음을 알려주는 메소드이다.
 void fileSendStarted(VolatileTransferServer server)
          파일 보내기 작업이 시작되었음을 알려준다.
 void instantMessageReceived(SwitchboardSession ss, MsnFriend friend, MimeMessage mime)
          특정 Switchboard session에서 인스턴트 메시지를 받았을때 불려진다.
 void listOnline(MsnFriend friend)
          로그인 한 후, 상태를 온라인으로 바꾸었을때, 자신의 Contact list에 있는 사용자중에 상태가 Online(혹은 substate)인 사용자들을 이 메소드를 통해 임의의 길이로 날려준다.
 void loginComplete(MsnFriend own)
          로그인이 완료되었다는 메시지이다.
 void loginError()
          존재하지 않는 아이디이거나, 비밀번호가 틀렸을 경우, 이 이벤트를 발송하고, 연결은 종료된다.
 void progressTyping(SwitchboardSession ss, MsnFriend friend, String typingUser)
          특정 Switchboard session에서 typingUser사용자가 메시지를 입력하는 중일때 발송될때 불려진다.
 void renameNotify(MsnFriend friend)
          친숙한 이름(FriendlyName)이 변경되었을때 발송되는 이벤트이다.
 void switchboardSessionEnded(SwitchboardSession ss)
          Switchboard session이 상대방으로부터 종료되었을때 불려진다.
 void switchboardSessionStarted(SwitchboardSession ss)
          누군가가 Switchboard server를 통해서 자신에게 대화요청을 하였고, 그 사람과의 session이 연결되었다는 것을 알려준다.
 void userOffline(String loginName)
          자신의 Foward ContactList에 있는 사용자중 온라인이였던 사용자가 오프라인으로 상태가 변경되었을때 NS로부터 날라오는 메시지이다.
 void userOnline(MsnFriend friend)
          자신의 ContactList에 있는 사용자 중에 한명이 온라인이 되거나 상태를 변경하였을때, NS로부터 날라오는 메시지이다.
 void whoAddedMe(MsnFriend friend)
          누군가 자신을 등록했음을 알려준다.
 void whoJoinSession(SwitchboardSession ss, MsnFriend join)
          특정 세션으로 새로운 사용자가 입장하였음을 알려준다.
 void whoPartSession(SwitchboardSession ss, MsnFriend part)
          특정 세션에서 사용자가 BYE 하고 세션을 끊었음을 알려준다.
 void whoRemovedMe(MsnFriend friend)
          누군가 자신을 삭제했음을 알려준다.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MsnAdapter

public MsnAdapter()
Method Detail

loginComplete

public void loginComplete(MsnFriend own)
로그인이 완료되었다는 메시지이다. 자신의 로그인이름(메일주소)와 닉네임을 던져준다.

Specified by:
loginComplete in interface MsnListener

loginError

public void loginError()
존재하지 않는 아이디이거나, 비밀번호가 틀렸을 경우, 이 이벤트를 발송하고, 연결은 종료된다.

Specified by:
loginError in interface MsnListener

listOnline

public void listOnline(MsnFriend friend)
로그인 한 후, 상태를 온라인으로 바꾸었을때, 자신의 Contact list에 있는 사용자중에 상태가 Online(혹은 substate)인 사용자들을 이 메소드를 통해 임의의 길이로 날려준다. 문제점은 호출 종료지점을 정확하게 알 수 없다는 것이다.

만약 Online Contact list를 가지고 싶다면, MsnFriend 객체를 Map에 저장해두면 편리하다. (Key값은 loginName으로 하면 더 좋다)

Specified by:
listOnline in interface MsnListener

userOnline

public void userOnline(MsnFriend friend)
자신의 ContactList에 있는 사용자 중에 한명이 온라인이 되거나 상태를 변경하였을때, NS로부터 날라오는 메시지이다.

Specified by:
userOnline in interface MsnListener

userOffline

public void userOffline(String loginName)
자신의 Foward ContactList에 있는 사용자중 온라인이였던 사용자가 오프라인으로 상태가 변경되었을때 NS로부터 날라오는 메시지이다.

Specified by:
userOffline in interface MsnListener

switchboardSessionStarted

public void switchboardSessionStarted(SwitchboardSession ss)
누군가가 Switchboard server를 통해서 자신에게 대화요청을 하였고, 그 사람과의 session이 연결되었다는 것을 알려준다.

Specified by:
switchboardSessionStarted in interface MsnListener

whoJoinSession

public void whoJoinSession(SwitchboardSession ss,
                           MsnFriend join)
특정 세션으로 새로운 사용자가 입장하였음을 알려준다.

Specified by:
whoJoinSession in interface MsnListener

whoPartSession

public void whoPartSession(SwitchboardSession ss,
                           MsnFriend part)
특정 세션에서 사용자가 BYE 하고 세션을 끊었음을 알려준다.

Specified by:
whoPartSession in interface MsnListener

switchboardSessionEnded

public void switchboardSessionEnded(SwitchboardSession ss)
Switchboard session이 상대방으로부터 종료되었을때 불려진다.

Specified by:
switchboardSessionEnded in interface MsnListener

progressTyping

public void progressTyping(SwitchboardSession ss,
                           MsnFriend friend,
                           String typingUser)
특정 Switchboard session에서 typingUser사용자가 메시지를 입력하는 중일때 발송될때 불려진다.

Specified by:
progressTyping in interface MsnListener

instantMessageReceived

public void instantMessageReceived(SwitchboardSession ss,
                                   MsnFriend friend,
                                   MimeMessage mime)
특정 Switchboard session에서 인스턴트 메시지를 받았을때 불려진다.

Specified by:
instantMessageReceived in interface MsnListener
Parameters:
ss - 해당 switchboard session

filePosted

public void filePosted(SwitchboardSession ss,
                       int cookie,
                       String filename,
                       int filesize)
누군가가 자신에게 파일을 보내려고 함을 알려주는 메소드이다.

Specified by:
filePosted in interface MsnListener
Parameters:
ss - 파일을 보내려고 한 사람과 연결된 Switchboard세션
cookie - 응답에 필요한 쿠키값.
filename - 보내려고하는 파일의 이름
filesize - 보내려고하는 파일의 크기(byte단위)
Since:
0.3

fileSendAccepted

public void fileSendAccepted(SwitchboardSession ss,
                             int cookie)
보내려고 했던 파일에 대하여 상대방이 Accept해주었음을 알려주는 메소드이다. 이 이벤트가 발생하였을 경우에 특별히 해줘야할일은 없다. 단 이 이벤트가 발생한 후, 곧바로 실제로 파일을 전송하기위한 thread가 생성될 것이며 6891 port가 bind된다는 것을 참고하기 바란다.

Specified by:
fileSendAccepted in interface MsnListener
Parameters:
ss - 파일을 보내려고 한 사람과 연결된 Switchboard세션
cookie - 초청시 사용되었던 쿠키값.

fileSendRejected

public void fileSendRejected(SwitchboardSession ss,
                             int cookie,
                             String reason)
보내려고 했던 파일에 대하여 상대방이 Reject했음을 알려주는 메소드이다. 이 이벤트가 발생하였을 경우에 특별히 해줘야할일은 없다.

Specified by:
fileSendRejected in interface MsnListener
Parameters:
ss - 파일을 보내려고 한 사람과 연결된 Switchboard세션
cookie - 초청시 사용되었던 쿠키값.
reason - 거절된 이유를 나타내는 문자열 코드이다.

fileSendStarted

public void fileSendStarted(VolatileTransferServer server)
파일 보내기 작업이 시작되었음을 알려준다.

Specified by:
fileSendStarted in interface MsnListener
Parameters:
server - 파일 송신 서버 객체.

fileReceiveStarted

public void fileReceiveStarted(VolatileDownloader downloader)
파일 다운로드 작업이 시작되었음을 알려준다.

Specified by:
fileReceiveStarted in interface MsnListener
Parameters:
downloader - 파일 다운로드 thread 객체.

fileSendError

public void fileSendError(VolatileTransferServer server,
                          Throwable e)
파일을 송신하던중 예외가 발생하였음을 알려주는 메소드이다. 어쨌든, 파일 전송 thread는 종료된다.

Specified by:
fileSendError in interface MsnListener

fileReceiveError

public void fileReceiveError(VolatileDownloader downloader,
                             Throwable e)
파일을 수신하던중 예외가 발생하였음을 알려주는 메소드이다. 어쨌든, 파일 전송 thread는 종료된다.

Specified by:
fileReceiveError in interface MsnListener

whoAddedMe

public void whoAddedMe(MsnFriend friend)
누군가 자신을 등록했음을 알려준다. RL만이 등록되어있으므로, 실제 자신의 FL에 등록하는 것은 자신이 직접해주어야 한다.

Specified by:
whoAddedMe in interface MsnListener
Parameters:
friend - 등록한 사람의 LoginName, FriendlyName이 저장.

whoRemovedMe

public void whoRemovedMe(MsnFriend friend)
누군가 자신을 삭제했음을 알려준다. RL에서만 삭제되므로, 구지 알려줄 필요는 없다.

Specified by:
whoRemovedMe in interface MsnListener
Parameters:
friend - 등록한 사람의 LoginName만이 온다. FriendlyName은 null일 것이다.

buddyListModified

public void buddyListModified()
BuddyList가 수정되어 Serial number가 변경된 직 후, 발송되는 이벤트이다.

Specified by:
buddyListModified in interface MsnListener

addFailed

public void addFailed(int errorCode)
사용자 등록을 실패하였을때 발송되는 이벤트이다.

Specified by:
addFailed in interface MsnListener
Parameters:
errorCode - 서버로부터 받은 에러 코드 헤더

renameNotify

public void renameNotify(MsnFriend friend)
친숙한 이름(FriendlyName)이 변경되었을때 발송되는 이벤트이다. 자신이 변경을 했을때도, 이 이벤트가 발송되며, 다른 인간이 변경해도 발송된다.

만약 null이라면, 자기 자신의 이름 변경에 실패한 case이다.

Specified by:
renameNotify in interface MsnListener