Crypto++  8.8
Free C++ class library of cryptographic schemes
Classes | Public Member Functions | List of all members
EqualityComparisonFilter Class Reference

Filter that checks messages on two channels for equality. More...

+ Inheritance diagram for EqualityComparisonFilter:

Classes

struct  MismatchDetected
 Different messages were detected. More...
 

Public Member Functions

 EqualityComparisonFilter (BufferedTransformation *attachment=NULL, bool throwIfNotEqual=true, const std::string &firstChannel="0", const std::string &secondChannel="1")
 Construct an EqualityComparisonFilter. More...
 
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. More...
 
bool ChannelMessageSeriesEnd (const std::string &channel, int propagation=-1, bool blocking=true)
 
- Public Member Functions inherited from Unflushable< Multichannel< Filter > >
bool Flush (bool completeFlush, int propagation=-1, bool blocking=true)
 Flush buffered input and/or output, with signal propagation. More...
 
bool IsolatedFlush (bool hardFlush, bool blocking)
 Flushes data buffered by this object, without signal propagation. More...
 
bool ChannelFlush (const std::string &channel, bool hardFlush, int propagation=-1, bool blocking=true)
 Flush buffered input and/or output on a channel. More...
 
- Public Member Functions inherited from Multichannel< T >
bool MessageSeriesEnd (int propagation=-1, bool blocking=true)
 Marks the end of a series of messages, with signal propagation. More...
 
byteCreatePutSpace (size_t &size)
 Request space which can be written into by the caller. More...
 
size_t Put2 (const byte *inString, size_t length, int messageEnd, bool blocking)
 Input multiple bytes for processing. More...
 
size_t PutModifiable2 (byte *inString, size_t length, int messageEnd, bool blocking)
 Input multiple bytes that may be modified by callee. More...
 
byteChannelCreatePutSpace (const std::string &channel, size_t &size)
 Request space which can be written into by the caller. More...
 
bool ChannelPutModifiable (const std::string &channel, byte *inString, size_t length)
 Input multiple bytes that may be modified by callee on a channel. More...
 
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. More...
 
- Public Member Functions inherited from CustomFlushPropagation< T >

Detailed Description

Filter that checks messages on two channels for equality.

Definition at line 97 of file mqueue.h.

Constructor & Destructor Documentation

◆ EqualityComparisonFilter()

EqualityComparisonFilter::EqualityComparisonFilter ( BufferedTransformation attachment = NULL,
bool  throwIfNotEqual = true,
const std::string &  firstChannel = "0",
const std::string &  secondChannel = "1" 
)
inline

Construct an EqualityComparisonFilter.

Parameters
attachmentan attached transformation
throwIfNotEqualflag indicating whether the objects throws
firstChannelstring naming the first channel
secondChannelstring naming the second channel
Exceptions
MismatchDetectedif throwIfNotEqual is true and not equal

If throwIfNotEqual is false, this filter will output a '\0' byte when it detects a mismatch, '\1' otherwise.

Definition at line 115 of file mqueue.h.

Member Function Documentation

◆ ChannelPut2()

size_t EqualityComparisonFilter::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< T >.


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