+ /**
+ * Check whether the given file exist and has either read or write permissions.
+ */
+ static bool exist(std::string fname_param, bool writable);
+ /**
+ * Go through days in month to find out whether daily data file exist.
+ *
+ * If data is not found, false is returned and last scanned date is set to next_date.
+ * If data is found true is returned and date is set to next_date.
+ */
+ static bool data_day_scan_days_in_month(string dev_id_param,
+ Date *next_date,
+ Date *max_date);
+ /**
+ * Go through month dir in year to find out first date with data
+ * after the given date.
+ *
+ * If data is not found, false is returned and last scanned date is set to next_date.
+ * If data is found true is returned and date is set to next_date.
+ */
+ static bool data_day_scan_month_in_year(string dev_id_param,
+ Date *next_date,
+ Date *max_date);
+ /**
+ * Go through year and month directories to find out first date with data
+ * after the given date.
+ *
+ * If data is not found, false is returned and last scanned date is set to next_date.
+ * If data is found true is returned and date is set to next_date.
+ */
+ static bool data_day_scan_years(string dev_id_param,
+ Date *next_date,
+ Date *max_date);