Skip to content

Commit 749f5c9

Browse files
Merge pull request #79 from awslabs/FB-DownloadStream
Fb download stream
2 parents abbd808 + 8082b39 commit 749f5c9

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

aws-cpp-sdk-transfer/include/aws/transfer/TransferHandle.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,8 @@ namespace Aws
146146
*/
147147
TransferHandle(const Aws::String& bucketName, const Aws::String& keyName, CreateDownloadStreamCallback createDownloadStreamFn);
148148

149+
~TransferHandle();
150+
149151
/**
150152
* Whether or not this transfer is being performed using parallel parts via a multi-part s3 api.
151153
*/
@@ -328,6 +330,8 @@ namespace Aws
328330

329331
private:
330332

333+
void CleanupDownloadStream();
334+
331335
bool m_isMultipart;
332336
Aws::String m_multipartId;
333337
TransferDirection m_direction;

aws-cpp-sdk-transfer/source/transfer/TransferHandle.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,11 @@ namespace Aws
111111
m_downloadStream(nullptr)
112112
{}
113113

114+
TransferHandle::~TransferHandle()
115+
{
116+
CleanupDownloadStream();
117+
}
118+
114119
void TransferHandle::ChangePartToCompleted(const PartPointer& partState, const Aws::String &eTag)
115120
{
116121
std::lock_guard<std::mutex> locker(m_partsLock);
@@ -228,6 +233,11 @@ namespace Aws
228233

229234
if (IsFinishedStatus(value))
230235
{
236+
if(value == TransferStatus::COMPLETED)
237+
{
238+
CleanupDownloadStream();
239+
}
240+
231241
std::unique_lock<std::mutex> semaphoreLock(m_statusLock);
232242
m_waitUntilFinishedSignal.notify_all();
233243
}
@@ -280,5 +290,15 @@ namespace Aws
280290
{
281291
SetVersionId(downloadConfig.versionId);
282292
}
293+
294+
void TransferHandle::CleanupDownloadStream()
295+
{
296+
if(m_downloadStream)
297+
{
298+
m_downloadStream->flush();
299+
Aws::Delete(m_downloadStream);
300+
m_downloadStream = nullptr;
301+
}
302+
}
283303
}
284304
}

0 commit comments

Comments
 (0)