72 lines
2.7 KiB
C
72 lines
2.7 KiB
C
/*****************************************************************************
|
|
* HMessageQueue.h
|
|
*****************************************************************************
|
|
*
|
|
* Projekt: Halcon/libhalcon
|
|
* Description: implements a programming interface to HALCONs Message Queues.
|
|
*
|
|
* (c) 1996-2020 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 */
|