mirror of https://github.com/emgucv/emgucv.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.8 KiB
73 lines
1.8 KiB
//----------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) 2004-2020 by EMGU Corporation. All rights reserved.
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
#ifndef EMGU_DATA_LOGGER_H
|
|
#define EMGU_DATA_LOGGER_H
|
|
|
|
#include "opencv2/core/core.hpp"
|
|
#include "opencv2/core/types_c.h"
|
|
|
|
#include <stdarg.h>
|
|
#include <stdio.h>
|
|
|
|
namespace emgu {
|
|
|
|
typedef void (CV_CDECL *DataCallback)(void* data, int loggerId);
|
|
|
|
class CV_EXPORTS DataLogger
|
|
{
|
|
public:
|
|
int logLevel;
|
|
int loggerId;
|
|
|
|
DataCallback callback;
|
|
|
|
DataLogger(int level, int id)
|
|
: callback(0), logLevel(level), loggerId(id) {};
|
|
|
|
void registerCallback(DataCallback dataCallback)
|
|
{
|
|
callback = dataCallback;
|
|
}
|
|
|
|
void log(void* data, int level)
|
|
{
|
|
if (callback && level >=logLevel) callback(data, loggerId);
|
|
}
|
|
|
|
void log(void* data)
|
|
{
|
|
if (callback) callback(data, loggerId);
|
|
}
|
|
|
|
//Use this function only if you are trying to log messages
|
|
//the total length of the message should be less than 1024 char
|
|
void logMsg(const char* format, int level, ...)
|
|
{
|
|
if (callback && level >=logLevel)
|
|
{
|
|
char buffer[1024];
|
|
va_list args;
|
|
va_start(args, level);
|
|
vsprintf(buffer, format, args);
|
|
va_end(args);
|
|
callback(buffer, loggerId);
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
/* DataLogger */
|
|
CVAPI(emgu::DataLogger*) DataLoggerCreate(int logLevel, int loggerId);
|
|
|
|
CVAPI(void) DataLoggerRelease(emgu::DataLogger** logger);
|
|
|
|
CVAPI(void) DataLoggerRegisterCallback(emgu::DataLogger* logger, emgu::DataCallback messageCallback );
|
|
|
|
CVAPI(void) DataLoggerLog(emgu::DataLogger* logger, void* data, int logLevel);
|
|
|
|
#endif
|