update domo controller to the rest api

This commit is contained in:
jbnadal
2018-04-30 15:18:45 +02:00
parent c29d356fc2
commit 77c888a5b1
18 changed files with 525 additions and 588 deletions

View File

@@ -41,5 +41,21 @@
"method": "delete" "method": "delete"
} }
} }
{
"model": "put",
"endpoint": "/v1/shutters/:id/up",
"ubus": {
"path": "domo.shutters.up",
"method": "up"
}
},
{
"model": "put",
"endpoint": "/v1/shutters/:id/down",
"ubus": {
"path": "domo.shutters.down",
"method": "down"
}
}
] ]
} }

View File

@@ -3,9 +3,9 @@
"resources": [ "resources": [
{ {
"model": "get", "model": "get",
"endpoint": "/v1/device-capabilities", "endpoint": "/v1/capabilities",
"ubus": { "ubus": {
"path": "domo.devices.capabilities", "path": "domo.capabilities",
"method": "list" "method": "list"
} }
} }

View File

@@ -6,7 +6,7 @@ module.exports = {
sidebar: [ sidebar: [
'/', '/',
['/ history', 'History'], ['/ history', 'History'],
['/ capabilities', 'Capabilities'], ['/ device', 'Capabilities'],
] ]
} }
} }

View File

@@ -4,3 +4,4 @@
"docs:build": "vuepress build" "docs:build": "vuepress build"
} }
} }
0

View File

@@ -26,11 +26,11 @@ file(
${workspaceRoot}/src/prog/domod/src/devices/shutter.cpp ${workspaceRoot}/src/prog/domod/src/devices/shutter.cpp
${workspaceRoot}/src/prog/domod/src/devices/sprinkler.cpp ${workspaceRoot}/src/prog/domod/src/devices/sprinkler.cpp
# ubus models # ubus models
${workspaceRoot}/src/prog/domod/src/ubus/capabilities_model.cpp ${workspaceRoot}/src/prog/domod/src/ubus/capabilities-controller.cpp
${workspaceRoot}/src/prog/domod/src/ubus/capabilities_lights_model.cpp ${workspaceRoot}/src/prog/domod/src/ubus/lights-controller.cpp
${workspaceRoot}/src/prog/domod/src/ubus/capabilities_shutters_model.cpp ${workspaceRoot}/src/prog/domod/src/ubus/shutters-controller.cpp
${workspaceRoot}/src/prog/domod/src/ubus/capabilities_sprinklers_model.cpp ${workspaceRoot}/src/prog/domod/src/ubus/sprinklers-controller.cpp
${workspaceRoot}/src/prog/domod/src/ubus/sequences_model.cpp ${workspaceRoot}/src/prog/domod/src/ubus/sequences-controller.cpp
# timers # timers
${workspaceRoot}/src/prog/domod/src/sequences/sequences-manager.cpp ${workspaceRoot}/src/prog/domod/src/sequences/sequences-manager.cpp
${workspaceRoot}/src/prog/domod/src/sequences/sequence.cpp ${workspaceRoot}/src/prog/domod/src/sequences/sequence.cpp

View File

@@ -40,10 +40,12 @@ extern "C" {
#include "sequences/sequences-manager.h" #include "sequences/sequences-manager.h"
#include "devices/devices-manager.h" #include "devices/devices-manager.h"
#include "ubus/capabilities_model.h" #include "ubus/capabilities-controller.h"
#include "ubus/capabilities_lights_model.h" #include "ubus/lights-controller.h"
#include "ubus/capabilities_shutters_model.h" #include "ubus/shutters-controller.h"
#include "ubus/capabilities_sprinklers_model.h" #include "ubus/sprinklers-controller.h"
#include "ubus/sequences-controller.h"
/*-------------------------------- DEFINES ---------------------------------*/ /*-------------------------------- DEFINES ---------------------------------*/
@@ -62,7 +64,6 @@ static struct ubus_context *setup_ubus(void)
if (uloop_init() != 0) if (uloop_init() != 0)
{ {
fprintf(stderr, "Failed to init Uloop.\n"); fprintf(stderr, "Failed to init Uloop.\n");
return NULL; return NULL;
} }
@@ -73,7 +74,6 @@ static struct ubus_context *setup_ubus(void)
if (!the_ctx) if (!the_ctx)
{ {
fprintf(stderr, "Failed to connect to ubus\n"); fprintf(stderr, "Failed to connect to ubus\n");
return NULL; return NULL;
} }
@@ -150,10 +150,11 @@ int main(int argc, char *argv[])
the_sequences_manager.save(); the_sequences_manager.save();
/* Setup the UBus Models. */ /* Setup the UBus Models. */
CapabilitiesModel the_capabilities(the_config_path + "./capabilities.json"); CapabilitiesController the_capabilities(the_config_path + "./capabilities.json");
CapabilitiesLightsModel the_cap_lights(&the_devices_manager); LightsController the_lights(&the_devices_manager);
CapabilitiesShuttersModel the_cap_shutters(&the_devices_manager); ShuttersController the_shutters(&the_devices_manager);
CapabilitiesSprinklersModel the_cap_sprinklers(&the_devices_manager); SprinklersController the_sprinklers(&the_devices_manager);
SequencesController the_sequences(&the_sequences_manager);
/* Setup the Ubus context. */ /* Setup the Ubus context. */
the_ctx = setup_ubus(); the_ctx = setup_ubus();
@@ -164,9 +165,10 @@ int main(int argc, char *argv[])
/* Add the UBus to the model exposed. */ /* Add the UBus to the model exposed. */
ubus_add_object(the_ctx, &the_capabilities); ubus_add_object(the_ctx, &the_capabilities);
ubus_add_object(the_ctx, &the_cap_lights); ubus_add_object(the_ctx, &the_lights);
ubus_add_object(the_ctx, &the_cap_shutters); ubus_add_object(the_ctx, &the_shutters);
ubus_add_object(the_ctx, &the_cap_sprinklers); ubus_add_object(the_ctx, &the_sprinklers);
ubus_add_object(the_ctx, &the_sequences);
/* Main Event Loop. */ /* Main Event Loop. */
uloop_run(); uloop_run();
@@ -176,89 +178,3 @@ int main(int argc, char *argv[])
return the_ret; return the_ret;
} }
#if 0
#include "ubus/speach_command.h"
#include "ubus/timers.h"
#include "timers/Timers.h"
#include "devices/Devices.h"
/*--------------------------------- GLOBALS ---------------------------------*/
#define kConfigPath "/usr/local/share/domo/"
} // SetupUbus.
/*! ----------------------------------------------------------------------------
* @fn main
*
* @brief Main function of Domo Daemon.
*/
int main (void)
{
int theRet = 0;
std::string theDevicePath, theTimerPath;
struct ubus_context *theCtx = NULL;
// Create Configs Paths...
theDevicePath = kConfigPath;
theDevicePath += "/Devices.json";
theTimerPath = kConfigPath;
theTimerPath += "/Timers.json";
//printf ("DOMO PATH: %s\n", thePath.c_str());
Devices theDevices (theDevicePath);
if (theDevices.load() != 0) {
return -1;
}
/* Setup the Timers. */
Timers theTimers (theTimerPath, &theDevices);
if (theTimers.load() != 0) {
return -1;
}
/* Setup the UBus Models. */
CapabilitiesModel theCapabilities;
CapabilitiesLightsModel theCapLights (&theDevices);
SpeachCommandModel theSpeachCommand (&theDevices);
TimersModel theTimersModel (&theTimers);
/* Setup the Ubus context. */
theCtx = setupUbus ();
if (theCtx == NULL) {
return -1;
}
/* Add the UBus to the model exposed. */
ubus_add_object (theCtx, &theCapabilities);
ubus_add_object (theCtx, &theCapLights);
ubus_add_object (theCtx, &theSpeachCommand);
ubus_add_object (theCtx, &theTimersModel);
/* Main Event Loop. */
uloop_run ();
ubus_free (theCtx);
uloop_done ();
return theRet;
}
#endif

