Base class for unflushable filters.
More...
#include <simple.h>
|
bool | Flush (bool completeFlush, int propagation=-1, bool blocking=true) |
| Flush buffered input and/or output, with signal propagation.
|
|
bool | IsolatedFlush (bool hardFlush, bool blocking) |
| Flushes data buffered by this object, without signal propagation.
|
|
bool | ChannelFlush (const std::string &channel, bool hardFlush, int propagation=-1, bool blocking=true) |
| Flush buffered input and/or output on a channel.
|
|
template<class T>
class Unflushable< T >
Base class for unflushable filters.
- Template Parameters
-
Definition at line 133 of file simple.h.
◆ Flush()
template<class T >
bool Unflushable< T >::Flush |
( |
bool | completeFlush, |
|
|
int | propagation = -1, |
|
|
bool | blocking = true ) |
|
inline |
Flush buffered input and/or output, with signal propagation.
- Parameters
-
completeFlush | is used to indicate whether all data should be flushed |
propagation | the number of attached transformations the Flush() signal should be passed |
blocking | specifies whether the object should block when processing input |
propagation count includes this object. Setting propagation to 1
means this object only. Setting propagation to -1
means unlimited propagation.
- Note
- Hard flushes must be used with care. It means try to process and output everything, even if there may not be enough data to complete the action. For example, hard flushing a HexDecoder would cause an error if you do it after inputing an odd number of hex encoded characters.
-
For some types of filters, like ZlibDecompressor, hard flushes can only be done at "synchronization points". These synchronization points are positions in the data stream that are created by hard flushes on the corresponding reverse filters, in this example ZlibCompressor. This is useful when zlib compressed data is moved across a network in packets and compression state is preserved across packets, as in the SSH2 protocol.
Definition at line 155 of file simple.h.
◆ IsolatedFlush()
template<class T >
bool Unflushable< T >::IsolatedFlush |
( |
bool | hardFlush, |
|
|
bool | blocking ) |
|
inline |
Flushes data buffered by this object, without signal propagation.
- Parameters
-
hardFlush | indicates whether all data should be flushed |
blocking | specifies whether the object should block when processing input |
- Note
- hardFlush must be used with care
Definition at line 162 of file simple.h.
◆ ChannelFlush()
template<class T >
bool Unflushable< T >::ChannelFlush |
( |
const std::string & | channel, |
|
|
bool | hardFlush, |
|
|
int | propagation = -1, |
|
|
bool | blocking = true ) |
|
inline |
Flush buffered input and/or output on a channel.
- Parameters
-
channel | the channel to flush the data |
hardFlush | is used to indicate whether all data should be flushed |
propagation | the number of attached transformations the ChannelFlush() signal should be passed |
blocking | specifies whether the object should block when processing input |
- Returns
- true of the Flush was successful
propagation count includes this object. Setting propagation to 1
means this object only. Setting propagation to -1
means unlimited propagation.
Definition at line 175 of file simple.h.
The documentation for this class was generated from the following file: