From 99f8ce096bc5569adbfea1911dbcda24c28d8d8b Mon Sep 17 00:00:00 2001 From: Ben Summers Date: Fri, 14 Oct 2005 08:50:54 +0000 Subject: Box Backup 0.09 with a few tweeks --- bin/bbackupquery/BackupQueries.h | 101 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100755 bin/bbackupquery/BackupQueries.h (limited to 'bin/bbackupquery/BackupQueries.h') diff --git a/bin/bbackupquery/BackupQueries.h b/bin/bbackupquery/BackupQueries.h new file mode 100755 index 00000000..e84de6ab --- /dev/null +++ b/bin/bbackupquery/BackupQueries.h @@ -0,0 +1,101 @@ +// -------------------------------------------------------------------------- +// +// File +// Name: BackupQueries.h +// Purpose: Perform various queries on the backup store server. +// Created: 2003/10/10 +// +// -------------------------------------------------------------------------- + +#ifndef BACKUPQUERIES__H +#define BACKUPQUERIES__H + +#include +#include + +#include "BoxTime.h" + +class BackupProtocolClient; +class Configuration; +class ExcludeList; + +// -------------------------------------------------------------------------- +// +// Class +// Name: BackupQueries +// Purpose: Perform various queries on the backup store server. +// Created: 2003/10/10 +// +// -------------------------------------------------------------------------- +class BackupQueries +{ +public: + BackupQueries(BackupProtocolClient &rConnection, const Configuration &rConfiguration); + ~BackupQueries(); +private: + BackupQueries(const BackupQueries &); +public: + + void DoCommand(const char *Command); + + // Ready to stop? + bool Stop() {return mQuitNow;} + + // Return code? + int GetReturnCode() {return mReturnCode;} + +private: + // Commands + void CommandList(const std::vector &args, const bool *opts); + void CommandChangeDir(const std::vector &args, const bool *opts); + void CommandChangeLocalDir(const std::vector &args); + void CommandGetObject(const std::vector &args, const bool *opts); + void CommandGet(const std::vector &args, const bool *opts); + void CommandCompare(const std::vector &args, const bool *opts); + void CommandRestore(const std::vector &args, const bool *opts); + void CommandUndelete(const std::vector &args, const bool *opts); + void CommandUsage(); + void CommandUsageDisplayEntry(const char *Name, int64_t Size, int64_t HardLimit, int32_t BlockSize); + void CommandHelp(const std::vector &args); + + // Implementations + void List(int64_t DirID, const std::string &rListRoot, const bool *opts, bool FirstLevel); + class CompareParams + { + public: + CompareParams(); + ~CompareParams(); + void DeleteExcludeLists(); + bool mQuickCompare; + bool mIgnoreExcludes; + int mDifferences; + int mDifferencesExplainedByModTime; + int mExcludedDirs; + int mExcludedFiles; + const ExcludeList *mpExcludeFiles; + const ExcludeList *mpExcludeDirs; + box_time_t mLatestFileUploadTime; + }; + void CompareLocation(const std::string &rLocation, CompareParams &rParams); + void Compare(const std::string &rStoreDir, const std::string &rLocalDir, CompareParams &rParams); + void Compare(int64_t DirID, const std::string &rStoreDir, const std::string &rLocalDir, CompareParams &rParams); + + // Utility functions + int64_t FindDirectoryObjectID(const std::string &rDirName, bool AllowOldVersion = false, + bool AllowDeletedDirs = false, std::vector > *pStack = 0); + int64_t GetCurrentDirectoryID(); + std::string GetCurrentDirectoryName(); + void SetReturnCode(int code) {mReturnCode = code;} + +private: + BackupProtocolClient &mrConnection; + const Configuration &mrConfiguration; + bool mQuitNow; + std::vector > mDirStack; + bool mRunningAsRoot; + bool mWarnedAboutOwnerAttributes; + int mReturnCode; +}; + +#endif // BACKUPQUERIES__H + -- cgit v1.2.3