Logo Search packages:      
Sourcecode: inkscape version File versions

bool Inkscape::Whiteboard::MessageAggregator::addOne ( Glib::ustring const &  msg,
Glib::ustring &  buf 
)

Adds one message to the aggregate using a user-provided buffer. Returns true if more messages can be added to the buffer; false otherwise.

Parameters:
msg The message to add to the aggregate.
buf The aggregate buffer.
Returns:
Whether or not more messages can be added to the buffer.

Definition at line 21 of file message-aggregator.cpp.

References MAX_SIZE.

Referenced by addOne().

{
      // 1.  If msg.bytes() > maximum size and the buffer is clear,
      // then we have to send an oversize packet -- 
      // we won't be able to deliver the message any other way.
      // Add it to the buffer and return true.  Any further attempt to 
      // aggregate a message will be handled by condition #2.
      if (msg.bytes() > MessageAggregator::MAX_SIZE && buf.empty()) {
            buf += msg;
            return true;
      }

      // 2.  If msg.bytes() + buf.bytes() > maximum size, return false.
      // The user of this class is responsible for retrieving the aggregated message,
      // doing something with it, clearing the buffer, and trying again.
      // Otherwise, append the message to the buffer and return true.
      if (msg.bytes() + buf.bytes() > MessageAggregator::MAX_SIZE) {
            return false;
      } else {
            buf += msg;
            return true;
      }
}


Generated by  Doxygen 1.6.0   Back to index