rath.msnm.ftp
Class VolatileDownloader

java.lang.Object
  |
  +--java.lang.Thread
        |
        +--rath.msnm.ftp.VolatileDownloader
All Implemented Interfaces:
Runnable, VolatileTransfer

public class VolatileDownloader
extends Thread
implements VolatileTransfer

파일을 수신요청을 허락했을때, 실제로 파일을 다운로드하는 클래스이다.

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

Field Summary
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Method Summary
 void close()
           
protected  void fireError(Throwable e)
          파일 전송도중 예기치 못한 예외가 발생하였을때, 불려진다.
protected  void fireStart()
           
 String getAuthCookie()
          신원확인을 위해 전송할 목적으로 설정된 인증쿠키값을 얻어온다.
 int getCommitPercent()
          실제로 송/수신된 바이트 크기를 얻어온다.
 String getCookie()
          이 파일전송 세션에 대한 쿠키값을 얻어온다.
 int getCurrentFileSize()
          현재 실제로 수신된 byte 수를 반환한다.
 File getFile()
          수신될 파일 객체를 반환한다.
 void getFileContent()
           
 String getFilename()
          송/수신되고 있는 파일의 이름을 얻어온다.
 int getFileSize()
          받을 파일의 전체 크기를 얻어온다.
 String getHostAddress()
          송신측 Host 주소를 얻어온다.
static VolatileDownloader getInstance(MSNMessenger msn, File toReceive, MimeMessage msg)
          VolatileDownloader의 인스턴스를 생성한다.
 int getPort()
          송신측 port 번호를 얻어온다.
protected  void makeConnection()
          서버에 접속하고 스트림들을 생성한다.
 void processMessage(String header, String body)
           
 void run()
          Thread main loop 처리 부분이다.
 void sendMessage(String header)
           
 void sendMessage(String header, String body)
           
 
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
 

Method Detail

getInstance

public static VolatileDownloader getInstance(MSNMessenger msn,
                                             File toReceive,
                                             MimeMessage msg)
VolatileDownloader의 인스턴스를 생성한다.


getHostAddress

public String getHostAddress()
송신측 Host 주소를 얻어온다.


getPort

public int getPort()
송신측 port 번호를 얻어온다.


getAuthCookie

public String getAuthCookie()
신원확인을 위해 전송할 목적으로 설정된 인증쿠키값을 얻어온다.


getCookie

public String getCookie()
이 파일전송 세션에 대한 쿠키값을 얻어온다.


getFile

public File getFile()
수신될 파일 객체를 반환한다.


getFilename

public String getFilename()
Description copied from interface: VolatileTransfer
송/수신되고 있는 파일의 이름을 얻어온다.

Specified by:
getFilename in interface VolatileTransfer

getCurrentFileSize

public int getCurrentFileSize()
현재 실제로 수신된 byte 수를 반환한다.


getCommitPercent

public int getCommitPercent()
Description copied from interface: VolatileTransfer
실제로 송/수신된 바이트 크기를 얻어온다.

Specified by:
getCommitPercent in interface VolatileTransfer

getFileSize

public int getFileSize()
받을 파일의 전체 크기를 얻어온다. 이 수치는 ProgressBar등을 구현하는데 유용한 값이 되어 줄 것이다. 만약 -1이 반환된다면, 아직 파일크기 정보를 얻지 못한것이니, 조금 기다린 후 다시 수행하기 바란다.


run

public final void run()
Thread main loop 처리 부분이다.

Specified by:
run in interface Runnable
Overrides:
run in class Thread

processMessage

public void processMessage(String header,
                           String body)
                    throws Throwable
Throwable

sendMessage

public void sendMessage(String header)
                 throws IOException
IOException

sendMessage

public void sendMessage(String header,
                        String body)
                 throws IOException
IOException

getFileContent

public void getFileContent()
                    throws IOException
IOException

close

public void close()

fireStart

protected void fireStart()

fireError

protected void fireError(Throwable e)
파일 전송도중 예기치 못한 예외가 발생하였을때, 불려진다. 이 메소드에서는 예외 이벤트를 발송해줄 것이다.


makeConnection

protected void makeConnection()
                       throws IOException
서버에 접속하고 스트림들을 생성한다.

IOException