Loading...
Searching...
No Matches
MqContextC_ReadApi_C_API

MqContextC - extract data from an incoming read-data-packageMore...

+ Collaboration diagram for MqContextC_ReadApi_C_API:

Topics

 MqContextC_ReadApi_Atom_C_API
 MqContextC - read a single-data-item outof a read-data-package
 
 MqContextC_ReadApi_Block_C_API
 MqContextC - read a block-of-data outof a read-data-package
 
 MqContextC_ReadApi_Misc_C_API
 MqContextC - various functions to work on a read-data-package
 

Detailed Description

MqContextC - extract data from an incoming read-data-package

A data-package is read in two different scenarios:

Reading data is a passive-task and the opposite of sending data, which is an active-task. Passive means that the reading process is triggered by an incoming-data-package and not by the software workflow or by the user.
There is a read function and some help functions for each basic type defined in MkBufferC .

Read-Safe
Each service-call has a private read-data-package. This means that during a service-call that is in progress, another service-call can be served without damaging the read-data-package of the current service-call.
Type-Safe
A data-item in a read-data-package is type safe, this mean that every read of a data-item have to match the data-type of the previous write. One exception is available, the cast from and to the string data-type (TYPE=C) is allowed.

Example from server.py read-safety: Make a nested service-call

  def CSV1(self):

    # read the input-data from the CSV1-service-call
    # client → server
    inI = self.ReadI32() + 1

    # call the CSV2-service at the client, wait 10sec for timeout
    # server → client → server
    retI = self.Send("Wt", 10, "CSV2:I@I", inI) + 1

    # answer the CSV1-service-call with the result from the CSV2-service-call
    # server → client
    self.Send("R", "I", retI)