diff options
author | Chris Wilson <chris+github@qwirx.com> | 2013-08-22 00:17:34 +0000 |
---|---|---|
committer | Chris Wilson <chris+github@qwirx.com> | 2013-08-22 00:17:34 +0000 |
commit | c8af9906b692de24dbf1b03c563d85fa85d3a4dc (patch) | |
tree | 16c97aa693fb5e7133b4e10c826c901bdcddbe10 /lib/backupstore/BackupStoreFile.cpp | |
parent | 410c85a13d5812efeadb13e3ffa82b9629331100 (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/BackupStoreFile.cpp')
-rw-r--r-- | lib/backupstore/BackupStoreFile.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/lib/backupstore/BackupStoreFile.cpp b/lib/backupstore/BackupStoreFile.cpp index fe25eaee..519305ff 100644 --- a/lib/backupstore/BackupStoreFile.cpp +++ b/lib/backupstore/BackupStoreFile.cpp @@ -73,7 +73,7 @@ BackupStoreFileStats BackupStoreFile::msStats = {0,0,0}; // Created: 2003/08/28 // // -------------------------------------------------------------------------- -std::auto_ptr<IOStream> BackupStoreFile::EncodeFile( +std::auto_ptr<BackupStoreFileEncodeStream> BackupStoreFile::EncodeFile( const std::string& Filename, int64_t ContainerID, const BackupStoreFilename &rStoreFilename, int64_t *pModificationTime, @@ -81,13 +81,12 @@ std::auto_ptr<IOStream> BackupStoreFile::EncodeFile( RunStatusProvider* pRunStatusProvider) { // 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, - 0 /* no recipe, just encode */, - ContainerID, rStoreFilename, pModificationTime, pLogger, - pRunStatusProvider); + stream->Setup(Filename, 0 /* no recipe, just encode */, ContainerID, + rStoreFilename, pModificationTime, pLogger, pRunStatusProvider); // Return the stream for the caller return stream; |