Crypto++
8.4
Free C++ class library of cryptographic schemes
|
1 #ifndef CRYPTOPP_MQUEUE_H
2 #define CRYPTOPP_MQUEUE_H
20 {m_queue.IsolatedInitialize(parameters); m_lengths.assign(1, 0U); m_messageCounts.assign(1, 0U);}
21 size_t Put2(
const byte *begin,
size_t length,
int messageEnd,
bool blocking)
23 CRYPTOPP_UNUSED(blocking);
24 m_queue.Put(begin, length);
25 m_lengths.back() += length;
28 m_lengths.push_back(0);
29 m_messageCounts.back()++;
34 {CRYPTOPP_UNUSED(hardFlush), CRYPTOPP_UNUSED(blocking);
return false;}
36 {CRYPTOPP_UNUSED(blocking); m_messageCounts.push_back(0);
return false;}
39 {
return m_lengths.front();}
41 {
return m_lengths.front() > 0;}
47 {
return m_queue.MaxRetrievable();}
49 {
return (
unsigned int)m_lengths.size()-1;}
53 {
return m_messageCounts[0];}
55 {
return (
unsigned int)m_messageCounts.size()-1;}
59 const byte * Spy(
size_t &contiguousSize)
const;
65 std::deque<lword> m_lengths;
66 std::deque<unsigned int> m_messageCounts;
78 : m_throwIfNotEqual(throwIfNotEqual), m_mismatchDetected(false)
79 , m_firstChannel(firstChannel), m_secondChannel(secondChannel)
82 size_t ChannelPut2(
const std::string &channel,
const byte *begin,
size_t length,
int messageEnd,
bool blocking);
86 unsigned int MapChannel(
const std::string &channel)
const;
87 bool HandleMismatchDetected(
bool blocking);
89 bool m_throwIfNotEqual, m_mismatchDetected;
90 std::string m_firstChannel, m_secondChannel;
98 template<>
inline void swap(CryptoPP::MessageQueue &a, CryptoPP::MessageQueue &b)
unsigned int NumberOfMessageSeries() const
Provides the number of messages in a series.
unsigned int NumberOfMessagesInThisSeries() const
Provides the number of messages in a series.
void swap(::SecBlock< T, A > &a, ::SecBlock< T, A > &b)
Swap two SecBlocks.
EqualityComparisonFilter(BufferedTransformation *attachment=NULL, bool throwIfNotEqual=true, const std::string &firstChannel="0", const std::string &secondChannel="1")
void IsolatedInitialize(const NameValuePairs ¶meters)
Initialize or reinitialize this object, without signal propagation.
size_t CopyRangeTo2(BufferedTransformation &target, lword &begin, lword end=LWORD_MAX, const std::string &channel=DEFAULT_CHANNEL, bool blocking=true) const
Copy bytes from this object to another BufferedTransformation.
Data structure used to store byte strings.
size_t Put2(const byte *begin, size_t length, int messageEnd, bool blocking)
Input multiple bytes for processing.
const std::string DEFAULT_CHANNEL
Default channel for BufferedTransformation.
lword TotalBytesRetrievable() const
Provides the number of bytes ready for retrieval.
Implementation of BufferedTransformation's attachment interface.
lword MaxRetrievable() const
Provides the number of bytes ready for retrieval.
bool AnyRetrievable() const
Determines whether bytes are ready for retrieval.
Base class for all exceptions thrown by the library.
Utility functions for the Crypto++ library.
bool IsolatedFlush(bool hardFlush, bool blocking)
Flushes data buffered by this object, without signal propagation.
bool IsolatedMessageSeriesEnd(bool blocking)
Marks the end of a series of messages, without signal propagation.
Base class for unflushable filters.
Classes for an unlimited queue to store bytes.
size_t TransferTo2(BufferedTransformation &target, lword &transferBytes, const std::string &channel=DEFAULT_CHANNEL, bool blocking=true)
Transfer bytes from this object to another BufferedTransformation.
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.
Provides auto signaling support.
bool GetNextMessage()
Start retrieving the next message.
word64 lword
Large word type.
Crypto++ library namespace.
unsigned int NumberOfMessages() const
Provides the number of meesages processed by this object.
A filter that checks messages on two channels for equality.
bool ChannelMessageSeriesEnd(const std::string &channel, int propagation=-1, bool blocking=true)
Marks the end of a series of messages on a channel.
const lword LWORD_MAX
Large word type max value.
Interface for retrieving values given their names.
Abstract base classes that provide a uniform interface to this library.