#include <src/main/decaf/io/Reader.h>
Public Member Functions |
virtual | ~Reader () |
virtual void | mark (int readAheadLimit) |
| Marks the present position in the stream.
|
virtual bool | markSupported () const |
| Tells whether this stream supports the mark() operation.
|
virtual bool | ready () const |
| Tells whether this stream is ready to be read.
|
virtual void | reset () |
| Resets the stream.
|
virtual long long | skip (long long count) |
| Skips characters.
|
virtual int | read (std::vector< char > &buffer) |
| Reads characters into an array.
|
virtual int | read (char *buffer, int size) |
| Reads characters into an array, the method will attempt to read as much data as the size of the array.
|
virtual int | read (char *buffer, int size, int offset, int length) |
| Reads characters into a portion of an array.
|
virtual int | read () |
| Reads a single character.
|
virtual int | read (decaf::nio::CharBuffer *charBuffer) |
| Attempts to read characters into the specified character buffer.
|
Protected Member Functions |
| Reader () |
virtual int | doReadArrayBounded (char *buffer, int size, int offset, int length)=0 |
| Override this method to customize the functionality of the method read( unsigned char* buffer, int size, int offset, int length ).
|
virtual int | doReadVector (std::vector< char > &buffer) |
| Override this method to customize the functionality of the method read( std::vector<char>& buffer ).
|
virtual int | doReadArray (char *buffer, int length) |
| Override this method to customize the functionality of the method read( char* buffer, std::size_t length ).
|
virtual int | doReadChar () |
| Override this method to customize the functionality of the method read().
|
virtual int | doReadCharBuffer (decaf::nio::CharBuffer *charBuffer) |
| Override this method to customize the functionality of the method read( CharBuffer* charBuffer ).
|
Constructor & Destructor Documentation
decaf::io::Reader::Reader |
( |
| ) |
[protected] |
virtual decaf::io::Reader::~Reader |
( |
| ) |
[virtual] |
Member Function Documentation
virtual int decaf::io::Reader::doReadArray |
( |
char * |
buffer, |
|
|
int |
length |
|
) |
| [protected, virtual] |
Override this method to customize the functionality of the method read( char* buffer, std::size_t length ).
virtual int decaf::io::Reader::doReadArrayBounded |
( |
char * |
buffer, |
|
|
int |
size, |
|
|
int |
offset, |
|
|
int |
length |
|
) |
| [protected, pure virtual] |
Override this method to customize the functionality of the method read( unsigned char* buffer, int size, int offset, int length ).
All subclasses must override this method to provide the basic Reader functionality.
Implemented in decaf::io::InputStreamReader.
virtual int decaf::io::Reader::doReadChar |
( |
| ) |
[protected, virtual] |
Override this method to customize the functionality of the method read().
Override this method to customize the functionality of the method read( CharBuffer* charBuffer ).
virtual int decaf::io::Reader::doReadVector |
( |
std::vector< char > & |
buffer | ) |
[protected, virtual] |
virtual void decaf::io::Reader::mark |
( |
int |
readAheadLimit | ) |
[virtual] |
Marks the present position in the stream.
Subsequent calls to reset() will attempt to reposition the stream to this point. Not all character-input streams support the mark() operation.
- Parameters:
-
readAheadLimit | Limit on the number of characters that may be read while still preserving the mark. After reading this many characters, attempting to reset the stream may fail. |
- Exceptions:
-
IOException | if an I/O error occurs, or the stream does not support mark. |
virtual bool decaf::io::Reader::markSupported |
( |
| ) |
const [inline, virtual] |
Tells whether this stream supports the mark() operation.
The default implementation always returns false. Subclasses should override this method.
- Returns:
- true if and only if this stream supports the mark operation.
virtual int decaf::io::Reader::read |
( |
char * |
buffer, |
|
|
int |
size, |
|
|
int |
offset, |
|
|
int |
length |
|
) |
| [virtual] |
Reads characters into a portion of an array.
This method will block until some input is available, an I/O error occurs, or the end of the stream is reached.
- Parameters:
-
buffer | The target char buffer. |
size | The size in bytes of the target buffer. |
offset | The position in the buffer to start filling. |
length | The maximum number of bytes to read. |
- Returns:
- The number of bytes read or -1 if the end of stream is reached.
- Exceptions:
-
IOException | thrown if an I/O error occurs. |
NullPointerException | if buffer is NULL. |
IndexOutOfBoundsException | if the offset + length is greater than the array size. |
virtual int decaf::io::Reader::read |
( |
| ) |
[virtual] |
Reads a single character.
This method will block until a character is available, an I/O error occurs, or the end of the stream is reached.
Subclasses that intend to support efficient single-character input should override this method.
- Returns:
- The character read, as an integer in the range 0 to 65535 (0x00-0xffff), or -1 if the end of the stream has been reached.
- Exceptions:
-
virtual int decaf::io::Reader::read |
( |
char * |
buffer, |
|
|
int |
size |
|
) |
| [virtual] |
Reads characters into an array, the method will attempt to read as much data as the size of the array.
This method will block until some input is available, an I/O error occurs, or the end of the stream is reached.
- Parameters:
-
buffer | The target char buffer. |
size | The size in bytes of the target buffer. |
- Returns:
- The number of bytes read or -1 if the end of stream is reached.
- Exceptions:
-
IOException | thrown if an I/O error occurs. |
NullPointerException | if buffer is NULL. |
Attempts to read characters into the specified character buffer.
The buffer is used as a repository of characters as-is: the only changes made are the results of a put operation. No flipping or rewinding of the buffer is performed.
- Parameters:
-
charBuffer | The Buffer to read Characters into. |
- Returns:
- The number of char values added to the buffer, or -1 if this source of characters is at its end
- Exceptions:
-
IOException | if an I/O error occurs. |
NullPointerException | if buffer is NULL. |
ReadOnlyBufferException | if charBuffer is a read only buffer. |
Implements decaf::lang::Readable.
virtual int decaf::io::Reader::read |
( |
std::vector< char > & |
buffer | ) |
[virtual] |
Reads characters into an array.
This method will block until some input is available, an I/O error occurs, or the end of the stream is reached.
- Parameters:
-
buffer | The buffer to read characters into. |
- Returns:
- The number of characters read, or -1 if the end of the stream has been reached
- Exceptions:
-
virtual bool decaf::io::Reader::ready |
( |
| ) |
const [virtual] |
Tells whether this stream is ready to be read.
- Returns:
- True if the next read() is guaranteed not to block for input, false otherwise. Note that returning false does not guarantee that the next read will block.
- Exceptions:
-
Reimplemented in decaf::io::InputStreamReader.
virtual void decaf::io::Reader::reset |
( |
| ) |
[virtual] |
Resets the stream.
If the stream has been marked, then attempt to reposition it at the mark. If the stream has not been marked, then attempt to reset it in some way appropriate to the particular stream, for example by repositioning it to its starting point. Not all character-input streams support the reset() operation, and some support reset() without supporting mark().
- Exceptions:
-
virtual long long decaf::io::Reader::skip |
( |
long long |
count | ) |
[virtual] |
Skips characters.
This method will block until some characters are available, an I/O error occurs, or the end of the stream is reached.
- Parameters:
-
count | The number of character to skip. |
- Returns:
- the number of Character actually skipped.
- Exceptions:
-
The documentation for this class was generated from the following file: