Files
2024-02-27 15:29:15 +08:00

74 lines
2.7 KiB
C

/*****************************************************************************
* HMessageQueue.h
*****************************************************************************
*
* Projekt: Halcon/libhalcon
* Description: implements a programming interface to HALCONs Message Queues.
*
* (c) 1996-2018 by MVTec Software GmbH
* www.mvtec.com
*
*****************************************************************************/
#ifndef HMESSAGEQUEUE_H
# define HMESSAGEQUEUE_H
# if defined(__cplusplus)
extern "C" {
# endif
/* Message data structure typedef pushed to the header
* to allow use from the message-queue unit. */
typedef struct H_MESSAGE_DATA h_message_data_t;
typedef struct H_MESSAGE_QUEUE h_message_queue_t;
/* Helper struct used to encapsulate the object tuple which is passed
* through operator interface as a simple Hkey array.
* Analogy to Hctuple for control data tuples... */
typedef struct HOTUPLE
{
INT4_8 num;
Hkey *objects;
HBOOL owns_objects;
} Hotuple;
/*
* Functions exported for use by e.g. extension packages. This should probably
* go into its own header file.
*/
extern HLibExport Herror HotCreate (Hproc_handle proc_handle,
Hotuple **obj_tuple, INT4_8 num_obj,
const Hkey *objects, HINT memtype);
extern HLibExport Herror HotClear (Hproc_handle proc_handle,
Hotuple *obj_tuple);
extern HLibExport Herror HDestroyMessageData (Hproc_handle proc_handle,
h_message_data_t *msg_data);
extern HLibExport Herror HAllocMessageData (Hproc_handle proc_handle,
h_message_data_t **pmsg_data);
extern HLibExport Herror HSetMessageDataTuple (Hproc_handle proc_handle,
h_message_data_t *msg_data,
char const *key,
Hctuple const *ctrl_tuple);
extern HLibExport Herror HSetMessageDataObject (Hproc_handle proc_handle,
h_message_data_t *msg_data,
char const *key,
Hotuple const *ctrl_tuple);
extern HLibExport Herror HQueueMessageData (Hproc_handle proc_handle,
Hphandle queue,
h_message_data_t * const * msgs,
INT4_8 num_msgs);
extern HLibExport HBOOL HIsMessageQueue(Hphandle handle);
# if defined(__cplusplus)
}
# endif
#endif /* HMESSAGEQUEUE_H */