[Box Backup-commit] COMMIT r3293 - box/trunk/lib/backupstore

subversion at boxbackup.org subversion at boxbackup.org
Sun Mar 2 08:58:02 GMT 2014


Author: chris
Date: 2014-03-02 08:58:02 +0000 (Sun, 02 Mar 2014)
New Revision: 3293

Modified:
   box/trunk/lib/backupstore/BackupCommands.cpp
   box/trunk/lib/backupstore/BackupStoreContext.cpp
   box/trunk/lib/backupstore/BackupStoreContext.h
   box/trunk/lib/backupstore/backupprotocol.txt
Log:
Add QueryCreateDirectory2 command.

Allows creating a directory with a specified modtime (in the parent directory entry).
Tests to come shortly.

Modified: box/trunk/lib/backupstore/BackupCommands.cpp
===================================================================
--- box/trunk/lib/backupstore/BackupCommands.cpp	2014-03-02 08:57:50 UTC (rev 3292)
+++ box/trunk/lib/backupstore/BackupCommands.cpp	2014-03-02 08:58:02 UTC (rev 3293)
@@ -468,8 +468,28 @@
 //		Created: 2003/09/04
 //
 // --------------------------------------------------------------------------
-std::auto_ptr<BackupProtocolMessage> BackupProtocolCreateDirectory::DoCommand(BackupProtocolReplyable &rProtocol, BackupStoreContext &rContext) const
+std::auto_ptr<BackupProtocolMessage> BackupProtocolCreateDirectory::DoCommand(
+	BackupProtocolReplyable &rProtocol, BackupStoreContext &rContext) const
 {
+	return BackupProtocolCreateDirectory2(mContainingDirectoryID,
+		mAttributesModTime, 0 /* ModificationTime */,
+		mDirectoryName).DoCommand(rProtocol, rContext);
+}
+
+
+
+// --------------------------------------------------------------------------
+//
+// Function
+//		Name:    BackupProtocolCreateDirectory2::DoCommand(Protocol &, BackupStoreContext &)
+//		Purpose: Create directory command, with a specific
+//			 modification time.
+//		Created: 2014/02/11
+//
+// --------------------------------------------------------------------------
+std::auto_ptr<BackupProtocolMessage> BackupProtocolCreateDirectory2::DoCommand(
+	BackupProtocolReplyable &rProtocol, BackupStoreContext &rContext) const
+{
 	CHECK_PHASE(Phase_Commands)
 	CHECK_WRITEABLE_SESSION
 	

Modified: box/trunk/lib/backupstore/BackupStoreContext.cpp
===================================================================
--- box/trunk/lib/backupstore/BackupStoreContext.cpp	2014-03-02 08:57:50 UTC (rev 3292)
+++ box/trunk/lib/backupstore/BackupStoreContext.cpp	2014-03-02 08:58:02 UTC (rev 3293)
@@ -1026,7 +1026,12 @@
 //		Created: 2003/09/04
 //
 // --------------------------------------------------------------------------
-int64_t BackupStoreContext::AddDirectory(int64_t InDirectory, const BackupStoreFilename &rFilename, const StreamableMemBlock &Attributes, int64_t AttributesModTime, bool &rAlreadyExists)
+int64_t BackupStoreContext::AddDirectory(int64_t InDirectory,
+	const BackupStoreFilename &rFilename,
+	const StreamableMemBlock &Attributes,
+	int64_t AttributesModTime,
+	int64_t ModificationTime,
+	bool &rAlreadyExists)
 {
 	if(mapStoreInfo.get() == 0)
 	{
@@ -1102,7 +1107,9 @@
 	// Then add it into the parent directory
 	try
 	{
-		dir.AddEntry(rFilename, 0 /* modification time */, id, 0 /* blocks used */, BackupStoreDirectory::Entry::Flags_Dir, 0 /* attributes mod time */);
+		dir.AddEntry(rFilename, ModificationTime, id, dirSize,
+			BackupStoreDirectory::Entry::Flags_Dir,
+			AttributesModTime);
 		SaveDirectory(dir, InDirectory);
 
 		// Increment reference count on the new directory to one

Modified: box/trunk/lib/backupstore/BackupStoreContext.h
===================================================================
--- box/trunk/lib/backupstore/BackupStoreContext.h	2014-03-02 08:57:50 UTC (rev 3292)
+++ box/trunk/lib/backupstore/BackupStoreContext.h	2014-03-02 08:58:02 UTC (rev 3293)
@@ -141,7 +141,12 @@
 	
 	// Manipulating files/directories
 	int64_t AddFile(IOStream &rFile, int64_t InDirectory, int64_t ModificationTime, int64_t AttributesHash, int64_t DiffFromFileID, const BackupStoreFilename &rFilename, bool MarkFileWithSameNameAsOldVersions);
-	int64_t AddDirectory(int64_t InDirectory, const BackupStoreFilename &rFilename, const StreamableMemBlock &Attributes, int64_t AttributesModTime, bool &rAlreadyExists);
+	int64_t AddDirectory(int64_t InDirectory,
+		const BackupStoreFilename &rFilename,
+		const StreamableMemBlock &Attributes,
+		int64_t AttributesModTime,
+		int64_t ModificationTime,
+		bool &rAlreadyExists);
 	void ChangeDirAttributes(int64_t Directory, const StreamableMemBlock &Attributes, int64_t AttributesModTime);
 	bool ChangeFileAttributes(const BackupStoreFilename &rFilename, int64_t InDirectory, const StreamableMemBlock &Attributes, int64_t AttributesHash, int64_t &rObjectIDOut);
 	bool DeleteFile(const BackupStoreFilename &rFilename, int64_t InDirectory, int64_t &rObjectIDOut);

Modified: box/trunk/lib/backupstore/backupprotocol.txt
===================================================================
--- box/trunk/lib/backupstore/backupprotocol.txt	2014-03-02 08:57:50 UTC (rev 3292)
+++ box/trunk/lib/backupstore/backupprotocol.txt	2014-03-02 08:58:02 UTC (rev 3293)
@@ -124,6 +124,14 @@
 	# stream following containing attributes
 
 
+CreateDirectory2	46	Command(Success)	StreamWithCommand
+	int64		ContainingDirectoryID
+	int64		AttributesModTime
+	int64		ModificationTime
+	Filename	DirectoryName
+	# stream following containing attributes
+
+
 ListDirectory	21	Command(Success)
 	int64		ObjectID
 	int16		FlagsMustBeSet
@@ -255,3 +263,4 @@
 	int64	NumDeletedFiles
 	int64	NumDirectories
 
+# 46 is CreateDirectory2




More information about the Boxbackup-commit mailing list