C++ Library to handle BagIt structures. BagIt is a standard format to create transfer packages for digital preservation purposes. See https://en.wikipedia.org/wiki/BagIt for details http://andreas-romeyke.de
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
913 B

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. #ifndef LIBCBAG
  2. #define LIBCBAG
  3. #include <string>
  4. #include <sstream>
  5. #include "manifest.hpp"
  6. #include "payload.hpp"
  7. #include "payloadmanifest.hpp"
  8. #include "tagmanifest.hpp"
  9. #include "bagmetadata.hpp"
  10. #include "fetchfile.hpp"
  11. #include "othertags.hpp"
  12. using namespace std;
  13. class Bag {
  14. private:
  15. string base_dir; // from where the bag was loaded, optional
  16. stringstream log;
  17. int bagit_version_major;
  18. int bagit_version_minor;
  19. string tag_file_character_encoding;
  20. class Payload *payload_p;;
  21. class Payloadmanifest *payloadmanifest_p;
  22. // next elements are optional
  23. class Tagmanifest *tagmanifest_p;
  24. class Bagmetadata *bagmetadata_p;
  25. class Fetchfile *fetchfile_p;
  26. class Othertags *othertags_p;
  27. public:
  28. Bag();
  29. Bag(string dfname);
  30. bool store( string dfname);
  31. bool validate();
  32. };
  33. #endif
  34. // vim: set tabstop=4 softtabstop=0 expandtab shiftwidth=4 smarttab