1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.commons.net.io;
17
18 import java.util.EventObject;
19
20 /**
21 * A CopyStreamEvent is triggered after every write performed by a
22 * stream copying operation. The event stores the number of bytes
23 * transferred by the write triggering the event as well as the total
24 * number of bytes transferred so far by the copy operation.
25 * <p>
26 * <p>
27 * @see CopyStreamListener
28 * @see CopyStreamAdapter
29 * @see Util
30 * @author <a href="mailto:savarese@apache.org">Daniel F. Savarese</a>
31 * @version $Id: CopyStreamEvent.java 165675 2005-05-02 20:09:55Z rwinston $
32 */
33 public class CopyStreamEvent extends EventObject
34 {
35 /**
36 * Constant used to indicate the stream size is unknown.
37 */
38 public static final long UNKNOWN_STREAM_SIZE = -1;
39
40 private int bytesTransferred;
41 private long totalBytesTransferred;
42 private long streamSize;
43
44 /**
45 * Creates a new CopyStreamEvent instance.
46 * @param source The source of the event.
47 * @param totalBytesTransferred The total number of bytes transferred so
48 * far during a copy operation.
49 * @param bytesTransferred The number of bytes transferred during the
50 * write that triggered the CopyStreamEvent.
51 * @param streamSize The number of bytes in the stream being copied.
52 * This may be set to <code>UNKNOWN_STREAM_SIZE</code> if the
53 * size is unknown.
54 */
55 public CopyStreamEvent(Object source, long totalBytesTransferred,
56 int bytesTransferred, long streamSize)
57 {
58 super(source);
59 this.bytesTransferred = bytesTransferred;
60 this.totalBytesTransferred = totalBytesTransferred;
61 this.streamSize = streamSize;
62 }
63
64 /**
65 * Returns the number of bytes transferred by the write that triggered
66 * the event.
67 * @return The number of bytes transferred by the write that triggered
68 * the vent.
69 */
70 public int getBytesTransferred()
71 {
72 return bytesTransferred;
73 }
74
75 /**
76 * Returns the total number of bytes transferred so far by the copy
77 * operation.
78 * @return The total number of bytes transferred so far by the copy
79 * operation.
80 */
81 public long getTotalBytesTransferred()
82 {
83 return totalBytesTransferred;
84 }
85
86 /**
87 * Returns the size of the stream being copied.
88 * This may be set to <code>UNKNOWN_STREAM_SIZE</code> if the
89 * size is unknown.
90 * @return The size of the stream being copied.
91 */
92 public long getStreamSize()
93 {
94 return streamSize;
95 }
96 }