org.apache.commons.net.io
Class CopyStreamAdapter
java.lang.Object
org.apache.commons.net.io.CopyStreamAdapter
- CopyStreamListener, EventListener
public class CopyStreamAdapter
extends java.lang.Object
The CopyStreamAdapter will relay CopyStreamEvents to a list of listeners
when either of its bytesTransferred() methods are called. Its purpose
is to facilitate the notification of the progress of a copy operation
performed by one of the static copyStream() methods in
org.apache.commons.io.Util to multiple listeners. The static
copyStream() methods invoke the
bytesTransfered(long, int) of a CopyStreamListener for performance
reasons and also because multiple listeners cannot be registered given
that the methods are static.
CopyStreamEvent
, CopyStreamListener
, Util
CopyStreamAdapter
public CopyStreamAdapter()
Creates a new copyStreamAdapter.
addCopyStreamListener
public void addCopyStreamListener(CopyStreamListener listener)
Registers a CopyStreamListener to receive CopyStreamEvents.
Although this method is not declared to be synchronized, it is
implemented in a thread safe manner.
listener
- The CopyStreamlistener to register.
bytesTransferred
public void bytesTransferred(long totalBytesTransferred,
int bytesTransferred,
long streamSize)
This method is not part of the JavaBeans model and is used by the
static methods in the org.apache.commons.io.Util class for efficiency.
It is invoked after a block of bytes to inform the listener of the
transfer. The CopyStreamAdapater will create a CopyStreamEvent
from the arguments and relay the event to all of its registered
listeners, listing itself as the source of the event.
- bytesTransferred in interface CopyStreamListener
totalBytesTransferred
- The total number of bytes transferred
so far by the copy operation.bytesTransferred
- The number of bytes copied by the most recent
write.streamSize
- The number of bytes in the stream being copied.
This may be equal to CopyStreamEvent.UNKNOWN_STREAM_SIZE if
the size is unknown.
bytesTransferred
public void bytesTransferred(CopyStreamEvent event)
This method is invoked by a CopyStreamEvent source after copying
a block of bytes from a stream. The CopyStreamEvent will contain
the total number of bytes transferred so far and the number of bytes
transferred in the last write. The CopyStreamAdapater will relay
the event to all of its registered listeners, listing itself as the
source of the event.
- bytesTransferred in interface CopyStreamListener
event
- The CopyStreamEvent fired by the copying of a block of
bytes.
removeCopyStreamListener
public void removeCopyStreamListener(CopyStreamListener listener)
Unregisters a CopyStreamListener. Although this method is not
synchronized, it is implemented in a thread safe manner.
listener
- The CopyStreamlistener to unregister.