View File

@@ -1,5 +1,5 @@
/*! /*!
* capabilities.cpp * devices-capabilities.cpp
* *
* Copyright (c) 2015-2018, NADAL Jean-Baptiste. All rights reserved. * Copyright (c) 2015-2018, NADAL Jean-Baptiste. All rights reserved.
* *
@@ -33,43 +33,43 @@ extern "C" {
#include <libubox/blobmsg_json.h> #include <libubox/blobmsg_json.h>
} }
#include "capabilities_model.h" #include "capabilities-controller.h"
namespace namespace
{ {
using namespace UBus; using namespace UBus;
static ObjectType gCapabilitiesModelUbus_types( static ObjectType gCapabilitiesControllerUbus_types(
"capabilities", "CapabilitiesController",
Method("get", UBUS_CPP(CapabilitiesModel, get))); Method("list", UBUS_CPP(CapabilitiesController, list)));
} }
/*! ---------------------------------------------------------------------------- /*! ----------------------------------------------------------------------------
* @fn CapabilitiesModel * @fn CapabilitiesController
* *
* @brief Constructor of the UBus Mixer Volume. * @brief Constructor of the Device Capabilities controller.
*/ */
CapabilitiesModel::CapabilitiesModel(const std::string &a_capability_file) : UBusObject(gCapabilitiesModelUbus_types, "domo.capabilities"), CapabilitiesController::CapabilitiesController(const std::string &a_capability_file) : UBusObject(gCapabilitiesControllerUbus_types, "domo.capabilities"),
m_capability_file(a_capability_file) m_capability_file(a_capability_file)
{ {
} }
/*! ---------------------------------------------------------------------------- /*! ----------------------------------------------------------------------------
* @fn ~CapabilitiesModel * @fn ~CapabilitiesController
* *
* @brief Destructor of the UBus Mixer Volume. * @brief Destructor of the Device Capabilities controller.
*/ */
CapabilitiesModel::~CapabilitiesModel(void) CapabilitiesController::~CapabilitiesController(void)
{ {
} }
/*! ---------------------------------------------------------------------------- /*! ----------------------------------------------------------------------------
* @fn get * @fn list
* *
* @brief Get the List of the Capabilities. * @brief Get the List of the Capabilities.
*/ */
int CapabilitiesModel::get(struct ubus_context *a_ctx, struct ubus_request_data *a_req, struct blob_attr *) int CapabilitiesController::list(struct ubus_context *a_ctx, struct ubus_request_data *a_req, struct blob_attr *)
{ {
int the_result; int the_result;
struct blob_buf the_buf = {0}; struct blob_buf the_buf = {0};

View File

@@ -1,5 +1,5 @@
/*! /*!
* capabilities.h * capabilities-controller.h
* *
* Copyright (c) 2015-2018, NADAL Jean-Baptiste. All rights reserved. * Copyright (c) 2015-2018, NADAL Jean-Baptiste. All rights reserved.
* *
@@ -23,8 +23,8 @@
* *
*/ */
#ifndef _UBUS_CAPABILITIES_MODEL_H #ifndef _UBUS_CAPABILITIES_CONTROLLER_H
#define _UBUS_CAPABILITIES_MODEL_H #define _UBUS_CAPABILITIES_CONTROLLER_H
/*------------------------------- INCLUDES ----------------------------------*/ /*------------------------------- INCLUDES ----------------------------------*/
@@ -37,16 +37,16 @@
/*--------------------------------- CLASS ----------------------------------*/ /*--------------------------------- CLASS ----------------------------------*/
class CapabilitiesModel : public UBusObject class CapabilitiesController : public UBusObject
{ {
public: public:
CapabilitiesModel(const std::string &a_capability_file); CapabilitiesController(const std::string &a_capability_file);
~CapabilitiesModel(void); ~CapabilitiesController(void);
int get(struct ubus_context *, struct ubus_request_data *, struct blob_attr *); int list(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
private: private:
std::string m_capability_file; std::string m_capability_file;
}; };
#endif /* _UBUS_CAPABILITIES_MODEL_H */ #endif /* _UBUS_CAPABILITIES_CONTROLLER_H */

View File

@@ -1,195 +0,0 @@
/*!
* capabilities_shutters.cpp
*
* Copyright (c) 2015-2018, NADAL Jean-Baptiste. All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA
*
* @Author: NADAL Jean-Baptiste
* @Date: 24/03/2015
*
*/
/*-------------------------------- INCLUDES ---------------------------------*/
extern "C" {
#include <libubox/blobmsg_json.h>
}
#include <json-c/json.h>
#include "devices/devices-manager.h"
#include "domo.h"
#include "capabilities_shutters_model.h"
namespace
{
using namespace UBus;
static ObjectType gCapabilitiesShuttersModelUbus_types(
"shutters",
Method("get", UBUS_CPP(CapabilitiesShuttersModel, get)),
Method("delete", UBUS_CPP(CapabilitiesShuttersModel, del)),
Method("put", UBUS_CPP(CapabilitiesShuttersModel, put)),
Method("post", UBUS_CPP(CapabilitiesShuttersModel, post)),
Method("open", UBUS_CPP(CapabilitiesShuttersModel, open)),
Method("close", UBUS_CPP(CapabilitiesShuttersModel, close)),
Method("up", UBUS_CPP(CapabilitiesShuttersModel, up)),
Method("down", UBUS_CPP(CapabilitiesShuttersModel, down)),
Method("position", UBUS_CPP(CapabilitiesShuttersModel, position)));
}
/*! ----------------------------------------------------------------------------
* @fn CapabilitiesShuttersModel
*
* @brief Constructor of the UBus Mixer Volume.
*/
CapabilitiesShuttersModel::CapabilitiesShuttersModel(DevicesManager *a_device_manager) : UBusObject(gCapabilitiesShuttersModelUbus_types, "domo.capabilities.shutters"),
m_devices_manager(a_device_manager)
{
}
/*! ----------------------------------------------------------------------------
* @fn ~CapabilitiesShuttersModel
*
* @brief Destructor of the UBus Mixer Volume.
*/
CapabilitiesShuttersModel::~CapabilitiesShuttersModel(void)
{
}
/*! ----------------------------------------------------------------------------
* @fn get
*
* @brief Get the List of the Capabilities.
*/
int CapabilitiesShuttersModel::get(struct ubus_context *a_ctx, struct ubus_request_data *a_req, struct blob_attr *)
{
int the_result;
struct blob_buf the_buf = {0};
blob_buf_init(&the_buf, 0);
blobmsg_add_json_from_string(&the_buf, m_devices_manager->get(kShutterEntry).c_str());
the_result = ubus_send_reply(a_ctx, a_req, the_buf.head);
blob_buf_free(&the_buf);
return the_result;
}
/*! ----------------------------------------------------------------------------
* @fn del
*
* @brief Get the List of the Capabilities.
*/
int CapabilitiesShuttersModel::del(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
int the_result = 0;
return the_result;
}
/*! ----------------------------------------------------------------------------
* @fn put
*
* @brief Get the List of the Capabilities.
*/
int CapabilitiesShuttersModel::put(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
int the_result = 0;
return the_result;
}
/*! ----------------------------------------------------------------------------
* @fn post
*
* @brief Get the List of the Capabilities.
*/
int CapabilitiesShuttersModel::post(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
int the_result = 0;
return the_result;
}
/*! ----------------------------------------------------------------------------
* @fn open
*
* @brief Open the Shutter
*/
int CapabilitiesShuttersModel::open(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
int the_result = 0;
printf("Open the Shutter\n");
return the_result;
}
/*! ----------------------------------------------------------------------------
* @fn close
*
* @brief Get the List of the Capabilities.
*/
int CapabilitiesShuttersModel::close(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
int the_result = 0;
printf("Close the Shutter\n");
return the_result;
}
/*! ----------------------------------------------------------------------------
* @fn up
*
* @brief Get the List of the Capabilities.
*/
int CapabilitiesShuttersModel::up(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
int the_result = 0;
printf("Up the Shutter\n");
return the_result;
}
/*! ----------------------------------------------------------------------------
* @fn down
*
* @brief Get the List of the Capabilities.
*/
int CapabilitiesShuttersModel::down(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
int the_result = 0;
printf("Down the Shutter\n");
return the_result;
}
/*! ----------------------------------------------------------------------------
* @fn position
*
* @brief Get the List of the Capabilities.
*/
int CapabilitiesShuttersModel::position(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
int the_result = 0;
printf("Position the Shutter\n");
return the_result;
}

View File

@@ -35,49 +35,64 @@ extern "C" {
#include "domo.h" #include "domo.h"
#include "capabilities_lights_model.h" #include "lights-controller.h"
namespace namespace
{ {
using namespace UBus; using namespace UBus;
static ObjectType gCapabilitiesLightsUbus_types( static ObjectType gLightsControllerUbus_types(
"lights", "lightsController",
Method("get", UBUS_CPP(CapabilitiesLightsModel, get)), Method("create", UBUS_CPP(LightsController, create)),
Method("delete", UBUS_CPP(CapabilitiesLightsModel, del)), Method("list", UBUS_CPP(LightsController, list)),
Method("put", UBUS_CPP(CapabilitiesLightsModel, put)), Method("read", UBUS_CPP(LightsController, read), Int32Arg("id")),
Method("post", UBUS_CPP(CapabilitiesLightsModel, post))); Method("update", UBUS_CPP(LightsController, update), Int32Arg("id")),
Method("delete", UBUS_CPP(LightsController, del), Int32Arg("id"))
);
} }
/*! ---------------------------------------------------------------------------- /*! ----------------------------------------------------------------------------
* @fn CapabilitiesLightsModel * @fn LightsController
* *
* @brief Constructor of the UBus Mixer Volume. * @brief Constructor of the Lights Controller.
*/ */
CapabilitiesLightsModel::CapabilitiesLightsModel(DevicesManager *a_device_manager) : UBusObject(gCapabilitiesLightsUbus_types, "domo.capabilities.lights"), LightsController::LightsController(DevicesManager *a_device_manager) : UBusObject(gLightsControllerUbus_types, "domo.lights"),
m_devices_manager(a_device_manager) m_devices_manager(a_device_manager)
{ {
} }
/*! ---------------------------------------------------------------------------- /*! ----------------------------------------------------------------------------
* @fn ~CapabilitiesLightsModel * @fn ~LightsController
* *
* @brief Destructor of the UBus Mixer Volume. * @brief Destructor of the Lights Controller.
*/ */
CapabilitiesLightsModel::~CapabilitiesLightsModel(void) LightsController::~LightsController(void)
{ {
} }
/*! ---------------------------------------------------------------------------- /*! ----------------------------------------------------------------------------
* @fn get * @fn create
* *
* @brief get the List of the Capabilities. * @brief Create a new Sequence Object.
*/ */
int CapabilitiesLightsModel::get(struct ubus_context *a_ctx, struct ubus_request_data *a_req, struct blob_attr *a_msg) int LightsController::create(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
printf("%s\n", __PRETTY_FUNCTION__);
return 0;
}
/*! ----------------------------------------------------------------------------
* @fn list
*
* @brief List all the sequences
*/
int LightsController::list(struct ubus_context *a_ctx, struct ubus_request_data *a_req, struct blob_attr *)
{ {
int the_result; int the_result;
struct blob_buf the_buf = {0}; struct blob_buf the_buf = {0};
printf("%s\n", __PRETTY_FUNCTION__);
blob_buf_init(&the_buf, 0); blob_buf_init(&the_buf, 0);
@@ -91,41 +106,28 @@ int CapabilitiesLightsModel::get(struct ubus_context *a_ctx, struct ubus_request
} }
/*! ---------------------------------------------------------------------------- /*! ----------------------------------------------------------------------------
* @fn del * @fn read
* *
* @brief Get the List of the Capabilities. * @brief Read a specific sequence object.
*/ */
int CapabilitiesLightsModel::del(struct ubus_context *, struct ubus_request_data *, struct blob_attr *) int LightsController::read(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{ {
int the_result = 0; printf("%s\n", __PRETTY_FUNCTION__);
return 0;
return the_result;
} }
/*! ---------------------------------------------------------------------------- /*! ----------------------------------------------------------------------------
* @fn put * @fn update
* *
* @brief Get the List of the Capabilities. * @brief Update a specific sequence.
*/ */
int CapabilitiesLightsModel::put(struct ubus_context *, struct ubus_request_data *, struct blob_attr *) int LightsController::update(struct ubus_context *a_ctx, struct ubus_request_data *a_req, struct blob_attr *a_msg)
{
int the_result = 0;
return the_result;
}
/*! ----------------------------------------------------------------------------
* @fn post
*
* @brief Get the List of the Capabilities.
*/
int CapabilitiesLightsModel::post(struct ubus_context *a_ctx, struct ubus_request_data *a_req, struct blob_attr *a_msg)
{ {
int the_result = 0; int the_result = 0;
struct blob_buf the_buf = {0}; struct blob_buf the_buf = {0};
char *the_string; char *the_string;
struct json_object *the_root_node, *the_output_node; struct json_object *the_root_node, *the_output_node;
fprintf(stderr, "CapabilitiesLights::Post \n"); printf("%s\n", __PRETTY_FUNCTION__);
the_string = blobmsg_format_json(a_msg, true); the_string = blobmsg_format_json(a_msg, true);
@@ -161,3 +163,14 @@ int CapabilitiesLightsModel::post(struct ubus_context *a_ctx, struct ubus_reques
return the_result; return the_result;
} }
/*! ----------------------------------------------------------------------------
* @fn del
*
* @brief delete a specific sequence.
*/
int LightsController::del(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
printf("%s\n", __PRETTY_FUNCTION__);
return 0;
}

View File

@@ -1,5 +1,5 @@
/*! /*!
* capabilities_lights.h * lights-controller.h
* *
* Copyright (c) 2015-2018, NADAL Jean-Baptiste. All rights reserved. * Copyright (c) 2015-2018, NADAL Jean-Baptiste. All rights reserved.
* *
@@ -23,8 +23,8 @@
* *
*/ */
#ifndef _UBUS_CAPABILITIES_LIGHTS_MODEL_H #ifndef _UBUS_LIGHTS_CONTROLLER_H
#define _UBUS_CAPABILITIES_LIGHTS_MODEL_H #define _UBUS_LIGHTS_CONTROLLER_H
/*------------------------------- INCLUDES ----------------------------------*/ /*------------------------------- INCLUDES ----------------------------------*/
@@ -38,20 +38,21 @@ class DevicesManager;
/*--------------------------------- CLASS ----------------------------------*/ /*--------------------------------- CLASS ----------------------------------*/
class CapabilitiesLightsModel : public UBusObject class LightsController : public UBusObject
{ {
public: public:
CapabilitiesLightsModel(DevicesManager *a_device_manager); LightsController(DevicesManager *a_device_manager);
~CapabilitiesLightsModel(void); ~LightsController(void);
int get(struct ubus_context *, struct ubus_request_data *, struct blob_attr *); int create(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int list(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int read(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int update(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int del(struct ubus_context *, struct ubus_request_data *, struct blob_attr *); int del(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int put(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int post(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
private: private:
DevicesManager *m_devices_manager; DevicesManager *m_devices_manager;
}; };
#endif /* _UBUS_CAPABILITIES_LIGHTS_MODEL_H */ #endif /* _UBUS_LIGHTS_CONTROLLER_H */

View File

@@ -0,0 +1,128 @@
/*!
* sequences-controller.cpp
*
* Copyright (c) 2016-2018, NADAL Jean-Baptiste. All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA
*
* @Author: NADAL Jean-Baptiste
* @Date: 02/07/2016
*
*/
/*-------------------------------- INCLUDES ---------------------------------*/
#include <string.h>
extern "C" {
#include <libubox/blobmsg_json.h>
}
#include <json-c/json.h>
#include "sequences/sequences-manager.h"
#include "sequences-controller.h"
namespace
{
using namespace UBus;
static ObjectType gSequencesControllerUbus_types(
"SequencesController",
Method("create", UBUS_CPP(SequencesController, create)),
Method("list", UBUS_CPP(SequencesController, list)),
Method("read", UBUS_CPP(SequencesController, read), Int32Arg("id")),
Method("update", UBUS_CPP(SequencesController, update), Int32Arg("id")),
Method("delete", UBUS_CPP(SequencesController, del), Int32Arg("id"))
);
}
/*! ----------------------------------------------------------------------------
* @fn SequencesController
*
* @brief Constructor of the Sequence controller.
*/
SequencesController::SequencesController(SequencesManager *a_sequences_manager) :
UBusObject(gSequencesControllerUbus_types, "domo.sequences"),
m_sequences_manager(a_sequences_manager)
{
}
/*! ----------------------------------------------------------------------------
* @fn ~SequencesController
*
* @brief Destructor of the Sequence controller.
*/
SequencesController::~SequencesController(void)
{
}
/*! ----------------------------------------------------------------------------
* @fn create
*
* @brief Create a new Sequence Object.
*/
int SequencesController::create(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
printf("%s\n", __PRETTY_FUNCTION__);
return 0;
}
/*! ----------------------------------------------------------------------------
* @fn list
*
* @brief List all the sequences
*/
int SequencesController::list(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
printf("%s\n", __PRETTY_FUNCTION__);
return 0;
}
/*! ----------------------------------------------------------------------------
* @fn read
*
* @brief Read a specific sequence object.
*/
int SequencesController::read(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
printf("%s\n", __PRETTY_FUNCTION__);
return 0;
}
/*! ----------------------------------------------------------------------------
* @fn update
*
* @brief Update a specific sequence.
*/
int SequencesController::update(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
printf("%s\n", __PRETTY_FUNCTION__);
return 0;
}
/*! ----------------------------------------------------------------------------
* @fn del
*
* @brief delete a specific sequence.
*/
int SequencesController::del(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
printf("%s\n", __PRETTY_FUNCTION__);
return 0;
}

View File

@@ -1,5 +1,5 @@
/*! /*!
* timers.h * sequences-controller.h
* *
* Copyright (c) 2016-2018, NADAL Jean-Baptiste. All rights reserved. * Copyright (c) 2016-2018, NADAL Jean-Baptiste. All rights reserved.
* *
@@ -23,8 +23,8 @@
* *
*/ */
#ifndef _UBUS_SEQUENCES_H #ifndef _UBUS_SEQUENCES_CONTROLLER_H
#define _UBUS_SEQUENCES_H #define _UBUS_SEQUENCES_CONTROLLER_H
/*------------------------------- INCLUDES ----------------------------------*/ /*------------------------------- INCLUDES ----------------------------------*/
@@ -38,18 +38,21 @@ class SequencesManager;
/*--------------------------------- CLASS ----------------------------------*/ /*--------------------------------- CLASS ----------------------------------*/
class SequencesModel : public UBusObject class SequencesController : public UBusObject
{ {
public: public:
SequencesModel(SequencesManager *a_sequences_manager); SequencesController(SequencesManager *a_sequences_manager);
~SequencesModel(void); ~SequencesController(void);
int get(struct ubus_context *, struct ubus_request_data *, struct blob_attr *); int create(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int list(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int read(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int update(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int del(struct ubus_context *, struct ubus_request_data *, struct blob_attr *); int del(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
private: private:
SequencesManager *m_sequences_manager; SequencesManager *m_sequences_manager;
}; };
#endif /* _UBUS_SEQUENCES_H */ #endif /* _UBUS_SEQUENCES_CONTROLLER_H */

View File

@@ -1,146 +0,0 @@
/*!
* SequencesModel.cpp
*
* Copyright (c) 2016-2018, NADAL Jean-Baptiste. All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA
*
* @Author: NADAL Jean-Baptiste
* @Date: 02/07/2016
*
*/
/*-------------------------------- INCLUDES ---------------------------------*/
#include <string.h>
extern "C" {
#include <libubox/blobmsg_json.h>
}
#include <json-c/json.h>
#include "sequences/sequences-manager.h"
#include "sequences_model.h"
namespace
{
using namespace UBus;
static ObjectType gSequencesModelUbus_types(
"SequencesModel",
Method("get", UBUS_CPP(SequencesModel, get)),
Method("delete", UBUS_CPP(SequencesModel, del)));
}
/*! ----------------------------------------------------------------------------
* @fn SequencesModel
*
* @brief Constructor of the Timer Objects.
*/
SequencesModel::SequencesModel(SequencesManager *a_sequences_manager) :
UBusObject(gSequencesModelUbus_types, "domo.sequences"),
m_sequences_manager(a_sequences_manager)
{
}
/*! ----------------------------------------------------------------------------
* @fn ~SequencesModel
*
* @brief Destructor of the Timer Objects.
*/
SequencesModel::~SequencesModel(void)
{
}
/*! ----------------------------------------------------------------------------
* @fn get
*
* @brief Get the List of timer objects.
*/
int SequencesModel::get(struct ubus_context *a_ctx, struct ubus_request_data *a_req, struct blob_attr *a_msg)
{
int the_result = 0;
#if 0
int theID = -1;
Json::Reader theReader;
Json::StyledWriter theWriter;
Json::Value theRoot;
struct blob_buf theBuf = {0};
char *theString = blobmsg_format_json (aMsg, true);
printf ("Get the TimersModel.\n");
if (!theReader.parse (theString, theRoot)) {
fprintf (stderr, "Failed parse the parameters.\n");
return UBUS_STATUS_INVALID_ARGUMENT;
}
theID = theRoot["id"].asInt();
blob_buf_init (&theBuf, 0);
if (theID == 0)
blobmsg_add_json_from_string (&theBuf, theWriter.write(mTimers->to_json()).c_str());
else {
printf ("we want a specific id :%d\n", theID);
blobmsg_add_json_from_string (&theBuf, theWriter.write(mTimers->get(theID).to_json()).c_str());
}
theResult = ubus_send_reply (aCtx, aReq, theBuf.head);
blob_buf_free (&theBuf);
#endif
return the_result;
}
/*! ----------------------------------------------------------------------------
* @fn del
*
* @brief Delete a Timer Object.
*/
int SequencesModel::del(struct ubus_context *a_ctx, struct ubus_request_data *a_req, struct blob_attr *a_msg)
{
int the_result = 0;
#if 0
Json::Reader theReader;
Json::Value theRoot;
int theID = -1;
char *theString = blobmsg_format_json (aMsg, true);
if (!theReader.parse (theString, theRoot)) {
fprintf (stderr, "Failed parse the parameters.\n");
return UBUS_STATUS_INVALID_ARGUMENT;
}
theID = theRoot["id"].asInt();
printf ("try to delete id: %d\n", theID);
theResult = mTimers->remove (theID);
if (theResult == 0) {
printf ("Successfully removed.\n");
//TODO SAVE and return OK.
}
#endif
return the_result;
}

View File

@@ -0,0 +1,164 @@
/*!
* shutters-controller.cpp
*
* Copyright (c) 2015-2018, NADAL Jean-Baptiste. All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA
*
* @Author: NADAL Jean-Baptiste
* @Date: 24/03/2015
*
*/
/*-------------------------------- INCLUDES ---------------------------------*/
extern "C" {
#include <libubox/blobmsg_json.h>
}
#include <json-c/json.h>
#include "devices/devices-manager.h"
#include "domo.h"
#include "shutters-controller.h"
namespace
{
using namespace UBus;
static ObjectType gShuttersControllerUbus_types(
"ShuttersController",
Method("create", UBUS_CPP(ShuttersController, create)),
Method("list", UBUS_CPP(ShuttersController, list)),
Method("read", UBUS_CPP(ShuttersController, read), Int32Arg("id")),
Method("update", UBUS_CPP(ShuttersController, update), Int32Arg("id")),
Method("delete", UBUS_CPP(ShuttersController, del), Int32Arg("id")),
Method("up", UBUS_CPP(ShuttersController, up)),
Method("down", UBUS_CPP(ShuttersController, down))
);
}
/*! ----------------------------------------------------------------------------
* @fn ShuttersController
*
* @brief Constructor of the UBus Mixer Volume.
*/
ShuttersController::ShuttersController(DevicesManager *a_device_manager) : UBusObject(gShuttersControllerUbus_types, "domo.shutters"),
m_devices_manager(a_device_manager)
{
}
/*! ----------------------------------------------------------------------------
* @fn ~ShuttersController
*
* @brief Destructor of the UBus Mixer Volume.
*/
ShuttersController::~ShuttersController(void)
{
}
/*! ----------------------------------------------------------------------------
* @fn create
*
* @brief Create a new Sequence Object.
*/
int ShuttersController::create(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
printf("%s\n", __PRETTY_FUNCTION__);
return 0;
}
/*! ----------------------------------------------------------------------------
* @fn list
*
* @brief List all the sequences
*/
int ShuttersController::list(struct ubus_context *a_ctx, struct ubus_request_data *a_req, struct blob_attr *)
{
int the_result;
struct blob_buf the_buf = {0};
printf("%s\n", __PRETTY_FUNCTION__);
blob_buf_init(&the_buf, 0);
blobmsg_add_json_from_string(&the_buf, m_devices_manager->get(kShutterEntry).c_str());
the_result = ubus_send_reply(a_ctx, a_req, the_buf.head);
blob_buf_free(&the_buf);
return the_result;
}
/*! ----------------------------------------------------------------------------
* @fn read
*
* @brief Read a specific sequence object.
*/
int ShuttersController::read(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
printf("%s\n", __PRETTY_FUNCTION__);
return 0;
}
/*! ----------------------------------------------------------------------------
* @fn update
*
* @brief Update a specific sequence.
*/
int ShuttersController::update(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
printf("%s\n", __PRETTY_FUNCTION__);
return 0;
}
/*! ----------------------------------------------------------------------------
* @fn del
*
* @brief delete a specific sequence.
*/
int ShuttersController::del(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
printf("%s\n", __PRETTY_FUNCTION__);
return 0;
}
/*! ----------------------------------------------------------------------------
* @fn up
*
* @brief action up the specific shutter.
*/
int ShuttersController::up(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
printf("%s\n", __PRETTY_FUNCTION__);
return 0;
}
/*! ----------------------------------------------------------------------------
* @fn down
*
* @brief action down the specific shutter.
*/
int ShuttersController::down(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
printf("%s\n", __PRETTY_FUNCTION__);
return 0;
}

View File

@@ -1,5 +1,5 @@
/*! /*!
* capabilities_shutters * shutters-controller.h
* *
* Copyright (c) 2015-2018, NADAL Jean-Baptiste. All rights reserved. * Copyright (c) 2015-2018, NADAL Jean-Baptiste. All rights reserved.
* *
@@ -23,8 +23,8 @@
* *
*/ */
#ifndef _UBUS_CAPABILITIES_SHUTTERS_MODEL_H #ifndef _UBUS_SHUTTERS_MODEL_H
#define _UBUS_CAPABILITIES_SHUTTERS_MODEL_H #define _UBUS_SHUTTERS_MODEL_H
/*------------------------------- INCLUDES ----------------------------------*/ /*------------------------------- INCLUDES ----------------------------------*/
@@ -38,25 +38,21 @@ class DevicesManager;
/*--------------------------------- CLASS ----------------------------------*/ /*--------------------------------- CLASS ----------------------------------*/
class CapabilitiesShuttersModel : public UBusObject class ShuttersController : public UBusObject
{ {
public: public:
CapabilitiesShuttersModel(DevicesManager *a_device_manager); ShuttersController(DevicesManager *a_device_manager);
~CapabilitiesShuttersModel(void); ~ShuttersController(void);
int get(struct ubus_context *, struct ubus_request_data *, struct blob_attr *); int create(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int list(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int read(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int update(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int del(struct ubus_context *, struct ubus_request_data *, struct blob_attr *); int del(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int put(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int post(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int open(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int close(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int up(struct ubus_context *, struct ubus_request_data *, struct blob_attr *); int up(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int down(struct ubus_context *, struct ubus_request_data *, struct blob_attr *); int down(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int position(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
private: private:
DevicesManager *m_devices_manager; DevicesManager *m_devices_manager;
}; };

View File

@@ -1,5 +1,5 @@
/*! /*!
* capabilities_sprinklers.cpp * sprinklers-controller.cpp
* *
* Copyright (c) 2015-2018, NADAL Jean-Baptiste. All rights reserved. * Copyright (c) 2015-2018, NADAL Jean-Baptiste. All rights reserved.
* *
@@ -37,49 +37,65 @@ extern "C" {
#include "domo.h" #include "domo.h"
#include "capabilities_sprinklers_model.h" #include "sprinklers-controller.h"
namespace namespace
{ {
using namespace UBus; using namespace UBus;
static ObjectType gCapabilitiesSprinklersModelUbus_types( static ObjectType gSprinklersControllerUbus_types(
"sprinklers", "SprinklersController",
Method("get", UBUS_CPP(CapabilitiesSprinklersModel, get)), Method("create", UBUS_CPP(SprinklersController, create)),
Method("delete", UBUS_CPP(CapabilitiesSprinklersModel, del)), Method("list", UBUS_CPP(SprinklersController, list)),
Method("put", UBUS_CPP(CapabilitiesSprinklersModel, put)), Method("read", UBUS_CPP(SprinklersController, read), Int32Arg("id")),
Method("post", UBUS_CPP(CapabilitiesSprinklersModel, post))); Method("update", UBUS_CPP(SprinklersController, update), Int32Arg("id")),
Method("delete", UBUS_CPP(SprinklersController, del), Int32Arg("id")),
Method("open", UBUS_CPP(SprinklersController, open), Int32Arg("id")),
Method("close", UBUS_CPP(SprinklersController, close), Int32Arg("id"))
);
} }
/*! ---------------------------------------------------------------------------- /*! ----------------------------------------------------------------------------
* @fn CapabilitiesSprinkler * @fn SprinklersController
* *
* @brief Constructor of the UBus Mixer Volume. * @brief Constructor of the UBus Sprinkler controller.
*/ */
CapabilitiesSprinklersModel::CapabilitiesSprinklersModel(DevicesManager *a_device_manager) : UBusObject(gCapabilitiesSprinklersModelUbus_types, "domo.capabilities.sprinklers"), SprinklersController::SprinklersController(DevicesManager *a_device_manager) : UBusObject(gSprinklersControllerUbus_types, "domo.sprinklers"),
m_devices_manager(a_device_manager) m_devices_manager(a_device_manager)
{ {
} }
/*! ---------------------------------------------------------------------------- /*! ----------------------------------------------------------------------------
* @fn ~CapabilitiesSprinklersModel * @fn ~SprinklersController
* *
* @brief Destructor of the UBus Mixer Volume. * @brief Destructor of the UBus Sprinkler controller.
*/ */
CapabilitiesSprinklersModel::~CapabilitiesSprinklersModel(void) SprinklersController::~SprinklersController(void)
{ {
} }
/*! ---------------------------------------------------------------------------- /*! ----------------------------------------------------------------------------
* @fn get * @fn create
* *
* @brief Get the List of the Capabilities. * @brief Create a new sprinkler.
*/ */
int CapabilitiesSprinklersModel::get(struct ubus_context *a_ctx, struct ubus_request_data *a_req, struct blob_attr *) int SprinklersController::create(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
printf("%s\n", __PRETTY_FUNCTION__);
return 0;
}
/*! ----------------------------------------------------------------------------
* @fn list
*
* @brief List all the sequences
*/
int SprinklersController::list(struct ubus_context *a_ctx, struct ubus_request_data *a_req, struct blob_attr *)
{ {
int the_result; int the_result;
struct blob_buf the_buf = {0}; struct blob_buf the_buf = {0};
printf("%s\n", __PRETTY_FUNCTION__);
blob_buf_init(&the_buf, 0); blob_buf_init(&the_buf, 0);
@@ -93,41 +109,28 @@ int CapabilitiesSprinklersModel::get(struct ubus_context *a_ctx, struct ubus_req
} }
/*! ---------------------------------------------------------------------------- /*! ----------------------------------------------------------------------------
* @fn del * @fn read
* *
* @brief Get the List of the Capabilities. * @brief Read a specific sequence object.
*/ */
int CapabilitiesSprinklersModel::del(struct ubus_context *, struct ubus_request_data *, struct blob_attr *) int SprinklersController::read(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{ {
int the_result = 0; printf("%s\n", __PRETTY_FUNCTION__);
return 0;
return the_result;
} }
/*! ---------------------------------------------------------------------------- /*! ----------------------------------------------------------------------------
* @fn put * @fn update
* *
* @brief Get the List of the Capabilities. * @brief Update a specific sequence.
*/ */
int CapabilitiesSprinklersModel::put(struct ubus_context *, struct ubus_request_data *, struct blob_attr *) int SprinklersController::update(struct ubus_context *a_ctx, struct ubus_request_data *a_req, struct blob_attr *a_msg)
{
int the_result = 0;
return the_result;
}
/*! ----------------------------------------------------------------------------
* @fn post
*
* @brief Get the List of the Capabilities.
*/
int CapabilitiesSprinklersModel::post(struct ubus_context *a_ctx, struct ubus_request_data *a_req, struct blob_attr *a_msg)
{ {
int the_result = 0; int the_result = 0;
struct blob_buf the_buf = {0}; struct blob_buf the_buf = {0};
char *the_string; char *the_string;
struct json_object *the_root_node, *the_output_node; struct json_object *the_root_node, *the_output_node;
fprintf(stderr, "CapabilitiesSprinklersModel::Post \n"); printf("%s\n", __PRETTY_FUNCTION__);
the_string = blobmsg_format_json(a_msg, true); the_string = blobmsg_format_json(a_msg, true);
@@ -163,3 +166,36 @@ int CapabilitiesSprinklersModel::post(struct ubus_context *a_ctx, struct ubus_re
return the_result; return the_result;
} }
/*! ----------------------------------------------------------------------------
* @fn del
*
* @brief delete a specific sequence.
*/
int SprinklersController::del(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
printf("%s\n", __PRETTY_FUNCTION__);
return 0;
}
/*! ----------------------------------------------------------------------------
* @fn open
*
* @brief open a specific sprinkler.
*/
int SprinklersController::open(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
printf("%s\n", __PRETTY_FUNCTION__);
return 0;
}
/*! ----------------------------------------------------------------------------
* @fn close
*
* @brief close a specific sprinkler.
*/
int SprinklersController::close(struct ubus_context *, struct ubus_request_data *, struct blob_attr *)
{
printf("%s\n", __PRETTY_FUNCTION__);
return 0;
}

View File

@@ -1,5 +1,5 @@
/*! /*!
* capabilities_sprinklers.h * sprinklers-controller.h
* *
* Copyright (c) 2015-2018, NADAL Jean-Baptiste. All rights reserved. * Copyright (c) 2015-2018, NADAL Jean-Baptiste. All rights reserved.
* *
@@ -23,8 +23,8 @@
* *
*/ */
#ifndef _UBUS_CAPABILITIES_SPRINKLERS_MODEL_H #ifndef _UBUS_SPRINKLERS_CONTROLLER_H
#define _UBUS_CAPABILITIES_SPRINKLERS_MODEL_H #define _UBUS_SPRINKLERS_CONTROLLER_H
/*------------------------------- INCLUDES ----------------------------------*/ /*------------------------------- INCLUDES ----------------------------------*/
@@ -38,20 +38,24 @@ class DevicesManager;
/*--------------------------------- CLASS ----------------------------------*/ /*--------------------------------- CLASS ----------------------------------*/
class CapabilitiesSprinklersModel : public UBusObject class SprinklersController : public UBusObject
{ {
public: public:
CapabilitiesSprinklersModel(DevicesManager *a_device_manager); SprinklersController(DevicesManager *a_device_manager);
~CapabilitiesSprinklersModel(void); ~SprinklersController(void);
int get(struct ubus_context *, struct ubus_request_data *, struct blob_attr *); int create(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int list(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int read(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int update(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int del(struct ubus_context *, struct ubus_request_data *, struct blob_attr *); int del(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int put(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int post(struct ubus_context *, struct ubus_request_data *, struct blob_attr *); int open(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
int close(struct ubus_context *, struct ubus_request_data *, struct blob_attr *);
private: private:
DevicesManager *m_devices_manager; DevicesManager *m_devices_manager;
}; };
#endif /* _UBUS_CAPABILITIES_SPRINKLERS_MODEL_H */ #endif /* _UBUS_SPRINKLERS_CONTROLLER_H */