Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
FileUploadThread |
|
| 1.0;1 |
1 | // | |
2 | // $Id: FileUploadThread.java 1026 2010-02-24 10:12:19Z etienne_sf $ | |
3 | // | |
4 | // jupload - A file upload applet. | |
5 | // Copyright 2007 The JUpload Team | |
6 | // | |
7 | // Created: ? | |
8 | // Creator: William JinHua Kwong | |
9 | // Last modified: $Date: 2010-02-24 11:12:19 +0100 (mer., 24 févr. 2010) $ | |
10 | // | |
11 | // This program is free software; you can redistribute it and/or modify it under | |
12 | // the terms of the GNU General Public License as published by the Free Software | |
13 | // Foundation; either version 2 of the License, or (at your option) any later | |
14 | // version. This program is distributed in the hope that it will be useful, but | |
15 | // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
16 | // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more | |
17 | // details. You should have received a copy of the GNU General Public License | |
18 | // along with this program; if not, write to the Free Software Foundation, Inc., | |
19 | // 675 Mass Ave, Cambridge, MA 02139, USA. | |
20 | ||
21 | package wjhk.jupload2.upload; | |
22 | ||
23 | import java.util.concurrent.BlockingQueue; | |
24 | ||
25 | import wjhk.jupload2.exception.JUploadException; | |
26 | import wjhk.jupload2.policies.UploadPolicy; | |
27 | ||
28 | /** | |
29 | * This interface defines the methods of the various FileUploadThread classes. | |
30 | * The default implementation is in the {@link DefaultFileUploadThread}. It | |
31 | * allows retries, for network errors. See | |
32 | * {@link UploadPolicy#PROP_RETRY_MAX_NUMBER_OF} and | |
33 | * {@link UploadPolicy#PROP_RETRY_NB_SECONDS_BETWEEN} for details. | |
34 | */ | |
35 | public interface FileUploadThread { | |
36 | /** | |
37 | * @return the packetQueue | |
38 | */ | |
39 | public BlockingQueue<UploadFilePacket> getPacketQueue(); | |
40 | ||
41 | /** | |
42 | * Get the server response message. In HTTP mode, it's the body part, | |
43 | * without the HTTP headers.<BR> | |
44 | * Note: was getResponseMsg until release 3.4.1. | |
45 | * | |
46 | * @return The String that contains the HTTP response message (e.g. | |
47 | * "SUCCESS") | |
48 | */ | |
49 | public String getResponseMsg(); | |
50 | ||
51 | /** | |
52 | * Closes the connection to the server and releases resources. | |
53 | */ | |
54 | public void close(); | |
55 | ||
56 | /** | |
57 | * @return The Thread state | |
58 | * @see Thread#getState() | |
59 | */ | |
60 | public Thread.State getState(); | |
61 | ||
62 | /** | |
63 | * This method is created in this interface, and is implemented by | |
64 | * {@link DefaultFileUploadThread}, as this class is a subclass of | |
65 | * {@link Thread}. | |
66 | * | |
67 | * @return true if the thread is currently working. | |
68 | * @see java.lang.Thread#isAlive() | |
69 | */ | |
70 | public boolean isAlive(); | |
71 | ||
72 | /** | |
73 | * This method is created in this interface, and is implemented by | |
74 | * {@link DefaultFileUploadThread}, as this class is a subclass of | |
75 | * {@link Thread}. | |
76 | * | |
77 | * @throws InterruptedException | |
78 | * @see java.lang.Thread#join() | |
79 | */ | |
80 | public void join() throws InterruptedException; | |
81 | ||
82 | /** | |
83 | * This method is created in this interface, and is implemented by | |
84 | * {@link DefaultFileUploadThread}, as this class is a subclass of | |
85 | * {@link Thread}. | |
86 | * | |
87 | * @param millisec | |
88 | * @throws InterruptedException | |
89 | * @see java.lang.Thread#join(long) | |
90 | */ | |
91 | public void join(long millisec) throws InterruptedException; | |
92 | ||
93 | /** | |
94 | * This method is created in this interface, and is implemented by | |
95 | * {@link DefaultFileUploadThread}, as this class is a subclass of | |
96 | * {@link Thread}. | |
97 | * | |
98 | * @see java.lang.Thread#start() | |
99 | */ | |
100 | public void start(); | |
101 | ||
102 | /** | |
103 | * This method is created in this interface, and is implemented by | |
104 | * {@link DefaultFileUploadThread}, as this class is a subclass of | |
105 | * {@link Thread}. | |
106 | * | |
107 | * @see java.lang.Thread#interrupt() | |
108 | */ | |
109 | public void interrupt(); | |
110 | ||
111 | /** | |
112 | * Changes the FileUploadManagerThread. The standard way is to give the | |
113 | * FileUploadManagerThread to the constructor. This method is used by JUnit | |
114 | * tests, to be able to control which FileUploadThread is created. | |
115 | * | |
116 | * @param fileUploadManagerThread | |
117 | * @throws JUploadException | |
118 | * @see FileUploadManagerThread | |
119 | */ | |
120 | void setFileUploadThreadManager( | |
121 | FileUploadManagerThread fileUploadManagerThread) | |
122 | throws JUploadException; | |
123 | ||
124 | } |