rath.msnm.event
Interface MsnListener

All Superinterfaces:
EventListener
All Known Implementing Classes:
MsnAdapter

public interface MsnListener
extends EventListener

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

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

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)
          누군가 자신을 삭제했음을 알려준다.
 

Method Detail

loginComplete

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


loginError

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


listOnline

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

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


userOnline

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


userOffline

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


switchboardSessionStarted

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


whoJoinSession

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


whoPartSession

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


switchboardSessionEnded

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


progressTyping

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


instantMessageReceived

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

Parameters:
ss - 해당 switchboard session

filePosted

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

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

fileSendAccepted

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


fileSendRejected

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


fileSendStarted

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

Parameters:
server - 파일 송신 서버 객체.

fileReceiveStarted

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

Parameters:
downloader - 파일 다운로드 thread 객체.

fileSendError

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


fileReceiveError

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


whoAddedMe

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

Parameters:
friend - 등록한 사람의 LoginName, FriendlyName이 저장.

whoRemovedMe

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

Parameters:
friend - 등록한 사람의 LoginName만이 온다. FriendlyName은 null일 것이다.

buddyListModified

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


addFailed

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

Parameters:
errorCode - 서버로부터 받은 에러 코드 헤더

renameNotify

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

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