Files
handleaiuinew/env/halcon/include/hlib/HMessageQueue.h
T

72 lines
2.7 KiB
C
Raw Normal View History

2024-05-18 23:53:26 +08:00
/*****************************************************************************
* 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 */