ChannelSwitch Class Reference

Route input to different and/or multiple channels based on channel ID. More...

`#include <channels.h>`

Inheritance diagram for ChannelSwitch:

## Public Member Functions

| ChannelSwitch (BufferedTransformation &destination)
| ChannelSwitch (BufferedTransformation &destination, const std::string &outChannel)
void | IsolatedInitialize (const NameValuePairs &parameters=g_nullNameValuePairs)
size_t | ChannelPut2 (const std::string &channel, const byte *begin, size_t length, int messageEnd, bool blocking)
| Input multiple bytes for processing on a channel.
size_t | ChannelPutModifiable2 (const std::string &channel, byte *begin, size_t length, int messageEnd, bool blocking)
bool | ChannelFlush (const std::string &channel, bool completeFlush, int propagation=-1, bool blocking=true)
| Flush buffered input and/or output on a channel.
bool | ChannelMessageSeriesEnd (const std::string &channel, int propagation=-1, bool blocking=true)
byte * | ChannelCreatePutSpace (const std::string &channel, size_t &size)
void | AddDefaultRoute (BufferedTransformation &destination)
void | RemoveDefaultRoute (BufferedTransformation &destination)
void | AddDefaultRoute (BufferedTransformation &destination, const std::string &outChannel)
void | RemoveDefaultRoute (BufferedTransformation &destination, const std::string &outChannel)
void | AddRoute (const std::string &inChannel, BufferedTransformation &destination, const std::string &outChannel)
void | RemoveRoute (const std::string &inChannel, BufferedTransformation &destination, const std::string &outChannel)
Public Member Functions inherited from Multichannel< Sink >
bool | Flush (bool hardFlush, int propagation=-1, bool blocking=true)
| Flush buffered input and/or output, with signal propagation.
bool | MessageSeriesEnd (int propagation=-1, bool blocking=true)
| Marks the end of a series of messages, with signal propagation.
byte * | CreatePutSpace (size_t &size)
| Request space which can be written into by the caller.
size_t | Put2 (const byte *inString, size_t length, int messageEnd, bool blocking)
| Input multiple bytes for processing.
size_t | PutModifiable2 (byte *inString, size_t length, int messageEnd, bool blocking)
| Input multiple bytes that may be modified by callee.
byte * | ChannelCreatePutSpace (const std::string &channel, size_t &size)
| Request space which can be written into by the caller.
bool | ChannelPutModifiable (const std::string &channel, byte *inString, size_t length)
| Input multiple bytes that may be modified by callee on a channel.
size_t | ChannelPutModifiable2 (const std::string &channel, byte *begin, size_t length, int messageEnd, bool blocking)
| Input multiple bytes that may be modified by callee on a channel.
Public Member Functions inherited from CustomFlushPropagation< T >

## Friends

class | ChannelRouteIterator

## Additional Inherited Members

Public Types inherited from ChannelSwitchTypedefs
typedef std::pair< BufferedTransformation *, std::string > | Route
typedef std::multimap< std::string, Route > | RouteMap
typedef std::pair< BufferedTransformation *, value_ptr< std::string > > | DefaultRoute
typedef std::list< DefaultRoute > | DefaultRouteList
typedef RouteMap::iterator | MapIterator
typedef DefaultRouteList::iterator | ListIterator

## Detailed Description

Route input to different and/or multiple channels based on channel ID.

Definition at line 96 of file channels.h.

## Constructor & Destructor Documentation

## ChannelSwitch() [1/3]

ChannelSwitch::ChannelSwitch | ( |  | ) |

inline

Definition at line 99 of file channels.h.

## ChannelSwitch() [2/3]

ChannelSwitch::ChannelSwitch | ( | BufferedTransformation & | destination | ) |

inline

Definition at line 100 of file channels.h.

## ChannelSwitch() [3/3]

ChannelSwitch::ChannelSwitch | ( | BufferedTransformation & | destination,
|  | const std::string & | outChannel
| ) |  |

inline

Definition at line 104 of file channels.h.

## Member Function Documentation

## ChannelPut2()

size_t ChannelSwitch::ChannelPut2 | ( | const std::string & | channel,
|  | const byte * | begin,
|  | size_t | length,
|  | int | messageEnd,
|  | bool | blocking
| ) |  |

virtual

Input multiple bytes for processing on a channel.

Parameters

  channel | the channel to process the data.
  begin | the byte buffer to process.
  length | the size of the string, in bytes.
  messageEnd | means how many filters to signal MessageEnd() to, including this one.
  blocking | specifies whether the object should block when processing input.

Returns
  the number of bytes that remain to be processed (i.e., bytes not processed)

Implements Multichannel< Sink >.

## ChannelFlush()

bool ChannelSwitch::ChannelFlush | ( | const std::string & | channel,
|  | bool | hardFlush,
|  | int | propagation = `-1`,
|  | bool | blocking = `true`
| ) |  |

virtual

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.

Implements Multichannel< Sink >.

## Friends And Related Symbol Documentation

## ChannelRouteIterator

friend class ChannelRouteIterator

friend

Definition at line 133 of file channels.h.

The documentation for this class was generated from the following file:

- channels.h