|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object
|
+--java.lang.Thread
|
+--rath.msnm.AbstractProcessor
각 DS, NS, SS의 공통이 되는 부분을 추상적으로 묶어놓은 클래스이다.
참고로 해당 Processor는 죽기전에 무조건 OUT을 보낸다. 보내지 않게 하려면 setAutoOutSend(false) 를 하라.
| Field Summary | |
protected HashMap |
callbackMap
|
protected BufferedReader |
in
|
protected boolean |
isLive
|
MSNMessenger |
msn
|
protected PrintWriter |
out
|
protected Socket |
socket
|
| Fields inherited from class java.lang.Thread |
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY |
| Constructor Summary | |
protected |
AbstractProcessor(MSNMessenger msn)
Client processor가 아닌 Server processor로 사용할때 즉, ServerInfo가 필요없을때 이 생성자를 통하여 인스턴스를 생성하도록 한다. |
protected |
AbstractProcessor(MSNMessenger msn,
ServerInfo info)
주어진 ServerInfo를 가지는 Processor를 생성한다. |
protected |
AbstractProcessor(MSNMessenger msn,
ServerInfo info,
int trId)
주어진 ServerInfo를 가지고 trId를 최초 트랜잭션 아이디로 가지는 Processor를 생성한다. |
| Method Summary | |
abstract void |
cleanUp()
스레드가 종료되고 스트림을 닫기 직전에 호출된다. |
int |
getCurrentTransactionId()
다음에 전송되어야할 trId를 반환한다. |
String |
getServerName()
|
abstract void |
init()
서버와의 연결이 맺어진 후 해주어야 할 일이 있다면 이곳에 해주도록 한다. |
boolean |
isAutoOutSend()
해당 processor가 종료될때 OUT 메시지를 자동전송하게 되어있는지 확인한다. |
protected Method |
lookupMethod(Callback cb)
|
protected void |
makeConnection()
해당 server와 tcp/ip 연결을 맺고, 입출력 스트림들을 생성한다. |
void |
markTransactionId(OutgoingMessage msg)
해당 메시지에 적절한 trId를 설정해준다. |
void |
processError(Throwable e)
해당 Processor에서 발생되는 모든 예외는 이곳에서 처리한다. |
void |
processMessage(IncomingMessage msg)
서버로부터 도착하는 메시지 (일방적인 push가 아닌)를 처리하는 부분이다. |
void |
processNotifyMessage(IncomingMessage msg)
Server로부터 일방적으로 notify되는 메시지들을 처리하는 부분이다. |
protected void |
registerCallback(Integer trId,
Callback cb)
수동으로 callback을 등록시킨다. |
void |
removeInfiniteTransactionId(int trId)
무한 Callback 이였던 trId에 대해 종료시점이 되면 이 메소드를 통해 더이상 callback map에 존재하지 않도록 해제하여야 한다. |
void |
run()
Thread loop 부분 |
void |
sendCHLResponse(OutgoingMessage msg,
String hash)
|
void |
sendMessage(OutgoingMessage msg)
보내고자 하는 메시지를 전송하고, trId를 하나 증가시킨다. |
void |
sendMimeMessage(OutgoingMessage msg,
MimeMessage mime)
MIME메시지를 보낼 때 사용한다. |
void |
setAutoOutSend(boolean autoOut)
해당 processor가 종료될때 OUT 메시지를 자동전송할 것인지 설정한다. |
void |
setServerName(String name)
|
| 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 |
| Field Detail |
public final MSNMessenger msn
protected HashMap callbackMap
protected Socket socket
protected boolean isLive
protected BufferedReader in
protected PrintWriter out
| Constructor Detail |
protected AbstractProcessor(MSNMessenger msn)
protected AbstractProcessor(MSNMessenger msn,
ServerInfo info)
protected AbstractProcessor(MSNMessenger msn,
ServerInfo info,
int trId)
| Method Detail |
public void setServerName(String name)
public String getServerName()
public void setAutoOutSend(boolean autoOut)
public boolean isAutoOutSend()
protected void makeConnection()
throws IOException
IOException
public abstract void init()
throws IOException
IOException
public void sendMessage(OutgoingMessage msg)
throws IOException
IOException
public void sendMimeMessage(OutgoingMessage msg,
MimeMessage mime)
throws IOException
IOException
public void sendCHLResponse(OutgoingMessage msg,
String hash)
throws IOException
IOExceptionpublic void markTransactionId(OutgoingMessage msg)
public int getCurrentTransactionId()
protected Method lookupMethod(Callback cb)
throws NoSuchMethodException,
SecurityException
NoSuchMethodException
SecurityException
protected void registerCallback(Integer trId,
Callback cb)
public void processMessage(IncomingMessage msg)
throws Exception
Exception
public void processNotifyMessage(IncomingMessage msg)
throws Exception
Exceptionpublic void removeInfiniteTransactionId(int trId)
public final void run()
run in interface Runnablerun in class Threadpublic abstract void cleanUp()
public void processError(Throwable e)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||