Example #1
0
void elFlowPort::receivedMsg( QByteArray msg )
{
    while( msg.size() > 0 &&
           (_inMsg || msg.contains( ":" )) )
    {
        int index = 0;
        if( !_inMsg )
        {
            index = msg.indexOf( ":" );
            if( index < 0 )
            {
                return;
            }
            _inMsg = true;
        }

        for( ; index < msg.size(); index++ )
        {
            if( msg.at( index ) == '\r' )
            {
                decodeMsg( _buffer );
                _inMsg = false;
                _buffer.clear();
                break;
            }
            _buffer.append( msg.at( index) );
        }
        msg = msg.mid( index+1 );
    }
}
uint32_t MamaRecordedMessageCodec::decodeVectorMsg(char*& buffer, MamaMsg* mm, mama_fid_t mff)
{
	return 0;

	uint16_t vector_size = 0;
	uint16_t vector_length = 0;
	uint32_t r = 4;
	uint32_t msg_size = 0;
	memcpy(&vector_size, buffer, 2);
	buffer += 2;
	memcpy(&vector_length, buffer, 2);
	buffer += 2;
	MamaMsg** vectorMsg = new MamaMsg*[vector_length];

	//prinft("Decoding Vector Message of size %d\n", vector_size+4);

    for (int i=0; i< vector_length; i++)
	{
    	//prinft("Decoding Vector Message [%d]...\n", i);
	    vectorMsg[i] = new MamaMsg;
	    vectorMsg[i]->create();
		msg_size += decodeMsg(buffer, vectorMsg[i]);
		buffer += msg_size;
		r += msg_size;
	}
    mm->addVectorMsg(NULL, mff, vectorMsg, vector_length);
    for (int i=0; i< vector_length; i++)
	{
    	vectorMsg[i]->clear();
		delete vectorMsg[i];
	}
    delete vectorMsg;

	return r;
}
Example #3
0
static void doDecodeMessage(            // extract message from tables
    char *buff,                 // - buffer
    MSG_NUM msg )               // - message
{
    IntlData *data = internationalData;

    if( data != NULL ) {
        if( msg < data->errors_count ) {
            strcpy( buff, data->errors_text[ msg ] );
            return;
        }
    }
    decodeMsg( buff, msg );
}