Image.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #include "Exception.h"
  2. #include "Strings.h"
  3. #include "FileName.h"
  4. #include "expiretools.h"
  5. #include "filetools.h"
  6. #include "Image.h"
  7. using namespace std;
  8. Image::Image(const string& dir): name(dir)
  9. {
  10. FileName fn(name);
  11. string dummy; // image "name"
  12. stringToDate(fn.getName(), time, dummy);
  13. string expireFileName = name + "/expires";
  14. valid = !fileExists(name + "/error") &&
  15. fileExists(expireFileName) &&
  16. dirExists(name + "/tree");
  17. // cout << boolalpha << dir << " " << image.valid << endl;
  18. if (valid)
  19. {
  20. Strings expireText;
  21. file2Strings(expireFileName, expireText);
  22. if (expireText.empty())
  23. throw Exception("expireDate", "expire file empty");
  24. stringToDate(expireText[0], expire, series);
  25. expireRule = expireText[1];
  26. }
  27. }
  28. void Image::printInfo() const
  29. {
  30. cout << name << endl;
  31. if (valid)
  32. {
  33. if (series != "expire")
  34. cout << "backup set: " << series << endl;
  35. cout << "created: " << time.getString('h') << endl;
  36. cout << "expires: " << expire.getString('h') << " - " << timeString(expire - DateTime::now()) << endl;
  37. }
  38. else
  39. cout << "invalid" << endl;
  40. }