/**************************************************************************** * 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 #endif #include "./aqhomehttp_p.h" #include "aqhome/http/httpservice.h" #include "aqhome/http/httpservice_http.h" #include #include #include #include GWEN_INHERIT(AQH_SERVICE, AQHOME_HTTP) /* ------------------------------------------------------------------------------------------------ * forward declarations * ------------------------------------------------------------------------------------------------ */ static void GWENHYWFAR_CB _freeData(void *bp, void *p); /* ------------------------------------------------------------------------------------------------ * implementations * ------------------------------------------------------------------------------------------------ */ void AqHomeHttpService_Extend(AQH_SERVICE *sv) { AQHOME_HTTP *xsv; GWEN_NEW_OBJECT(AQHOME_HTTP, xsv); GWEN_INHERIT_SETDATA(AQH_SERVICE, AQHOME_HTTP, sv, xsv, _freeData); xsv->contentTree=AQH_HttpContent_new("root"); } void _freeData(void *bp, void *p) { AQHOME_HTTP *xsv; xsv=(AQHOME_HTTP*) p; xsv->storage=NULL; AQH_HttpContent_free(xsv->contentTree); xsv->contentTree=NULL; GWEN_FREE_OBJECT(xsv); } AQH_STORAGE *AqHomeHttpService_GetStorage(const AQH_SERVICE *sv) { if (sv) { AQHOME_HTTP *xsv; xsv=GWEN_INHERIT_GETDATA(AQH_SERVICE, AQHOME_HTTP, sv); if (xsv) return xsv->storage; } return NULL; } void AqHomeHttpService_SetStorage(AQH_SERVICE *sv, AQH_STORAGE *sto) { if (sv) { AQHOME_HTTP *xsv; xsv=GWEN_INHERIT_GETDATA(AQH_SERVICE, AQHOME_HTTP, sv); if (xsv) xsv->storage=sto; } } AQH_HTTP_CONTENT *AqHomeHttpService_GetContentTree(const AQH_SERVICE *sv) { if (sv) { AQHOME_HTTP *xsv; xsv=GWEN_INHERIT_GETDATA(AQH_SERVICE, AQHOME_HTTP, sv); if (xsv) return xsv->contentTree; } return NULL; } void AqHomeHttpService_SetContentTree(AQH_SERVICE *sv, AQH_HTTP_CONTENT *c) { if (sv) { AQHOME_HTTP *xsv; xsv=GWEN_INHERIT_GETDATA(AQH_SERVICE, AQHOME_HTTP, sv); if (xsv) { AQH_HttpContent_free(xsv->contentTree); xsv->contentTree=c; } } }