#include <plp/Date.hh>
#include <plp/DataReader.hh>
#include <plp/DeviceConfig.hh>
+#include <plp/Device.hh>
+#include <plp/SensorDevice.hh>
#include "Factory.hh"
using namespace plp;
using namespace w1;
-bool try_parse_long(const char *str, long *result) {
- int new_result;
- char *endptr;
- bool ret_val;
-
- ret_val = false;
- errno = 0;
- new_result = strtol(str, &endptr, 10);
- if (errno != 0) {
- log_error("invalid input %s, could not convert to integer.\n", str);
- }
- else {
- if (endptr == str) {
- log_error("invalid input %s, could not convert to integer.\n", str);
- }
- else {
- *result = new_result;
- ret_val = true;
- }
- }
- return ret_val;
-}
-
int main(int argc, char** argv) {
string loc;
Data *fdata;
Data *ldata;
- DataReader *reader;
- Device *device;
+ const DataReader *reader;
+ Device *dev;
+ SensorDevice *device;
DataRange *dr;
DataRange *dr2;
list<Device *> dev_lst;
}
dev_lst = Factory::get_device_list();
for(list_iter = dev_lst.begin(); list_iter != dev_lst.end(); list_iter++) {
- device = (Device *)*list_iter;
- if (device != NULL) {
- reader = device->get_device_data();
- if (reader != NULL) {
- dr = reader->get_data_range();
- if (dr != NULL) {
- fdata = dr->get_first();
- if (fdata != NULL) {
- fdata->printout();
- ldata = dr->get_last();
- if (ldata != NULL) {
- ldata->printout();
- plp::Date d1;
- plp::Date d2;
+ dev = (Device *)*list_iter;
+ if (dev != NULL) {
+ device = dynamic_cast<SensorDevice *>(dev);
+ if (device != NULL) {
+ reader = device->get_device_data();
+ if (reader != NULL) {
+ dr = ((DataReader *)reader)->get_data_range();
+ if (dr != NULL) {
+ fdata = dr->get_first();
+ if (fdata != NULL) {
+ fdata->printout();
+ ldata = dr->get_last();
+ if (ldata != NULL) {
+ ldata->printout();
+ plp::Date d1;
+ plp::Date d2;
- d1 = fdata->get_date();
- d2 = ldata->get_date();
- dr2 = reader->get_data(&d1, &d2);
- if (dr2 != NULL) {
- dr2->printout();
- delete(dr2);
+ d1 = fdata->get_date();
+ d2 = ldata->get_date();
+ dr2 = ((DataReader *)reader)->get_data(&d1, &d2);
+ if (dr2 != NULL) {
+ dr2->printout();
+ delete(dr2);
+ }
+ delete(ldata);
}
- delete(ldata);
+ delete(fdata);
}
- delete(fdata);
+ delete(dr);
}
- delete(dr);
}
- delete(reader);
}
}
}
+ while (dev_lst.empty() == false) {
+ dev = dev_lst.back();
+ dev_lst.pop_back();
+ delete(dev);
+ }
return 0;
}