OpenNI 1.5.4
XnLog.h
Go to the documentation of this file.
1/****************************************************************************
2* *
3* OpenNI 1.x Alpha *
4* Copyright (C) 2011 PrimeSense Ltd. *
5* *
6* This file is part of OpenNI. *
7* *
8* OpenNI is free software: you can redistribute it and/or modify *
9* it under the terms of the GNU Lesser General Public License as published *
10* by the Free Software Foundation, either version 3 of the License, or *
11* (at your option) any later version. *
12* *
13* OpenNI is distributed in the hope that it will be useful, *
14* but WITHOUT ANY WARRANTY; without even the implied warranty of *
15* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
16* GNU Lesser General Public License for more details. *
17* *
18* You should have received a copy of the GNU Lesser General Public License *
19* along with OpenNI. If not, see <http://www.gnu.org/licenses/>. *
20* *
21****************************************************************************/
22#ifndef _XN_LOG_H_
23#define _XN_LOG_H_
24
25//---------------------------------------------------------------------------
26// Includes
27//---------------------------------------------------------------------------
28#include "XnOS.h"
29#include "XnLogTypes.h"
30#include "XnDump.h"
31
32//---------------------------------------------------------------------------
33// Exported Function Declaration
34//---------------------------------------------------------------------------
35
46
53XN_C_API XnStatus XN_C_DECL xnLogInitFromINIFile(const XnChar* csINIFile, const XnChar* csSectionName);
54
60XN_C_API XnStatus XN_C_DECL xnLogInitFromXmlFile(const XnChar* strFileName);
61
66
67// @}
68
81XN_C_API XnStatus XN_C_DECL xnLogSetMaskMinSeverity(const XnChar* strMask, XnLogSeverity minSeverity);
82
90XN_C_API XnLogSeverity XN_C_DECL xnLogGetMaskMinSeverity(const XnChar* strMask);
91
92// @}
93
107
114
120XN_C_API XnStatus XN_C_DECL xnLogSetConsoleOutput(XnBool bConsoleOutput);
121
127XN_C_API XnStatus XN_C_DECL xnLogSetFileOutput(XnBool bFileOutput);
128
129// @}
130
141
147XN_C_API XnStatus XN_C_DECL xnLogSetLineInfo(XnBool bLineInfo);
148
154XN_C_API XnStatus XN_C_DECL xnLogSetOutputFolder(const XnChar* strOutputFolder);
155
162XN_C_API XnStatus XN_C_DECL xnLogGetFileName(XnChar* strFileName, XnUInt32 nBufferSize);
163
164// @}
165
177XN_C_API XnLogger* XN_C_DECL xnLoggerOpen(const XnChar* strMask);
178
191XN_C_API void XN_C_DECL xnLoggerWrite(XnLogger* pLogger, XnLogSeverity severity, const XnChar* strFile, XnUInt32 nLine, const XnChar* strFormat, ...);
192
200XN_C_API void XN_C_DECL xnLoggerWriteNoEntry(XnLogger* pLogger, XnLogSeverity severity, const XnChar* strFormat, ...);
201
213XN_C_API void XN_C_DECL xnLoggerWriteBinaryData(XnLogger* pLogger, XnLogSeverity severity, const XnChar* strFile, XnUInt32 nLine, XnUChar* pBinData, XnUInt32 nDataSize, const XnChar* strFormat, ...);
214
221XN_C_API XnBool XN_C_DECL xnLoggerIsEnabled(XnLogger* pLogger, XnLogSeverity severity);
222
228XN_C_API void XN_C_DECL _xnLoggerClose(XnLogger* pLogger);
229
235#define xnLoggerClose(pLogger) \
236 { \
237 _xnLoggerClose(pLogger); \
238 pLogger = NULL; \
239 }
240
241#if XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_WIN32_VAARGS_STYLE
245 #define xnLoggerWriteHelper(pLogger, severity, csFormat, ...) \
246 if (pLogger != NULL && severity >= pLogger->nMinSeverity) \
247 { \
248 xnLoggerWrite(pLogger, severity, __FILE__, __LINE__, csFormat, __VA_ARGS__); \
249 }
250
254 #define xnLoggerVerbose(pLogger, csFormat, ...) xnLoggerWriteHelper(pLogger, XN_LOG_VERBOSE, csFormat, __VA_ARGS__)
258 #define xnLoggerInfo(pLogger, csFormat, ...) xnLoggerWriteHelper(pLogger, XN_LOG_INFO, csFormat, __VA_ARGS__)
262 #define xnLoggerWarning(pLogger, csFormat, ...) xnLoggerWriteHelper(pLogger, XN_LOG_WARNING, csFormat, __VA_ARGS__)
266 #define xnLoggerError(pLogger, csFormat, ...) xnLoggerWriteHelper(pLogger, XN_LOG_ERROR, csFormat, __VA_ARGS__)
267
276 #define XN_RETURN_WITH_LOG(pLogger, nRetVal, severity, csFormat, ...) \
277 { \
278 xnLoggerWriteHelper(pLogger, severity, csFormat, __VA_ARGS__); \
279 return (nRetVal); \
280 }
281
289 #define XN_RETURN_WITH_WARNING_LOG(pLogger, nRetVal, csFormat, ...) \
290 XN_RETURN_WITH_LOG(pLogger, nRetVal, XN_LOG_WARNING, csFormat, __VA_ARGS__)
291
299 #define XN_RETURN_WITH_ERROR_LOG(pLogger, nRetVal, csFormat, ...) \
300 XN_RETURN_WITH_LOG(pLogger, nRetVal, XN_LOG_ERROR, csFormat, __VA_ARGS__)
301
302#elif XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_GCC_VAARGS_STYLE
303 #define xnLoggerWriteHelper(pLogger, severity, csFormat, ...) \
304 if (pLogger != NULL && severity >= pLogger->nMinSeverity) \
305 { \
306 xnLoggerWrite(pLogger, severity, __FILE__, __LINE__, csFormat, ##__VA_ARGS__); \
307 }
308
309 #define xnLoggerVerbose(pLogger, csFormat, ...) xnLoggerWriteHelper(pLogger, XN_LOG_VERBOSE, csFormat,## __VA_ARGS__)
310 #define xnLoggerInfo(pLogger, csFormat, ...) xnLoggerWriteHelper(pLogger, XN_LOG_INFO, csFormat, ##__VA_ARGS__)
311 #define xnLoggerWarning(pLogger, csFormat, ...) xnLoggerWriteHelper(pLogger, XN_LOG_WARNING, csFormat, ##__VA_ARGS__)
312 #define xnLoggerError(pLogger, csFormat, ...) xnLoggerWriteHelper(pLogger, XN_LOG_ERROR, csFormat, ##__VA_ARGS__)
313
314 /* Writes to the log and returns nRetVal */
315 #define XN_RETURN_WITH_LOG(pLogger, nRetVal, severity, csFormat, ...) \
316 { \
317 xnLoggerWriteHelper(pLogger, severity, csFormat, ##__VA_ARGS__); \
318 return (nRetVal); \
319 }
320
321 /* Logs a warning and returns nRetVal */
322 #define XN_RETURN_WITH_WARNING_LOG(pLogger, nRetVal, csFormat, ...) \
323 XN_RETURN_WITH_LOG(pLogger, nRetVal, XN_LOG_WARNING, csFormat, ##__VA_ARGS__)
324
325 /* Logs an error and returns nRetVal */
326 #define XN_RETURN_WITH_ERROR_LOG(pLogger, nRetVal, csFormat, ...) \
327 XN_RETURN_WITH_LOG(pLogger, nRetVal, XN_LOG_ERROR, csFormat, ##__VA_ARGS__)
328
329#elif XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_ARC_VAARGS_STYLE
330 #define xnLoggerWriteHelper(pLogger, severity, csFormat...) \
331 if (pLogger != NULL && severity >= pLogger->nMinSeverity) \
332 { \
333 xnLoggerWrite(pLogger, severity, __FILE__, __LINE__, csFormat); \
334 }
335
336 #define xnLoggerVerbose(pLogger, csFormat...) xnLoggerWriteHelper(pLogger, XN_LOG_VERBOSE, csFormat)
337 #define xnLoggerInfo(pLogger, csFormat...) xnLoggerWriteHelper(pLogger, XN_LOG_INFO, csFormat)
338 #define xnLoggerWarning(pLogger, csFormat...) xnLoggerWriteHelper(pLogger, XN_LOG_WARNING, csFormat)
339 #define xnLoggerError(pLogger, csFormat...) xnLoggerWriteHelper(pLogger, XN_LOG_ERROR, csFormat)
340
341 /* Writes to the log and returns nRetVal */
342 #define XN_RETURN_WITH_LOG(pLogger, nRetVal, severity, csFormat...) \
343 { \
344 xnLoggerWriteHelper(pLogger, severity, csFormat); \
345 return (nRetVal); \
346 }
347
348 /* Logs a warning and returns nRetVal */
349 #define XN_RETURN_WITH_WARNING_LOG(pLogger, nRetVal, csFormat...) \
350 XN_RETURN_WITH_LOG(pLogger, nRetVal, XN_LOG_WARNING, csFormat)
351
352 /* Logs an error and returns nRetVal */
353 #define XN_RETURN_WITH_ERROR_LOG(pLogger, nRetVal, csFormat...) \
354 XN_RETURN_WITH_LOG(pLogger, nRetVal, XN_LOG_ERROR, csFormat)
355
356#elif XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_NO_VAARGS
357 #define xnLoggerWriteHelper(pLogger, severity, csFormat, arg) \
358 if (pLogger != NULL && severity >= pLogger->nMinSeverity) \
359 { \
360 xnLoggerWrite(pLogger, severity, __FILE__, __LINE__, csFormat, arg); \
361 }
362
363 #define xnLoggerVerbose(pLogger, csFormat, arg) xnLoggerWriteHelper(pLogger, XN_LOG_VERBOSE, csFormat, arg)
364 #define xnLoggerInfo(pLogger, csFormat, arg) xnLoggerWriteHelper(pLogger, XN_LOG_INFO, csFormat, arg)
365 #define xnLoggerWarning(pLogger, csFormat, arg) xnLoggerWriteHelper(pLogger, XN_LOG_WARNING, csFormat, arg)
366 #define xnLoggerError(pLogger, csFormat, arg) xnLoggerWriteHelper(pLogger, XN_LOG_ERROR, csFormat, arg)
367
368 /* Writes to the log and returns nRetVal */
369 #define XN_RETURN_WITH_LOG(pLogger, nRetVal, severity, csFormat) \
370 { \
371 xnLoggerWriteHelper(pLogger, severity, csFormat); \
372 return (nRetVal); \
373 }
374
375 /* Logs a warning and returns nRetVal */
376 #define XN_RETURN_WITH_WARNING_LOG(pLogger, nRetVal, csFormat) \
377 XN_RETURN_WITH_LOG(pLogger, nRetVal, XN_LOG_WARNING, csFormat)
378
379 /* Logs an error and returns nRetVal */
380 #define XN_RETURN_WITH_ERROR_LOG(pLogger, nRetVal, csFormat) \
381 XN_RETURN_WITH_LOG(pLogger, nRetVal, XN_LOG_ERROR, csFormat)
382
383#else
384 #error Xiron Log - Unknown VAARGS type!
385#endif
386
387// @}
388
406XN_C_API XnStatus XN_C_DECL xnLogCreateNewFile(const XnChar* strName, XnBool bSessionBased, XnChar* csFullPath, XnUInt32 nPathBufferSize, XN_FILE_HANDLE* phFile);
407
408// @}
409
410#define XN_MASK_RETVAL_CHECKS "RetValChecks"
411
412#if XN_PLATFORM == XN_PLATFORM_ARC
414#else
416#endif
417
419#define XN_IS_STATUS_OK_LOG_ERROR(what, nRetVal) \
420 if (nRetVal != XN_STATUS_OK) \
421 { \
422 xnLoggerError(XN_LOGGER_RETVAL_CHECKS, "Failed to " what ": %s", xnGetStatusString(nRetVal)); \
423 XN_ASSERT(FALSE); \
424 return (nRetVal); \
425 }
426
427
428#ifndef __XN_NO_BC__
429
430XN_C_API XnStatus XN_API_DEPRECATED("Please use xnLogSetMaskMinSeverity() instead") XN_C_DECL xnLogSetMaskState(const XnChar* csMask, XnBool bEnabled);
431XN_C_API XnStatus XN_API_DEPRECATED("Please use xnLogSetMaskMinSeverity() instead") XN_C_DECL xnLogSetSeverityFilter(XnLogSeverity nMinSeverity);
432XN_C_API XnBool XN_C_DECL xnLogIsEnabled(const XnChar* csLogMask, XnLogSeverity nSeverity);
433XN_C_API void XN_C_DECL xnLogWrite(const XnChar* csLogMask, XnLogSeverity nSeverity, const XnChar* csFile, XnUInt32 nLine, const XnChar* csFormat, ...);
434XN_C_API void XN_C_DECL xnLogWriteNoEntry(const XnChar* csLogMask, XnLogSeverity nSeverity, const XnChar* csFormat, ...);
435XN_C_API void XN_C_DECL xnLogWriteBinaryData(const XnChar* csLogMask, XnLogSeverity nSeverity, const XnChar* csFile, XnUInt32 nLine, XnUChar* pBinData, XnUInt32 nDataSize, const XnChar* csFormat, ...);
436XN_C_API XnStatus XN_API_DEPRECATED("Use xnLogCreateNewFile() instead") XN_C_DECL xnLogCreateFile(const XnChar* strFileName, XN_FILE_HANDLE* phFile);
437XN_C_API XnStatus XN_API_DEPRECATED("Use xnLogCreateNewFile() instead") XN_C_DECL xnLogCreateFileEx(const XnChar* strFileName, XnBool bSessionBased, XN_FILE_HANDLE* phFile);
438
439#if XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_WIN32_VAARGS_STYLE
440 #define xnLogVerbose(csLogMask, csFormat, ...) xnLogWrite(csLogMask, XN_LOG_VERBOSE, __FILE__, __LINE__, csFormat, __VA_ARGS__)
441 #define xnLogInfo(csLogMask, csFormat, ...) xnLogWrite(csLogMask, XN_LOG_INFO, __FILE__, __LINE__, csFormat, __VA_ARGS__)
442 #define xnLogWarning(csLogMask, csFormat, ...) xnLogWrite(csLogMask, XN_LOG_WARNING, __FILE__, __LINE__, csFormat, __VA_ARGS__)
443 #define xnLogError(csLogMask, csFormat, ...) xnLogWrite(csLogMask, XN_LOG_ERROR, __FILE__, __LINE__, csFormat, __VA_ARGS__)
444
445 /* Writes to the log and returns nRetVal */
446 #define XN_LOG_RETURN(nRetVal, nSeverity, csLogMask, csFormat, ...) \
447 { \
448 xnLogWrite(csLogMask, nSeverity, __FILE__, __LINE__, csFormat, __VA_ARGS__); \
449 return (nRetVal); \
450 }
451
452 /* Logs a warning and returns nRetVal */
453 #define XN_LOG_WARNING_RETURN(nRetVal, csLogMask, csFormat, ...) \
454 XN_LOG_RETURN(nRetVal, XN_LOG_WARNING, csLogMask, csFormat, __VA_ARGS__)
455
456 /* Logs a warning and returns nRetVal */
457 #define XN_LOG_ERROR_RETURN(nRetVal, csLogMask, csFormat, ...) \
458 XN_LOG_RETURN(nRetVal, XN_LOG_ERROR, csLogMask, csFormat, __VA_ARGS__)
459
460#elif XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_GCC_VAARGS_STYLE
461 #define xnLogVerbose(csLogMask, csFormat, ...) xnLogWrite(csLogMask, XN_LOG_VERBOSE, __FILE__, __LINE__, csFormat, ##__VA_ARGS__)
462 #define xnLogInfo(csLogMask, csFormat, ...) xnLogWrite(csLogMask, XN_LOG_INFO, __FILE__, __LINE__, csFormat, ##__VA_ARGS__)
463 #define xnLogWarning(csLogMask, csFormat, ...) xnLogWrite(csLogMask, XN_LOG_WARNING, __FILE__, __LINE__, csFormat, ##__VA_ARGS__)
464 #define xnLogError(csLogMask, csFormat, ...) xnLogWrite(csLogMask, XN_LOG_ERROR, __FILE__, __LINE__, csFormat, ##__VA_ARGS__)
465
466 /* Writes to the log and returns nRetVal */
467 #define XN_LOG_RETURN(nRetVal, nSeverity, csLogMask, csFormat, ...) \
468 { \
469 xnLogWrite(csLogMask, nSeverity, __FILE__, __LINE__, csFormat, ##__VA_ARGS__); \
470 return (nRetVal); \
471 }
472
473 /* Logs a warning and returns nRetVal */
474 #define XN_LOG_WARNING_RETURN(nRetVal, csLogMask, csFormat, ...) \
475 XN_LOG_RETURN(nRetVal, XN_LOG_WARNING, csLogMask, csFormat, ##__VA_ARGS__)
476
477 /* Logs a warning and returns nRetVal */
478 #define XN_LOG_ERROR_RETURN(nRetVal, csLogMask, csFormat, ...) \
479 XN_LOG_RETURN(nRetVal, XN_LOG_ERROR, csLogMask, csFormat, ##__VA_ARGS__)
480
481#elif XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_ARC_VAARGS_STYLE
482 #define xnLogVerbose(csLogMask, csFormat...) xnLogWrite(csLogMask, XN_LOG_VERBOSE, __FILE__, __LINE__, csFormat)
483 #define xnLogInfo(csLogMask, csFormat...) xnLogWrite(csLogMask, XN_LOG_INFO, __FILE__, __LINE__, csFormat)
484 #define xnLogWarning(csLogMask, csFormat...) xnLogWrite(csLogMask, XN_LOG_WARNING, __FILE__, __LINE__, csFormat)
485 #define xnLogError(csLogMask, csFormat...) xnLogWrite(csLogMask, XN_LOG_ERROR, __FILE__, __LINE__, csFormat)
486
487 /* Writes to the log and returns nRetVal */
488 #define XN_LOG_RETURN(nRetVal, nSeverity, csLogMask, csFormat...) \
489 { \
490 xnLogWrite(csLogMask, nSeverity, __FILE__, __LINE__, csFormat); \
491 return (nRetVal); \
492 }
493
494 /* Logs a warning and returns nRetVal */
495 #define XN_LOG_WARNING_RETURN(nRetVal, csLogMask, csFormat...) \
496 XN_LOG_RETURN(nRetVal, XN_LOG_WARNING, csLogMask, csFormat)
497
498 /* Logs a warning and returns nRetVal */
499 #define XN_LOG_ERROR_RETURN(nRetVal, csLogMask, csFormat...) \
500 XN_LOG_RETURN(nRetVal, XN_LOG_ERROR, csLogMask, csFormat)
501
502 /* If nRetVal is not ok, writes to the log and returns nRetVal */
503 #define XN_IS_STATUS_OK_LOG(nRetVal, nSeverity, csLogMask, csFormat...) \
504 if (nRetVal != XN_STATUS_OK) \
505 { \
506 XN_LOG_RETURN(nRetVal, nSeverity, csLogMask, csFormat) \
507 }
508
509 /* If nRetVal is not ok, logs a warning and returns nRetVal */
510 #define XN_IS_STATUS_OK_WARNING(nRetVal, csLogMask, csFormat...) \
511 XN_IS_STATUS_OK_LOG(nRetVal, XN_LOG_WARNING, csLogMask, csFormat)
512
513 /* If nRetVal is not ok, logs an error and returns nRetVal */
514 #define XN_IS_STATUS_OK_ERROR(nRetVal, csLogMask, csFormat...) \
515 XN_IS_STATUS_OK_LOG(nRetVal, XN_LOG_ERROR, csLogMask, csFormat)
516
517#elif XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_NO_VAARGS
518 #define xnLogVerbose(csLogMask, csFormat, args) xnLogWrite(csLogMask, XN_LOG_VERBOSE, __FILE__, __LINE__, csFormat, args)
519 #define xnLogInfo(csLogMask, csFormat, args) xnLogWrite(csLogMask, XN_LOG_INFO, __FILE__, __LINE__, csFormat, args)
520 #define xnLogWarning(csLogMask, csFormat, args) xnLogWrite(csLogMask, XN_LOG_WARNING, __FILE__, __LINE__, csFormat, args)
521 #define xnLogError(csLogMask, csFormat, args) xnLogWrite(csLogMask, XN_LOG_ERROR, __FILE__, __LINE__, csFormat, args)
522
523 /* Writes to the log and returns nRetVal */
524 #define XN_LOG_RETURN(nRetVal, nSeverity csLogMask, csFormat, args) \
525 { \
526 xnLogWrite(csLogMask, nSeverity, __FILE__, __LINE__, csFormat, args); \
527 return (nRetVal); \
528 }
529
530 /* Logs a warning and returns nRetVal */
531 #define XN_LOG_WARNING_RETURN(nRetVal, csLogMask, csFormat, args) \
532 XN_LOG_RETURN(nRetVal, XN_LOG_WARNING, csLogMask, csFormat, args)
533
534 /* Logs an error and returns nRetVal */
535 #define XN_LOG_ERROR_RETURN(nRetVal, csLogMask, csFormat, args) \
536 XN_LOG_RETURN(nRetVal, XN_LOG_ERROR, csLogMask, csFormat, args)
537
538#else
539 #error Xiron Log - Unknown VAARGS type!
540#endif
541
542#endif // ifndef __XN_NO_BC__
543
544#endif //_XN_LOG_H_
545
XN_C_API void XN_C_DECL xnLogUnregisterLogWriter(XnLogWriter *pWriter)
XN_C_API XnStatus XN_C_DECL xnLogSetConsoleOutput(XnBool bConsoleOutput)
XN_C_API XnStatus XN_C_DECL xnLogInitSystem()
XN_C_API XnStatus XN_C_DECL xnLogSetLineInfo(XnBool bLineInfo)
XN_C_API void XN_C_DECL xnLoggerWrite(XnLogger *pLogger, XnLogSeverity severity, const XnChar *strFile, XnUInt32 nLine, const XnChar *strFormat,...)
XN_C_API void XN_C_DECL xnLoggerWriteBinaryData(XnLogger *pLogger, XnLogSeverity severity, const XnChar *strFile, XnUInt32 nLine, XnUChar *pBinData, XnUInt32 nDataSize, const XnChar *strFormat,...)
XN_C_API XnStatus XN_C_DECL xnLogStartNewFile()
XN_C_API XnStatus XN_C_DECL xnLogGetFileName(XnChar *strFileName, XnUInt32 nBufferSize)
XN_C_API XnStatus XN_C_DECL xnLogCreateNewFile(const XnChar *strName, XnBool bSessionBased, XnChar *csFullPath, XnUInt32 nPathBufferSize, XN_FILE_HANDLE *phFile)
XN_C_API XnStatus XN_C_DECL xnLogClose()
XN_C_API XnStatus XN_C_DECL xnLogSetFileOutput(XnBool bFileOutput)
XN_C_API XnStatus XN_C_DECL xnLogInitFromXmlFile(const XnChar *strFileName)
XN_C_API XnBool XN_C_DECL xnLoggerIsEnabled(XnLogger *pLogger, XnLogSeverity severity)
XN_C_API XnLogger * XN_LOGGER_RETVAL_CHECKS
Definition: XnLog.h:415
XN_C_API XnStatus XN_C_DECL xnLogRegisterLogWriter(XnLogWriter *pWriter)
XN_C_API XnLogger *XN_C_DECL xnLoggerOpen(const XnChar *strMask)
XN_C_API XnStatus XN_C_DECL xnLogInitFromINIFile(const XnChar *csINIFile, const XnChar *csSectionName)
XN_C_API XnStatus XN_C_DECL xnLogSetOutputFolder(const XnChar *strOutputFolder)
XN_C_API XnStatus XN_C_DECL xnLogSetMaskMinSeverity(const XnChar *strMask, XnLogSeverity minSeverity)
XN_C_API XnLogSeverity XN_C_DECL xnLogGetMaskMinSeverity(const XnChar *strMask)
XN_C_API void XN_C_DECL xnLoggerWriteNoEntry(XnLogger *pLogger, XnLogSeverity severity, const XnChar *strFormat,...)
XnLogSeverity
Definition: XnLogTypes.h:43
#define XN_C_API
Definition: XnPlatform.h:129
XnUInt32 XnStatus
Definition: XnStatus.h:34
Definition: XnLogTypes.h:72
Definition: XnLogTypes.h:55