Files
aqhomecontrol/aqhome/data/datafile.h
2023-08-12 02:06:54 +02:00

45 lines
1.5 KiB
C

/****************************************************************************
* This file is part of the project Gwenhywfar.
* Gwenhywfar (c) by 2023 Martin Preuss, all rights reserved.
*
* The license for this file can be found in the file COPYING which you
* should have received along with this file.
****************************************************************************/
#ifndef AQH_DATAFILE_H
#define AQH_DATAFILE_H
#include "aqhome/data/storage.h"
#include <gwenhywfar/list.h>
typedef struct AQH_DATAFILE AQH_DATAFILE;
GWEN_LIST_FUNCTION_LIB_DEFS(AQH_DATAFILE, AQH_DataFile, AQHOME_API)
AQHOME_API AQH_DATAFILE *AQH_DataFile_new(const char *fileName, uint64_t valueId);
AQHOME_API void AQH_DataFile_free(AQH_DATAFILE *df);
AQHOME_API int AQH_DataFile_Create(AQH_DATAFILE *df);
AQHOME_API int AQH_DataFile_Open(AQH_DATAFILE *df);
AQHOME_API int AQH_DataFile_Close(AQH_DATAFILE *df);
AQHOME_API const char *AQH_DataFile_GetFileName(const AQH_DATAFILE *df);
AQHOME_API uint64_t AQH_DataFile_GetValueId(const AQH_DATAFILE *df);
AQHOME_API uint64_t AQH_DataFile_GetNumberOfEntries(const AQH_DATAFILE *df);
AQHOME_API uint32_t AQH_DataFile_GetRuntimeFlags(const AQH_DATAFILE *df);
AQHOME_API int AQH_DataFile_ReadRecord(AQH_DATAFILE *df, uint64_t idx, uint64_t *pTimestamp, double *pValue);
AQHOME_API int AQH_DataFile_AppendRecord(AQH_DATAFILE *df, uint64_t timestamp, double value);
AQHOME_API AQH_DATAFILE *AQH_DataFile_List_GetByValueId(AQH_DATAFILE_LIST *fileList, uint64_t id);
#endif