code: public synchronized int putMEMEMessageWithoutEncode(AbstractMessage memeMessage,
                                                          List<DataSlice> messageParts) {
          if (tc.isEntryEnabled())
              SibTr.entry(this, tc, "putMEMEMessageWithoutEncode",
                                             new Object[] { memeMessage, messageParts });
  
          int messageLength = 0;
          // Now we have a list of MessagePart objects. First work out the overall length.
          for (int x = 0; x < messageParts.size(); x++) {
              messageLength += messageParts.get(x).getLength();
          }
  
          if (tc.isDebugEnabled())
              SibTr.debug(this, tc, "Message is " + messageLength + "byte(s) in length");
  
          // Write the length
          // GRRRRRRRRRRRRRRRR Read the FAP Clifford
          putInt(messageLength);
          // Write the control flag
          if (memeMessage.isControlMessage())
              put(CommsConstants.MEME_CONTROLMESSAGE); // Control message flag
          else
              put(CommsConstants.MEME_JSMESSAGE); // Message data flag
  
          // Now take the message parts and wrap them into byte buffers using the offset's supplied
          for (int x = 0; x < messageParts.size(); x++) {
              DataSlice messPart = messageParts.get(x);
              if (tc.isDebugEnabled())
                  SibTr.debug(tc, "DataSlice[" + x + "]: " +
                                                    "Array: " + messPart.getBytes() + ", " +
                                                    "Offset: " + messPart.getOffset() + ", " +
                                                    "Length: " + messPart.getLength());
  
              wrap(messPart.getBytes(), messPart.getOffset(), messPart.getLength());
          }
  
          if (tc.isEntryEnabled())
              SibTr.exit(this, tc, "putMEMEMessageWithoutEncode", messageLength);
          return messageLength;
      }
docs: This method puts a message into the buffer using the already encoded messageParts parameter.
  This is for the case where the encoding has already been performed. The memeMessage parameter
  is used to ensure the correct message type is worked out.
  
  @param memeMessage
  @param messageParts
  
  @return Returns the overall length of the message.