]> pilppa.org Git - libplpdevicebus.git/blob - src_client/DeviceManagerController.cc
do not ship src/Makefile.in
[libplpdevicebus.git] / src_client / DeviceManagerController.cc
1 /*
2  * DeviceManagerController.cc
3  *
4  *  Created on: Mar 7, 2011
5  *      Author: lamikr
6  */
7 #include <sstream>
8
9 #include <plp/log.h>
10 #include <plp/retval.h>
11 #include <plp/bus/BusClient.hh>
12 #include <plp/bus/BusMessage.hh>
13
14 #include "DeviceManagerController.hh"
15 #include "../src/plp/devicebus/DeviceBusMessageId.hh"
16
17 using namespace std;
18 using namespace plp;
19 using namespace plpbus;
20 using namespace plpdevicebus;
21
22 DeviceManagerController::DeviceManagerController() {
23         int     err_flg;
24         string  server_name;
25
26         server_name     = W1_SERVER_NAME;
27         _dev_man        = NULL;
28         _lstnr          = NULL;
29         try {
30                 _bus_client     = new BusClient();
31                 err_flg         = _bus_client->init(server_name.c_str());
32                 if (err_flg == 0) {
33                         _dev_man        = new DeviceManagerClient();
34                         _lstnr          = new ClientListenerImpl(_dev_man);
35                         err_flg         = _bus_client->add_client_listener(_lstnr);
36                 }
37         }
38         catch(...) {
39                 log_error("Exception catched\n");
40                 _dev_man        = NULL;
41                 _lstnr          = NULL;
42         }
43 }
44
45 DeviceManagerController::~DeviceManagerController() {
46         if (_dev_man != NULL) {
47                 delete(_dev_man);
48         }
49         if (_bus_client != NULL) {
50                 delete(_bus_client);
51         }
52         if (_lstnr != NULL) {
53                 delete(_lstnr);
54         }
55 }
56
57 const std::list<plp::Device *> *DeviceManagerController::get_device_list(int *err_flg) {
58         const list<Device *>    *ret_val;
59
60         ret_val         = NULL;
61         *err_flg        = PLP_ERR;
62         try {
63                 if (_dev_man != NULL) {
64                         ret_val = _dev_man->get_device_list(_bus_client, err_flg);
65                 }
66                 else {
67                         ret_val = new list<Device *>;
68                 }
69         }
70         catch(...) {
71                 log_error("Could not get a device list\n");
72                 *err_flg        = PLP_ERR;
73         }
74         return ret_val;
75 }
76
77
78 Data *DeviceManagerController::get_latest_data(string device_id_param,
79                                                 int *err_flg) {
80         Data            *ret_val;
81
82         ret_val         = NULL;
83         *err_flg        = PLP_ERR;
84         try {
85                 if (_dev_man != NULL) {
86                         ret_val = _dev_man->get_latest_data(_bus_client,
87                                                         device_id_param,
88                                                         err_flg);
89                 }
90         }
91         catch(...) {
92                 log_error("Could not get latest data\n");
93                 *err_flg        = PLP_ERR;
94         }
95         return ret_val;
96 }
97
98 DataRange *DeviceManagerController::get_data_range(string device_id_param,
99                                                 int *err_flg) {
100         DataRange       *ret_val;
101
102         ret_val         = NULL;
103         *err_flg        = PLP_ERR;
104         try {
105                 if (_dev_man != NULL) {
106                         ret_val = _dev_man->get_data_range(_bus_client,
107                                                         device_id_param,
108                                                         err_flg);
109                 }
110         }
111         catch(...) {
112                 log_error("Could not get data range\n");
113                 *err_flg        = PLP_ERR;
114         }
115         return ret_val;
116 }
117
118 DataRange *DeviceManagerController::get_data(std::string device_id_param,
119                                         plp::Date *start_date,
120                                         plp::Date *end_date,
121                                         int *err_flg) {
122         DataRange       *ret_val;
123
124         ret_val         = NULL;
125         *err_flg        = PLP_ERR;
126         try {
127                 if (_dev_man != NULL) {
128                         ret_val = _dev_man->get_data(_bus_client,
129                                                 device_id_param,
130                                                 start_date,
131                                                 end_date,
132                                                 err_flg);
133                 }
134         }
135         catch(...) {
136                 log_error("Could not get data\n");
137                 *err_flg        = PLP_ERR;
138         }
139         return ret_val;
140 }