summaryrefslogtreecommitdiff
path: root/lib/backupstore/BackupStoreFileDiff.cpp
diff options
context:
space:
mode:
authorChris Wilson <chris+github@qwirx.com>2013-08-22 00:17:34 +0000
committerChris Wilson <chris+github@qwirx.com>2013-08-22 00:17:34 +0000
commitc8af9906b692de24dbf1b03c563d85fa85d3a4dc (patch)
tree16c97aa693fb5e7133b4e10c826c901bdcddbe10 /lib/backupstore/BackupStoreFileDiff.cpp
parent410c85a13d5812efeadb13e3ffa82b9629331100 (diff)
Pass std::auto_ptr objects to Protocol for upload.
Passing raw pointers is bad C++ style, and dangerous, because Protocol will free the passed-in pointers after uploading them, so we should not keep using them. Reduce code duplication in BackupClientDirectoryRecord patch/normal upload. Return a std::auto_ptr<BackupStoreFileEncodeStream> instead of a std::auto_ptr<IOStream> from BackupStoreFile::EncodeFile* functions.
Diffstat (limited to 'lib/backupstore/BackupStoreFileDiff.cpp')
-rw-r--r--lib/backupstore/BackupStoreFileDiff.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/backupstore/BackupStoreFileDiff.cpp b/lib/backupstore/BackupStoreFileDiff.cpp
index c8a28b78..fa8cb892 100644
--- a/lib/backupstore/BackupStoreFileDiff.cpp
+++ b/lib/backupstore/BackupStoreFileDiff.cpp
@@ -123,7 +123,7 @@ void BackupStoreFile::MoveStreamPositionToBlockIndex(IOStream &rStream)
// Created: 12/1/04
//
// --------------------------------------------------------------------------
-std::auto_ptr<IOStream> BackupStoreFile::EncodeFileDiff
+std::auto_ptr<BackupStoreFileEncodeStream> BackupStoreFile::EncodeFileDiff
(
const std::string& Filename, int64_t ContainerID,
const BackupStoreFilename &rStoreFilename, int64_t DiffFromObjectID,
@@ -206,10 +206,11 @@ std::auto_ptr<IOStream> BackupStoreFile::EncodeFileDiff
// foundBlocks no longer required
// Create the stream
- std::auto_ptr<IOStream> stream(new BackupStoreFileEncodeStream);
+ std::auto_ptr<BackupStoreFileEncodeStream> stream(
+ new BackupStoreFileEncodeStream);
// Do the initial setup
- ((BackupStoreFileEncodeStream*)stream.get())->Setup(Filename, precipe, ContainerID, rStoreFilename, pModificationTime);
+ stream->Setup(Filename, precipe, ContainerID, rStoreFilename, pModificationTime);
precipe = 0; // Stream has taken ownership of this
// Tell user about completely different status?