dedup/inc/mergefile.h

29 lines
675 B
C++

#pragma once
#include <memory>
#include <vector>
#include "file.h"
#include "hash.h"
// eine liste an gleichen Dateien, die gemerged werden sollen
class MergeFile {
public:
MergeFile(std::shared_ptr<File> file, Hash&& h);
const Hash& getHash() const;
// try to add a file, returns true on success
bool addFile(std::shared_ptr<File> f, const Hash& h);
std::vector<std::shared_ptr<File>>& getFiles();
const std::vector<std::shared_ptr<File>>& getFiles() const;
// make sure the main file, which should be the base for the other files is stored at the begin of the vector
void updateMainFile();
private:
std::vector<std::shared_ptr<File>> files;
Hash hash;
};