Files
aqhomecontrol/apps/aqhome-nodes/aqhomed.c

169 lines
3.0 KiB
C

/****************************************************************************
* 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.
****************************************************************************/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "./aqhomed_p.h"
#include "./tty_log.h"
#include "aqhome/msg/endpoint_tty.h"
#include "aqhome/ipc/endpoint_ipc.h"
#include <gwenhywfar/gwenhywfar.h>
#include <gwenhywfar/debug.h>
/* ------------------------------------------------------------------------------------------------
* defines
* ------------------------------------------------------------------------------------------------
*/
#define I18N(msg) msg
#define I18S(msg) msg
/* ------------------------------------------------------------------------------------------------
* forward declarations
* ------------------------------------------------------------------------------------------------
*/
/* ------------------------------------------------------------------------------------------------
* implementations
* ------------------------------------------------------------------------------------------------
*/
AQHOMED *AqHomed_new(void)
{
AQHOMED *aqh;
GWEN_NEW_OBJECT(AQHOMED, aqh);
aqh->rootEndpoint=GWEN_MsgEndpoint_new("root", 0);
aqh->nodeDb=AQH_NodeDb_new();
return aqh;
}
void AqHomed_free(AQHOMED *aqh)
{
if (aqh) {
GWEN_MsgEndpoint_free(aqh->rootEndpoint);
aqh->rootEndpoint=NULL;
aqh->ttyEndpoint=NULL;
aqh->ipcdEndpoint=NULL;
aqh->brokerEndpoint=NULL;
GWEN_DB_Group_free(aqh->dbArgs);
AQH_NodeDb_free(aqh->nodeDb);
aqh->dbArgs=NULL;
free(aqh->logFile);
free(aqh->pidFile);
free(aqh->dbFile);
GWEN_FREE_OBJECT(aqh);
}
}
GWEN_MSG_ENDPOINT *AqHomed_GetTtyEndpoint(const AQHOMED *aqh)
{
return aqh?aqh->ttyEndpoint:NULL;
}
GWEN_MSG_ENDPOINT *AqHomed_GetIpcdEndpoint(const AQHOMED *aqh)
{
return aqh?aqh->ipcdEndpoint:NULL;
}
GWEN_MSG_ENDPOINT *AqHomed_GetBrokerEndpoint(const AQHOMED *aqh)
{
return aqh?aqh->brokerEndpoint:NULL;
}
GWEN_DB_NODE *AqHomed_GetDbArgs(const AQHOMED *aqh)
{
return aqh?aqh->dbArgs:NULL;
}
const char *AqHomed_GetLogFile(const AQHOMED *aqh)
{
return aqh?aqh->logFile:NULL;
}
void AqHomed_SetLogFile(AQHOMED *aqh, const char *s)
{
if (aqh) {
free(aqh->logFile);
aqh->logFile=s?strdup(s):NULL;
}
}
const char *AqHomed_GetPidFile(const AQHOMED *aqh)
{
return aqh?aqh->pidFile:NULL;
}
void AqHomed_SetPidFile(AQHOMED *aqh, const char *s)
{
if (aqh) {
free(aqh->pidFile);
aqh->pidFile=s?strdup(s):NULL;
}
}
const char *AqHomed_GetDbFile(const AQHOMED *aqh)
{
return aqh?aqh->dbFile:NULL;
}
void AqHomed_SetDbFile(AQHOMED *aqh, const char *s)
{
if (aqh) {
free(aqh->dbFile);
aqh->dbFile=s?strdup(s):NULL;
}
}
int AqHomed_GetTimeout(const AQHOMED *aqh)
{
return aqh?aqh->timeout:0;
}