74 lines
2.7 KiB
C
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 */
|
|
|