D2000 OBJApi - Asynchronous functions (messages)

The asynchronous functions are called by the library ObjApi.dll as messages during the runtime of the client process. A user process must define the handlers for the following types of messages:

  • NewObjectValue message
    • A message notifying a change of value (status) of an opened object or a process child.
  • NewDefinition message
    • A configuration message notifying the creation of a new child or the deletion of a process child. After calling the function SendChildren, a series of these messages, which defines all children of the user process, is sent to the user process.

When designing handlers, the following facts must be taken into account:

  • Functions used to handle the messages are called asynchronously from ObjAPI. It means, that if the functions share some resources with other threads of the user process, it is necessary to ensure mutually exclusive access to these resources within the frame of the user process.
  • Messages are processed in this way in series, one after another - another message can not be processed until the handling of one message is finished (NewObjectValue or NewDefinition). It implies that the messages with a significant handling period must be processed by an independent thread.
  • Handlers may not use the ObjAPI functions, which belong to the category Synchronous. The description of each executive or auxiliary function contains information on whether the function is synchronous or asynchronous. The synchronous functions use a communication channel that is locked in time of handling asynchronous messages. So, if the functions were called from a message handler, a deadlock could occur.
Napíšte komentár