/****************************************************************************
 * 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_MQTT_P_H
#define AQHOME_MQTT_P_H


#include "./aqhome_mqtt.h"

#include <gwenhywfar/mutex.h>


#define AQHOME_MQTT_DEFAULT_PIDFILE           "/var/run/aqhome-mqtt.pid"
#define AQHOME_MQTT_DEFAULT_DATADIR           "/var/lib/aqhome-mqtt"
#define AQHOME_MQTT_DEFAULT_DEVICEFILE        "mqttlog/registereddevices.xml"

#define AQHOME_MQTT_DEFAULT_BROKER_PORT       1899
#define AQHOME_MQTT_DEFAULT_BROKER_CLIENTID   "mqtt"




struct AQHOME_MQTT {
  GWEN_MSG_ENDPOINT *rootEndpoint;
  GWEN_MSG_ENDPOINT *brokerEndpoint;  /* do not free (is part of tree pointed to by rootEndpoint) */
  GWEN_MSG_ENDPOINT *mqttEndpoint;    /* do not free (is part of tree pointed to by rootEndpoint) */

  GWEN_DB_NODE *dbArgs;
  char *pidFile;
  int timeout;   /* timeout for run e.g. inside valgrind */

  AQHMQTT_DEVICE_LIST *availableDeviceList;
  AQHMQTT_DEVICE_LIST *registeredDeviceList;

  char *deviceFile;
};


#endif

