Package org.globus.ftp

# Class DataSourceStream

java.lang.Object
org.globus.ftp.DataSourceStream

All Implemented Interfaces:
  `DataSource`

public class DataSourceStream extends Object implements DataSource
Reference implementation of DataSource. It can be used with non-parallel transfers. It cannot be used with Extended Block Mode because it is not thread safe.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected int`
`bufferSize`
`protected InputStream`
`in`
`protected long`
`totalRead`

## Constructor Summary

Constructors
Constructor
Description
`DataSourceStream(InputStream in)`
`DataSourceStream(InputStream in, int bufferSize)`

## Method Summary

Modifier and Type
Method
Description
`void`
`close()`
Closes this data source and releases any system resources associated with this source.
`Buffer`
`read()`
Reads a data buffer from this data source.
`long`
`totalSize()`
Optional operation.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### in

protected InputStream in

### bufferSize

protected int bufferSize

### totalRead

protected long totalRead

## Constructor Details

### DataSourceStream

public DataSourceStream(InputStream in)

### DataSourceStream

public DataSourceStream(InputStream in, int bufferSize)

## Method Details

### read

public Buffer read() throws IOException
Description copied from interface: `DataSource`
Reads a data buffer from this data source.

Specified by:
  `read` in interface `DataSource`
Returns:
  The data buffer read. Null, if there is no more data to be read.
Throws:
  `IOException` - if an I/O error occurs.

### close

public void close() throws IOException
Description copied from interface: `DataSource`
Closes this data source and releases any system resources associated with this source.

Specified by:
  `close` in interface `DataSource`
Throws:
  `IOException` - if an I/O error occurs.

### totalSize

public long totalSize()
Description copied from interface: `DataSource`
Optional operation. Returns the total size, in bytes, of the data in this source. If the implementation is not able to provide a total size for the data source, it should return -1

Specified by:
  `totalSize` in interface `DataSource`