
// Auto-generated file -- do not edit

#ifndef AUTOGEN_BACKUPSTOREEXCEPTION_H
#define AUTOGEN_BACKUPSTOREEXCEPTION_H

#include "BoxException.h"

// --------------------------------------------------------------------------
//
// Class
//		Name:    BackupStoreException
//		Purpose: Exception
//		Created: autogen
//
// --------------------------------------------------------------------------
class BackupStoreException : public BoxException
{
public:
	BackupStoreException(unsigned int SubType,
		const std::string& rMessage = "")
	: mSubType(SubType), mMessage(rMessage)
	{
	}
	
	BackupStoreException(const BackupStoreException &rToCopy)
	: mSubType(rToCopy.mSubType), mMessage(rToCopy.mMessage)
	{
	}
	
	~BackupStoreException() throw ()
	{
	}
	
	enum
	{
		ExceptionType = 4
	};

	enum
	{
		Internal = 0,
		BadAccountDatabaseFile = 1,
		AccountDatabaseNoSuchEntry = 2,
		InvalidBackupStoreFilename = 3,
		UnknownFilenameEncoding = 4,
		CouldntReadEntireStructureFromStream = 5,
		BadDirectoryFormat = 6,
		CouldNotFindEntryInDirectory = 7,
		OutputFileAlreadyExists = 8,
		OSFileError = 9,
		StreamDoesntHaveRequiredFeatures = 10,
		BadBackupStoreFile = 11,
		CouldNotLoadStoreInfo = 12,
		BadStoreInfoOnLoad = 13,
		StoreInfoIsReadOnly = 14,
		StoreInfoDirNotInList = 15,
		StoreInfoBlockDeltaMakesValueNegative = 16,
		DirectoryHasBeenDeleted = 17,
		StoreInfoNotInitialised = 18,
		StoreInfoAlreadyLoaded = 19,
		StoreInfoNotLoaded = 20,
		ReadFileFromStreamTimedOut = 21,
		FileWrongSizeAfterBeingStored = 22,
		AddedFileDoesNotVerify = 23,
		StoreInfoForWrongAccount = 24,
		ContextIsReadOnly = 25,
		AttributesNotLoaded = 26,
		AttributesNotUnderstood = 27,
		WrongServerVersion = 28,
		ClientMarkerNotAsExpected = 29,
		NameAlreadyExistsInDirectory = 30,
		BerkelyDBFailure = 31,
		InodeMapIsReadOnly = 32,
		InodeMapNotOpen = 33,
		FilenameEncryptionKeyNotKnown = 34,
		FilenameEncryptionNoKeyForSpecifiedMethod = 35,
		FilenameEncryptionNotSetup = 36,
		CouldntLoadClientKeyMaterial = 37,
		BadEncryptedAttributes = 38,
		EncryptedAttributesHaveUnknownEncoding = 39,
		OutputSizeTooSmallForChunk = 40,
		BadEncodedChunk = 41,
		NotEnoughSpaceToDecodeChunk = 42,
		ChunkHasUnknownEncoding = 43,
		ChunkContainsBadCompressedData = 44,
		CantWriteToEncodedFileStream = 45,
		Temp_FileEncodeStreamDidntReadBuffer = 46,
		CantWriteToDecodedFileStream = 47,
		WhenDecodingExpectedToReadButCouldnt = 48,
		BackupStoreFileFailedIntegrityCheck = 49,
		ThereIsNoDataInASymLink = 50,
		IVLengthForEncodedBlockSizeDoesntMeetLengthRequirements = 51,
		BlockEntryEncodingDidntGiveExpectedLength = 52,
		CouldNotFindUnusedIDDuringAllocation = 53,
		AddedFileExceedsStorageLimit = 54,
		CannotDiffAnIncompleteStoreFile = 55,
		CannotDecodeDiffedFilesWithoutCombining = 56,
		FailedToReadBlockOnCombine = 57,
		OnCombineFromFileIsIncomplete = 58,
		BadNotifySysadminEventCode = 59,
		InternalAlgorithmErrorCheckIDNotMonotonicallyIncreasing = 60,
		CouldNotLockStoreAccount = 61,
		AttributeHashSecretNotSet = 62,
		AEScipherNotSupportedByInstalledOpenSSL = 63,
		SignalReceived = 64,
		IncompatibleFromAndDiffFiles = 65,
		DiffFromIDNotFoundInDirectory = 66,
		PatchChainInfoBadInDirectory = 67,
		UnknownObjectRefCountRequested = 68
	};
	
	virtual unsigned int GetType() const throw();
	virtual unsigned int GetSubType() const throw();
	virtual const char *what() const throw();
	virtual const std::string& GetMessage() const
	{
		return mMessage;
	}

private:
	unsigned int mSubType;
	std::string mMessage;
};

#endif // AUTOGEN_BACKUPSTOREEXCEPTION_H
