/* VSS $Header: /Viper/VPCmdIF/VPCmdIF/VPtrace.h 3     12/19/17 2:33p Suzanne $
*/
///@file 
///@brief Trace utilities available to user code

#pragma once
#include "VPcmdDefs.h"

POLHEMUS_API const char * trActionStr(uint32_t);
POLHEMUS_API const char * trCmdStr(uint32_t);
POLHEMUS_API const char * trErrStr(int32_t);
POLHEMUS_API const wchar_t* trErrStrW(int32_t);

size_t trConvert_data_to_ascii_hex(const void * in_data, size_t in_data_size, char * out, size_t out_size, const char *pre);

extern void trTracef(void*, const char *fmt, ...);      ///< only traces if trace enabled, uses level 3
extern void trTracef1(void*, const char *fmt, ...);     ///< only traces if trace enabled, uses level 1
extern void trTracefHPx(const char *fmt, ...);			//high priority does not check g_bTrace  DOUT
POLHEMUS_API void trTracefHP(const char *fmt, ...);		//high priority does not check g_bTrace  DOUT3
POLHEMUS_API void trTracefHP0(const char *fmt, ...);	//high priority does not check g_bTrace  DOUT0
extern void trTracefHP1(const char *fmt, ...);			//high priority does not check g_bTrace  DOUT1
POLHEMUS_API void trTracefHP5(const char *fmt, ...);	//high priority does not check g_bTrace  DOUT5
POLHEMUS_API void trTracefHP7(const char *fmt, ...);	//high priority does not check g_bTrace  DOUT7

POLHEMUS_API void trTraceHexBuf(uint8_t * pBuf, int32_t iCount, bool bCR = true, const char *szPre = 0);

