/* * test_data_read.cc * * Created on: Nov 15, 2010 * Author: lamikr */ #include #include #include #include #include #include #include #include #include #include #include #include "Factory.hh" using namespace std; 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; const DataReader *reader; Device *dev; SensorDevice *device; DataRange *dr; DataRange *dr2; list dev_lst; list::iterator list_iter; // default values than can be overwritten with parameters loc = DeviceConfig::get_base_dir_name(); if (argc > 1) { loc = argv[1]; log_info("storage location: %s\n", loc.c_str()); DeviceConfig::set_base_dir_name(loc); } else { log_warning("No storage location parameter given, using default location: %s\n", loc.c_str()); } dev_lst = Factory::get_device_list(); for(list_iter = dev_lst.begin(); list_iter != dev_lst.end(); list_iter++) { dev = (Device *)*list_iter; if (dev != NULL) { device = dynamic_cast(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 = ((DataReader *)reader)->get_data(&d1, &d2); if (dr2 != NULL) { dr2->printout(); delete(dr2); } delete(ldata); } delete(fdata); } delete(dr); } } } } } while (dev_lst.empty() == false) { dev = dev_lst.back(); dev_lst.pop_back(); delete(dev); } return 0; }