Security Scol plugin
Public Member Functions | Friends | List of all members
ChannelSwitch Class Reference

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

#include <channels.h>

Inheritance diagram for ChannelSwitch:
Multichannel< Sink > ChannelSwitchTypedefs CustomFlushPropagation< T >

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)
 
byteChannelCreatePutSpace (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.
 
byteCreatePutSpace (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.
 
byteChannelCreatePutSpace (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

◆ AddDefaultRoute() [1/2]

void ChannelSwitch::AddDefaultRoute ( BufferedTransformation destination)

Definition at line 266 of file channels.cpp.

◆ AddDefaultRoute() [2/2]

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

Definition at line 281 of file channels.cpp.

◆ AddRoute()

void ChannelSwitch::AddRoute ( const std::string &  inChannel,
BufferedTransformation destination,
const std::string &  outChannel 
)

Definition at line 296 of file channels.cpp.

◆ ChannelCreatePutSpace()

byte * ChannelSwitch::ChannelCreatePutSpace ( const std::string &  channel,
size_t &  size 
)

Definition at line 234 of file channels.cpp.

◆ 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
channelthe channel to flush the data
hardFlushis used to indicate whether all data should be flushed
propagationthe number of attached transformations the ChannelFlush() signal should be passed
blockingspecifies 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 >.

Definition at line 183 of file channels.cpp.

◆ ChannelMessageSeriesEnd()

bool ChannelSwitch::ChannelMessageSeriesEnd ( const std::string &  channel,
int  propagation = -1,
bool  blocking = true 
)

Definition at line 208 of file channels.cpp.

◆ 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
channelthe channel to process the data.
beginthe byte buffer to process.
lengththe size of the string, in bytes.
messageEndmeans how many filters to signal MessageEnd() to, including this one.
blockingspecifies 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 >.

Definition at line 150 of file channels.cpp.

◆ ChannelPutModifiable2()

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

Definition at line 249 of file channels.cpp.

◆ IsolatedInitialize()

void ChannelSwitch::IsolatedInitialize ( const NameValuePairs parameters = g_nullNameValuePairs)

Definition at line 175 of file channels.cpp.

◆ RemoveDefaultRoute() [1/2]

void ChannelSwitch::RemoveDefaultRoute ( BufferedTransformation destination)

Definition at line 271 of file channels.cpp.

◆ RemoveDefaultRoute() [2/2]

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

Definition at line 286 of file channels.cpp.

◆ RemoveRoute()

void ChannelSwitch::RemoveRoute ( const std::string &  inChannel,
BufferedTransformation destination,
const std::string &  outChannel 
)

Definition at line 301 of file channels.cpp.

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 files: