123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- // remlogger.h :
- //
- #if !defined(AGD_REMLOGGER_H__21BAEB7B_E478_4ED1_B9F6_FDBCE620C56B__INCLUDED_)
- #define AGD_REMLOGGER_H__21BAEB7B_E478_4ED1_B9F6_FDBCE620C56B__INCLUDED_
- #include <vector>
- #ifndef _LIBBUILD
- #include <gfa/svc/common/mysqlwrap.h>
- #else // _LIBBUILD
- #include "mysqlwrap.h"
- #endif // _LIBBUILD
- /////////////////////////////////////////////////////////////////////////////
- // datalogger.h - Declarations:
- #define _RL_MAX_DB_NAME_LENGTH 64
- #define _RL_MAX_DB_USER_LENGTH 64
- #define _RL_MAX_DB_PASS_LENGTH 64
- #define _RL_MAX_TABLE_NAME_LENGTH 64
- #define _RL_MAX_VARPATH_LENGTH 1000
- #define _RL_MAX_STRVAL_LENGTH 1000
- #define _RL_MAX_BACKLOG 100
- #define _MIN(x, y) ((x) < (y) ? (x) : (y))
- typedef struct _RLPARAMS
- {
- char szDBName[_RL_MAX_DB_NAME_LENGTH];
- char szDBUser[_RL_MAX_DB_USER_LENGTH];
- char szDBPass[_RL_MAX_DB_PASS_LENGTH];
- char szLogsTable[_RL_MAX_TABLE_NAME_LENGTH];
- }RLPARAMS, *LPRLPARAMS;
- typedef const RLPARAMS *LPCRLPARAMS;
- typedef struct _REM_LOG_ENTRY
- {
- time_t nTimestamp;
- bool fNumeric;
- double fValue;
- char szVarPath[_RL_MAX_VARPATH_LENGTH];
- char szStrVal[_RL_MAX_STRVAL_LENGTH];
- }REM_LOG_ENTRY, *LPREM_LOG_ENTRY;
- typedef const REM_LOG_ENTRY *LPCREM_LOG_ENTRY;
- /////////////////////////////////////////////////////////////////////////////
- class CRemLogger
- {
- public:
- CRemLogger(LPCRLPARAMS pdlp);
- virtual ~CRemLogger(void);
-
- bool InitDatabase(bool bCreateAlways = false);
- bool Log(const char *pszVarPath, size_t nCbVarPath, double fValue, const char *pszStrValue, size_t nCbStrValue, time_t nTimestamp, bool fNumeric);
- bool Flush(time_t nTimestamp);
-
- std::string LastError(void) const {
- return m_lastError;}
- private:
- bool CreateDatabase(CMySqlDB &rdb, bool bCreateAlways = false);
- bool CreateLogsTable(CMySqlDB &rdb);
-
- private:
- RLPARAMS m_rlp;
- std::vector<REM_LOG_ENTRY> m_logs;
- std::string m_lastError;
- };
- /////////////////////////////////////////////////////////////////////////////
- #endif // !defined(AGD_REMLOGGER_H__21BAEB7B_E478_4ED1_B9F6_FDBCE620C56B__INCLUDED_)
|