5 #ifndef CRYPTOPP_IMPORTS 12 :
m_queue(nodeSize), m_lengths(1, 0U), m_messageCounts(1, 0U)
48 std::deque<lword>::const_iterator it =
m_lengths.begin();
50 for (i=0; i<count && it != --
m_lengths.end(); ++i, ++it)
76 if (channel == m_firstChannel)
78 else if (channel == m_secondChannel)
89 unsigned int i = MapChannel(channel);
92 return Output(3, inString, length, messageEnd, blocking, channel);
93 else if (m_mismatchDetected)
99 if (q2.AnyMessages() && q2.MaxRetrievable() < length)
102 while (length > 0 && q2.AnyRetrievable())
106 len =
STDMIN(len, length);
107 if (memcmp(inString, data, len) != 0)
114 q1.
Put(inString, length);
118 if (q2.AnyRetrievable())
120 else if (q2.AnyMessages())
122 else if (q2.NumberOfMessageSeries() > 0)
131 return HandleMismatchDetected(blocking);
137 unsigned int i = MapChannel(channel);
141 OutputMessageSeriesEnd(4, propagation, blocking, channel);
144 else if (m_mismatchDetected)
150 if (q2.AnyRetrievable() || q2.AnyMessages())
152 else if (q2.NumberOfMessageSeries() > 0)
153 return Output(2, (
const byte *)
"\1", 1, 0, blocking) != 0;
160 return HandleMismatchDetected(blocking);
166 m_mismatchDetected =
true;
167 if (m_throwIfNotEqual)
169 return Output(1, (
const byte *)
"\0", 1, 0, blocking) != 0;
unsigned int MapChannel(const std::string &channel) const
std::deque< lword > m_lengths
void swap(ByteQueue &rhs)
bool HandleMismatchDetected(bool blocking)
unsigned int NumberOfMessages() const
Provides the number of meesages processed by this object.
#define NAMESPACE_BEGIN(x)
void swap(MessageQueue &rhs)
lword MaxRetrievable() const
Provides the number of bytes ready for retrieval.
concurrent_queue< JitTask > m_queue
bool AnyRetrievable() const
Determines whether bytes are ready for retrieval.
size_t TransferTo2(BufferedTransformation &target, lword &transferBytes, const std::string &channel=DEFAULT_CHANNEL, bool blocking=true)
Transfer bytes from this object to another BufferedTransformation.
const byte * Spy(size_t &contiguousSize) const
std::deque< unsigned int > m_messageCounts
bool ChannelMessageSeriesEnd(const std::string &channel, int propagation=-1, bool blocking=true)
Marks the end of a series of messages on a channel.
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.
const T1 UnsignedMin(const T1 &a, const T2 &b)
Safe comparison of values that could be neagtive and incorrectly promoted.
const byte * Spy(size_t &contiguousSize) const
const T & STDMIN(const T &a, const T &b)
Replacement function for std::min.
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.
int GetAutoSignalPropagation() const
Retrieve automatic signal propagation value.
bool GetNextMessage()
Start retrieving the next message.
size_t TransferTo2(BufferedTransformation &target, lword &transferBytes, const std::string &channel=DEFAULT_CHANNEL, bool blocking=true)
Transfer bytes from this object to another BufferedTransformation.
unsigned int CopyMessagesTo(BufferedTransformation &target, unsigned int count=UINT_MAX, const std::string &channel=DEFAULT_CHANNEL) const
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.