code: public synchronized int putMEMEMessage(AbstractMessage memeMessage, Conversation conversation)
                      throws SIConnectionDroppedException,
                      UnsupportedEncodingException,
                      IncorrectMessageTypeException,
                      MessageCopyFailedException,
                      MessageEncodeFailedException {
          if (tc.isEntryEnabled())
              SibTr.entry(this, tc, "putMEMEMessage",
                                             new Object[] { memeMessage, conversation });
  
          List<DataSlice> messageParts = null;
          CommsConnection commsConnection = ((ConversationState) conversation.getAttachment()).getCommsConnection();
  
          messageParts = encodeFast(memeMessage, commsConnection, conversation);
          int messageLength = putMEMEMessageWithoutEncode(memeMessage, messageParts);
  
          if (tc.isEntryEnabled())
              SibTr.exit(this, tc, "putMEMEMessage", messageLength);
          return messageLength;
      }
docs: Puts a message into the byte buffer using the <code>encodeFast()</code method of encoding
  messages. This method takes account of any <i>capabilities</i> negotiated at the point the
  connection was established. This method should only be used for ME-ME JsMessage's.
  
  @param memeMessage The message to encode.
  @param conversation The conversation over which the encoded message data is to be transferred.
  @return Returns the message length.
  
  @exception MessageCopyFailedException
  @exception IncorrectMessageTypeException
  @exception MessageEncodeFailedException
  @exception UnsupportedEncodingException
  @exception SIConnectionDroppedException