uint32_t MamaRecordedMessageCodec::encodeVectorMsg(char*& buffer, MamaMsgField& mmf)
{
	const MamaMsg** mmpp = NULL;
	char* orig_buffer = buffer;
	// Reserve these four bytes for the vector size
	buffer += 4;
	MamaMsg* mmp = NULL;
	mama_size_t count = 0;
	uint16_t r = 4;
	uint16_t msg_size = 0;

	mmf.getVectorMsg(mmpp, count);

	if(count == 0)
	{
		return 0;
	}
	uint16_t msg_length = (uint16_t)count;
	for(mama_size_t i = 0; i < count; i++)
	{
		mmp = (MamaMsg*)*mmpp;
		//printf("Encountering Message: %s\n", mmp->toString());
		msg_size += encodeMsg(buffer, mmp);
		r += msg_size;
		buffer += msg_size;
		mmpp++;
	}
	// Now we know the total vector size, write it in.
	memcpy(orig_buffer, &r, 2);
	memcpy(orig_buffer+2, &msg_length, 2);

	//printf("Encoded [%d] Vector Message Fields of size [%d]...\n", count, r);
	return (uint32_t)r;
}