/****************************************************************************
 * This file is part of the project AqHome.
 * AqHome (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 AQHOME_DATA_H
#define AQHOME_DATA_H


#include "aqhome/data/storage.h"

#include <gwenhywfar/endpoint.h>



typedef struct AQHOME_DATA AQHOME_DATA;


AQHOME_DATA *AqHomeData_new();
void AqHomeData_free(AQHOME_DATA *aqh);

GWEN_MSG_ENDPOINT *AqHomeData_GetIpcdEndpoint(const AQHOME_DATA *aqh);

GWEN_MSG_ENDPOINT *AqHomeData_GetIpcEndpointByServiceName(const AQHOME_DATA *aqh, const char *serviceName);

GWEN_DB_NODE *AqHomeData_GetDbArgs(const AQHOME_DATA *aqh);

AQH_STORAGE *AqHomeData_GetStorage(const AQHOME_DATA *aqh);

const char *AqHomeData_GetPidFile(const AQHOME_DATA *aqh);

int AqHomeData_GetTimeout(const AQHOME_DATA *aqh);

int AqHomeData_LockStorage(AQHOME_DATA *aqh);
int AqHomeData_UnlockStorage(AQHOME_DATA *aqh);




#endif

