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.
36 lines
964 B
36 lines
964 B
#ifndef LIBCBAG
|
|
#define LIBCBAG
|
|
#include <string>
|
|
#include <sstream>
|
|
#include "manifest.hpp"
|
|
#include "payload.hpp"
|
|
#include "payloadmanifest.hpp"
|
|
#include "tagmanifest.hpp"
|
|
#include "bagmetadata.hpp"
|
|
#include "fetchfile.hpp"
|
|
#include "othertags.hpp"
|
|
|
|
using namespace std;
|
|
|
|
|
|
class Bag {
|
|
private:
|
|
string base_dir; // from where the bag was loaded, optional
|
|
stringstream log;
|
|
int bagit_version_major;
|
|
int bagit_version_minor;
|
|
string tag_file_character_encoding;
|
|
class Payload *payload_p;;
|
|
class Payloadmanifest *payloadmanifest_p; // TODO: list of manifests
|
|
class Tagmanifest *tagmanifest_p; // TODO: list of tag manifests, optional
|
|
class Bagmetadata *bagmetadata_p;
|
|
class Fetchfile *fetchfile_p;
|
|
class Othertags *othertags_p; //TODO: optional
|
|
public:
|
|
Bag();
|
|
Bag(string dfname);
|
|
bool store( string dfname);
|
|
bool validate();
|
|
};
|
|
#endif
|
|
// vim: set tabstop=4 softtabstop=0 expandtab shiftwidth=4 smarttab
|