1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
// --------------------------------------------------------------------------
//
// File
// Name: BoxBackupCompareParams.h
// Purpose: Parameters and notifiers for a compare operation
// Created: 2008/12/30
//
// --------------------------------------------------------------------------
#ifndef BOXBACKUPCOMPAREPARAMS__H
#define BOXBACKUPCOMPAREPARAMS__H
#include <memory>
#include <string>
#include "BoxTime.h"
#include "ExcludeList.h"
#include "BackupClientMakeExcludeList.h"
// --------------------------------------------------------------------------
//
// Class
// Name: BoxBackupCompareParams
// Purpose: Parameters and notifiers for a compare operation
// Created: 2003/10/10
//
// --------------------------------------------------------------------------
class BoxBackupCompareParams
{
private:
std::auto_ptr<const ExcludeList> mapExcludeFiles, mapExcludeDirs;
bool mQuickCompare;
bool mIgnoreExcludes;
bool mIgnoreAttributes;
box_time_t mLatestFileUploadTime;
public:
BoxBackupCompareParams(bool QuickCompare, bool IgnoreExcludes,
bool IgnoreAttributes, box_time_t LatestFileUploadTime)
: mQuickCompare(QuickCompare),
mIgnoreExcludes(IgnoreExcludes),
mIgnoreAttributes(IgnoreAttributes),
mLatestFileUploadTime(LatestFileUploadTime)
{ }
virtual ~BoxBackupCompareParams() { }
bool QuickCompare() { return mQuickCompare; }
bool IgnoreExcludes() { return mIgnoreExcludes; }
bool IgnoreAttributes() { return mIgnoreAttributes; }
box_time_t LatestFileUploadTime() { return mLatestFileUploadTime; }
void LoadExcludeLists(const Configuration& rLoc)
{
mapExcludeFiles.reset(BackupClientMakeExcludeList_Files(rLoc));
mapExcludeDirs.reset(BackupClientMakeExcludeList_Dirs(rLoc));
}
bool IsExcludedFile(const std::string& rLocalPath)
{
if (!mapExcludeFiles.get()) return false;
return mapExcludeFiles->IsExcluded(rLocalPath);
}
bool IsExcludedDir(const std::string& rLocalPath)
{
if (!mapExcludeDirs.get()) return false;
return mapExcludeDirs->IsExcluded(rLocalPath);
}
virtual void NotifyLocalDirMissing(const std::string& rLocalPath,
const std::string& rRemotePath) = 0;
virtual void NotifyLocalDirAccessFailed(const std::string& rLocalPath,
const std::string& rRemotePath) = 0;
virtual void NotifyStoreDirMissingAttributes(const std::string& rLocalPath,
const std::string& rRemotePath) = 0;
virtual void NotifyRemoteFileMissing(const std::string& rLocalPath,
const std::string& rRemotePath,
bool modifiedAfterLastSync) = 0;
virtual void NotifyLocalFileMissing(const std::string& rLocalPath,
const std::string& rRemotePath) = 0;
virtual void NotifyExcludedFileNotDeleted(const std::string& rLocalPath,
const std::string& rRemotePath) = 0;
virtual void NotifyDownloadFailed(const std::string& rLocalPath,
const std::string& rRemotePath, int64_t NumBytes,
BoxException& rException) = 0;
virtual void NotifyLocalFileReadFailed(const std::string& rLocalPath,
const std::string& rRemotePath, int64_t NumBytes,
std::exception& rException) = 0;
virtual void NotifyLocalFileReadFailed(const std::string& rLocalPath,
const std::string& rRemotePath, int64_t NumBytes) = 0;
virtual void NotifyDownloadFailed(const std::string& rLocalPath,
const std::string& rRemotePath, int64_t NumBytes,
std::exception& rException) = 0;
virtual void NotifyDownloadFailed(const std::string& rLocalPath,
const std::string& rRemotePath, int64_t NumBytes) = 0;
virtual void NotifyExcludedFile(const std::string& rLocalPath,
const std::string& rRemotePath) = 0;
virtual void NotifyExcludedDir(const std::string& rLocalPath,
const std::string& rRemotePath) = 0;
virtual void NotifyDirComparing(const std::string& rLocalPath,
const std::string& rRemotePath) = 0;
virtual void NotifyDirCompared(const std::string& rLocalPath,
const std::string& rRemotePath, bool HasDifferentAttributes,
bool modifiedAfterLastSync) = 0;
virtual void NotifyFileComparing(const std::string& rLocalPath,
const std::string& rRemotePath) = 0;
virtual void NotifyFileCompared(const std::string& rLocalPath,
const std::string& rRemotePath, int64_t NumBytes,
bool HasDifferentAttributes, bool HasDifferentContents,
bool modifiedAfterLastSync, bool newAttributesApplied) = 0;
};
#endif // BOXBACKUPCOMPAREPARAMS__H
|