Files
2025-03-26 01:06:45 +08:00

117 lines
5.1 KiB
C

/*****************************************************************************
* HInstance.h
*****************************************************************************
*
* Project: HALCON/HLib
* Description: handling of HALCON operator instances and HALCON threads;
* provides procedural access to global context variables;
*
* (c) 1996-2018 by MVTec Software GmbH
* www.mvtec.com
*
*****************************************************************************/
#ifndef HINSTANCE_H
#define HINSTANCE_H
#if defined(__cplusplus)
extern "C" {
#endif
#include "hlib/HInstanceDefines.h"
/* HALCON library already initialized? */
extern HLibExport HBOOL IsInitHlib(void);
/* HAccessGlVar - access to global HALCON context variables */
extern HLibExport Herror HAccessGlVar(Hproc_handle proc_handle, HINT element,
HBYTE to_do, VOIDP r_value,
double w_value, char *w_string,
Hkey w_key, INT4_8 index);
/* HCheckInpObjNum - check whether specified object number is in range */
extern HLibExport HBOOL HCheckInpObjNum(Hproc_handle proc_handle,HINT par_num,
INT4_8 obj_num);
extern HLibExport HBOOL HCheckObjNum(Hproc_handle proc_handle,HINT par_num,
INT4_8 obj_num);
extern HLibExport HBOOL HCheckOutpObjNum(Hproc_handle proc_handle,
HINT par_num, INT4_8 obj_num);
extern HLibExport Hproc_handle HTSProcHandle(void);
extern HLibExport Hproc_handle HTSHProcIndepend(HINT op_id);
extern HLibExport void *HCreateTSPSysInfoHandle( void);
extern HLibExport Herror HPushTSPSysInfoHandle( void* handle);
extern HLibExport void *HPopTSPSysInfoHandle( void);
extern HLibExport Herror HClearTSPSysInfoHandle( void* handle);
/* HGetHProc - get a thread specific HALCON operator call instance (no full use) */
extern HLibExport Herror HGetHProc(INT4 proc_index, Hproc_handle *ph);
/* HPutHProc - return a thread specific HALCON operator call instance to Core*/
extern HLibExport Herror HPutHProc(Hproc_handle proc_handle);
/* HGetRecHProc - get a thread specific HALCON operator call instance, able
* to handle recursive calls (no full use) */
extern HLibExport Herror HGetRecHProc(INT4 proc_index, Hproc_handle *ph);
/* HPutRecHProc - return a thread specific (recursiveable) HALCON operator
* call instance */
extern HLibExport Herror HPutRecHProc(Hproc_handle proc_handle);
/* HPutRecHProcErr - return a thread specific (recursiveable) HALCON operator
* call instance, where the operator returned with the given error */
extern HLibExport Herror HPutRecHProcErr(Hproc_handle ph, Herror err);
/* HCreateHProc - create a new HALCON operator call instance */
extern HLibExport Herror HCreateHProc(INT4 current_idx,
Hproc_handle *proc_handle);
/* HDeleteHProc - delete a HALCON operator call instance */
extern HLibExport Herror HDeleteHProc(Hproc_handle proc_handle,HBOOL last,
Herror proc_result);
extern HLibExport HBOOL HOpIdIsValid(HINT opid);
extern HLibExport HINT HGVGet_NumSysOp( void);/* number of system operators*/
extern HLibExport HINT HGVGet_NumOp(void); /* total number of operators */
extern HLibExport char const *HGVGet_Language(void);
extern HLibExport HINT HGVGet_locale_filename_encoding(void);
extern HLibExport HBOOL HGVGet_CPUFeature(HINT feature);
extern HLibExport INT4_8 HGVGet_CPUCache(HINT level);
extern HLibExport char const *HOIGet_InpCtrlParType(HINT opid);
extern HLibExport char const *HOIGet_OutpCtrlParType(HINT opid);
extern HLibExport HINT HOIGet_NumInpCtrlPar(HINT opid);
extern HLibExport HINT HOIGet_NumOutpCtrlPar(HINT opid);
extern HLibExport HINT HOIGet_NumInpObjPar(HINT opid);
extern HLibExport HINT HOIGet_NumOutpObjPar(HINT opid);
extern HLibExport char const *HOIGet_LogicalName(HINT opid);
extern HLibExport HINT HPHGet_NumInpCtrlPar(Hproc_handle ph);
extern HLibExport HINT HPHGet_NumOutpCtrlPar(Hproc_handle ph);
extern HLibExport HINT HPHGet_NumInpObjPar(Hproc_handle ph);
extern HLibExport HINT HPHGet_NumOutpObjPar(Hproc_handle ph);
extern HLibExport INT4 HPHGet_proc_index(Hproc_handle ph);
extern HLibExport const char *HPHGet_LogicalName(Hproc_handle ph);
extern HLibExport INT4 HPHGet_check(Hproc_handle ph);
extern HLibExport INT4_8 HPHGet_PreviousMaxAlloc(Hproc_handle ph);
/* HSetAllFreeOCP - set freeing flag of all outp. ctrl.parameters */
extern HLibExport void HSetAllFreeOCP(Hproc_handle ph);
extern HBOOL HGetInstanceMemCacheMode (void);
extern Herror HSetInstanceMemCacheMode (Hproc_handle ph, HBOOL mode );
/* HProcSetStop sets a stop-flag for all running operator instances
* (asynchonously). Opertors supporting this flag will break execution and
* return (without an error) */
extern HLibExport Herror HProcSetStop(HINT mode);
/* HProcBreak sets a beak flag for all running operator instances
* (asynchonously) */
extern HLibExport Herror HProcBreak(void);
#if defined(__cplusplus)
}
#endif
#endif