int get_all_devices(const char *filename, DeviceFilter &dev_filt, ConfigReader &cfg) { struct file_header f_hdr; struct aggr_data *agg; int rc = 0; rc = get_initial_data(filename, &f_hdr, &agg, dev_filt, cfg); discard_aggr_data_struct(agg); free(agg); return rc; }
pair<double, optional<std::shared_ptr<tangent_vector> > > operator()(const double& x, const double& epsilon) const { typedef pair<double, optional<std::shared_ptr<tangent_vector> > > return_type; if (!curve_(x)) return return_type(x, optional<std::shared_ptr<tangent_vector> >()); cache_iterator_type initial_data(get_initial_data(x)); if (abs(initial_data->first - x) <= epsilon) return return_type(initial_data->first, optional<std::shared_ptr<tangent_vector> >(initial_data->second)); optional<cache_iterator_type> result(advance(*initial_data->second, initial_data->first, x)); if (result) return return_type(x, optional<std::shared_ptr<tangent_vector> >((*result)->second)); return return_type(x, optional<std::shared_ptr<tangent_vector> >()); }
int print_summary_report(FILE *fp, char *filename, ConfigReader &cfg) { int rc = 0; int lrc=0; struct file_header f_hdr; struct aggr_data *a_hdr; DeviceFilter dev_filt; if (get_initial_data(filename, &f_hdr, &a_hdr, dev_filt, cfg)) return -1; rc += fprintf(fp, "Data Summary\n"); rc += fprintf(fp, "------------\n"); rc += fprintf(fp, "Aggregated range: "); if (a_hdr) { rc += fprintf(fp, "%s to ", print_time_formatted(a_hdr->begin_time - f_hdr.interval_length)); rc += fprintf(fp, "%s\n", print_time_formatted(a_hdr->end_time)); } else rc += fprintf(fp, "none\n"); discard_aggr_data_struct(a_hdr); free(a_hdr); a_hdr = NULL; rc += fprintf(fp, "Detailed range: %s to ", print_time_formatted(f_hdr.begin_time - f_hdr.interval_length)); rc += fprintf(fp, "%s\n", print_time_formatted(f_hdr.end_time)); rc += fprintf(fp, "Interval length: %d seconds\n", f_hdr.interval_length); list<__u32> disks = dev_filt.get_mm_list(); list<__u32> host_ids = dev_filt.get_host_id_list(); int first = 1; const char *frmt; for (list<__u32>::const_iterator i = host_ids.begin(); i != host_ids.end(); ++i) { if (first) { frmt = "HBA/CHPID: 0.0.%04x/%x\n"; first = 0; } else frmt = " 0.0.%04x/%x\n"; rc += fprintf(fp, frmt, cfg.get_devno_by_host_id(*i, &lrc), cfg.get_chpid_by_host_id(*i, &lrc)); if (lrc) return -1; } first = 1; for (list<__u32>::const_iterator i = disks.begin(); i != disks.end(); ++i) { if (first) { frmt = "WWPN/LUN (dev): 0x%016Lx/0x%016Lx (%s)\n"; first = 0; } else frmt = " 0x%016Lx/0x%016Lx (%s)\n"; rc += fprintf(fp, frmt, cfg.get_wwpn_by_mm_internal(*i, &lrc), cfg.get_lun_by_mm_internal(*i, &lrc), cfg.get_dev_by_mm_internal(*i, &lrc)); if (lrc) return -1; } return rc; }