#ifndef NDTSERRORINTERNAL_H
#define NDTSERRORINTERNAL_H

#include "NDTSEnums.h"
#include "NDTSErrorConstants.h"

// In the RQ_ReturnCode types we use the following convention:
// low 8 bits = specific error value from this function
// next 8 bits = function returning error
// next 8 bits = SDK number
// top 8 bits reserved, currently always zero
// SDK values are:
// 0 = RQ
// 1 = pulser/receiver
// 2 = HLSDK 
// 3 = RQT - threading dll
// 4 = A2F - Arm2Flat
// See NDTSErrorConstant.h for the full list - there have been several more added.


#ifdef __cplusplus
extern "C" {
#endif

typedef struct 
{
	FPNDTS_GetCodeString pfpGetCodeStrings[NDTS_ERROR_NUMBER_OF_SUPPORTED_SDKS] ;
} NDTS_Error_GlobalState ;

extern NDTS_Error_GlobalState globalState ;

NDTSERROR_API void CALL_CONV NDTS_Error_DLL_Initialise() ;
NDTSERROR_API void CALL_CONV NDTS_Error_DLL_Uninitialise() ;

#ifdef __cplusplus
}
#endif


#endif