Crypto++ 8.2
Free C&
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:

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)
 
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)
 
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)
 
bool ChannelPutModifiable (const std::string &channel, byte *inString, size_t length)
 
virtual size_t ChannelPut2 (const std::string &channel, const byte *begin, size_t length, int messageEnd, bool blocking)=0
 
size_t ChannelPutModifiable2 (const std::string &channel, byte *begin, size_t length, int messageEnd, bool blocking)
 
virtual bool ChannelFlush (const std::string &channel, bool hardFlush, int propagation=-1, bool blocking=true)=0
 
- 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

◆ IsolatedInitialize()

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

Definition at line 175 of file channels.cpp.

◆ ChannelPut2()

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

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.

◆ ChannelFlush()

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

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.

◆ ChannelCreatePutSpace()

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

Definition at line 234 of file channels.cpp.

◆ AddDefaultRoute() [1/2]

void ChannelSwitch::AddDefaultRoute ( BufferedTransformation destination)

Definition at line 266 of file channels.cpp.

◆ RemoveDefaultRoute() [1/2]

void ChannelSwitch::RemoveDefaultRoute ( BufferedTransformation destination)

Definition at line 271 of file channels.cpp.

◆ AddDefaultRoute() [2/2]

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

Definition at line 281 of file channels.cpp.

◆ RemoveDefaultRoute() [2/2]

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

Definition at line 286 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.

◆ 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 Function 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: