Difference between revisions of "Truxton etl get message"

From truxwiki.com
Jump to navigation Jump to search
Line 2: Line 2:
  
 
=Syntax=
 
=Syntax=
<syntaxhighlight lang="C">
+
<source lang="C">
 
uint64_t truxton_etl_get_message( uint64_t etl_handle );
 
uint64_t truxton_etl_get_message( uint64_t etl_handle );
</syntaxhighlight>
+
</source>
  
 
=Parameters=
 
=Parameters=
Line 15: Line 15:
  
 
=Sample=
 
=Sample=
<syntaxhighlight lang="C" highlight="22">
+
<source lang="C" line highlight="19,33">
 
#include <TruxtonCAPI.h>
 
#include <TruxtonCAPI.h>
  
Line 22: Line 22:
 
     char file_id[ 65 ];
 
     char file_id[ 65 ];
 
     char description[ 128 ];
 
     char description[ 128 ];
 
    int exit_loop = 0;
 
  
 
     uint64_t message = 0;
 
     uint64_t message = 0;
Line 35: Line 33:
 
     truxton_etl_get_description( app, description, sizeof(description));
 
     truxton_etl_get_description( app, description, sizeof(description));
  
     while( exit_loop == 0 )
+
    // Pause here until we get a message from the "SampleC" message queue
 +
    message = truxton_etl_get_message( app );
 +
 
 +
     while( message != 0 )
 
     {
 
     {
         message = truxton_etl_get_message( app );
+
         // Do something with the message
  
         if ( message != 0 )
+
         memset( file_id, 0x00, sizeof( file_id ) );
         {
+
         truxton_message_get_file_id( message, file_id, sizeof( file_id ) );
            // Do something with the message
 
  
            memset( file_id, 0x00, sizeof( file_id ) );
+
        printf( "Received file id %s\n", file_id );
            truxton_message_get_file_id( message, file_id, sizeof( file_id ) );
 
  
            printf( "Received file id %s\n", file_id );
+
        truxton_message_destroy( message );
  
            truxton_message_destroy( message );
+
        // Pause here until we get another message from the "SampleC" message queue
         }
+
         message = truxton_etl_get_message( app );
        else
 
        {
 
            exit_loop = 1;
 
        }
 
 
     }
 
     }
 
    truxton_etl_destroy( app );
 
 
}
 
}
</syntaxhighlight>
+
</source>

Revision as of 15:12, 4 December 2020

This function halts the execution of your process until a message arrives on your message queue.

Syntax

uint64_t truxton_etl_get_message( uint64_t etl_handle );

Parameters

etl_handle

The handle created by the truxton_etl_create call.

Return value

A non-zero message handle on success. If zero is returned, a problem has been encountered or your process has been told to shut down.

Sample

 1 #include <TruxtonCAPI.h>
 2 
 3 void main( void )
 4 {
 5     char file_id[ 65 ];
 6     char description[ 128 ];
 7 
 8     uint64_t message = 0;
 9     uint64_t app = truxton_etl_create();
10 
11     truxton_etl_set_application_name( app, "Sample C ETL" );
12     truxton_etl_set_stage_number( app, 42 );
13     truxton_etl_set_queue_name( app, "SampleC" );
14 
15     truxton_etl_set_description( app, "A sample of how to write an ETL");
16     truxton_etl_get_description( app, description, sizeof(description));
17 
18     // Pause here until we get a message from the "SampleC" message queue
19     message = truxton_etl_get_message( app );
20 
21     while( message != 0 )
22     {
23         // Do something with the message
24 
25         memset( file_id, 0x00, sizeof( file_id ) );
26         truxton_message_get_file_id( message, file_id, sizeof( file_id ) );
27 
28         printf( "Received file id %s\n", file_id );
29 
30         truxton_message_destroy( message );
31 
32         // Pause here until we get another message from the "SampleC" message queue
33         message = truxton_etl_get_message( app );
34     }
35 }