Audacity 3.2.0
Public Member Functions | Private Attributes | List of all members
audacity::cloud::audiocom::sync::MixdownUploader::DataExporter Class Referencefinal
Inheritance diagram for audacity::cloud::audiocom::sync::MixdownUploader::DataExporter:
[legend]
Collaboration diagram for audacity::cloud::audiocom::sync::MixdownUploader::DataExporter:
[legend]

Public Member Functions

 DataExporter (MixdownUploader &parent, ExportTask task)
 
 ~DataExporter () override
 
void Cancel ()
 
ExportResult GetResult () const
 
void OnComplete (ExportResult result)
 
void SetStatusString (const TranslatableString &str) override
 
bool IsCancelled () const override
 
bool IsStopped () const override
 
void OnProgress (double value) override
 
void ExportTread ()
 
void HandleExportDiskFullError (const ExportDiskFullError &error)
 
void HandleExportError (const ExportErrorException &error)
 
void HandleExportException (const ExportException &error)
 
void HandleUnkonwnException ()
 
- Public Member Functions inherited from ExportProcessorDelegate
virtual ~ExportProcessorDelegate ()
 
virtual bool IsCancelled () const =0
 
virtual bool IsStopped () const =0
 
virtual void SetStatusString (const TranslatableString &str)=0
 
virtual void OnProgress (double progress)=0
 

Private Attributes

MixdownUploadermParent
 
ExportTask mTask
 
std::thread mExportThread
 
std::atomic< bool > mCancelled { false }
 
ExportResult mResult { ExportResult::Stopped }
 

Detailed Description

Definition at line 84 of file MixdownUploader.cpp.

Constructor & Destructor Documentation

◆ DataExporter()

audacity::cloud::audiocom::sync::MixdownUploader::DataExporter::DataExporter ( MixdownUploader parent,
ExportTask  task 
)
inline

Definition at line 87 of file MixdownUploader.cpp.

References ExportTread().

Here is the call graph for this function:

◆ ~DataExporter()

audacity::cloud::audiocom::sync::MixdownUploader::DataExporter::~DataExporter ( )
inlineoverride

Definition at line 94 of file MixdownUploader.cpp.

95 {
96 mExportThread.join();
97 }

Member Function Documentation

◆ Cancel()

void audacity::cloud::audiocom::sync::MixdownUploader::DataExporter::Cancel ( )
inline

Definition at line 99 of file MixdownUploader.cpp.

100 {
101 mCancelled.store(true, std::memory_order_release);
102 }

◆ ExportTread()

void audacity::cloud::audiocom::sync::MixdownUploader::DataExporter::ExportTread ( )
inline

Definition at line 145 of file MixdownUploader.cpp.

146 {
147 try
148 {
149 auto future = mTask.get_future();
150 mTask(*this);
151 const auto result = future.get();
152
153 BasicUI::CallAfter([this, result] { OnComplete(result); });
154 }
155 catch (const ExportDiskFullError& error)
156 {
158 }
159 catch (const ExportErrorException& error)
160 {
161 HandleExportError(error);
162 }
163 catch (const ExportException& error)
164 {
166 }
167 catch (...)
168 {
170 }
171 }
void HandleExportDiskFullError(const ExportDiskFullError &error)
void CallAfter(Action action)
Schedule an action to be done later, and in the main thread.
Definition: BasicUI.cpp:213

References BasicUI::CallAfter().

Referenced by DataExporter().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetResult()

ExportResult audacity::cloud::audiocom::sync::MixdownUploader::DataExporter::GetResult ( ) const
inline

Definition at line 104 of file MixdownUploader.cpp.

◆ HandleExportDiskFullError()

void audacity::cloud::audiocom::sync::MixdownUploader::DataExporter::HandleExportDiskFullError ( const ExportDiskFullError error)
inline

Definition at line 173 of file MixdownUploader.cpp.

174 {
176
178 [this, fileName = error.GetFileName()]
179 {
180 ShowDiskFullExportErrorDialog(fileName);
181 });
182 }
const wxFileNameWrapper & GetFileName() const noexcept
void ReportProgress(MixdownState state, double progress, ResponseResult uploadResult)

References BasicUI::CallAfter(), audacity::cloud::audiocom::sync::Failed, and ExportDiskFullError::GetFileName().

Here is the call graph for this function:

◆ HandleExportError()

void audacity::cloud::audiocom::sync::MixdownUploader::DataExporter::HandleExportError ( const ExportErrorException error)
inline

Definition at line 184 of file MixdownUploader.cpp.

185 {
187
189 [this, message = error.GetMessage(), helpPage = error.GetHelpPageId()]
190 {
191 ShowExportErrorDialog(message, XO("Export failed"), helpPage, true);
192 });
193 }
const TranslatableString & GetMessage() const noexcept
const wxString & GetHelpPageId() const noexcept

References BasicUI::CallAfter(), audacity::cloud::audiocom::sync::Failed, ExportErrorException::GetHelpPageId(), and ExportErrorException::GetMessage().

Here is the call graph for this function:

◆ HandleExportException()

void audacity::cloud::audiocom::sync::MixdownUploader::DataExporter::HandleExportException ( const ExportException error)
inline

Definition at line 195 of file MixdownUploader.cpp.

196 {
198
200 [this, message = error.What()]
201 {
202 ShowExportErrorDialog(Verbatim(message), XO("Export failed"), true);
203 });
204 }
const wxString & What() const noexcept

References BasicUI::CallAfter(), audacity::cloud::audiocom::sync::Failed, and ExportException::What().

Here is the call graph for this function:

◆ HandleUnkonwnException()

void audacity::cloud::audiocom::sync::MixdownUploader::DataExporter::HandleUnkonwnException ( )
inline

Definition at line 206 of file MixdownUploader.cpp.

207 {
209 BasicUI::CallAfter([] { BasicUI::ShowMessageBox(XO("Export error")); });
210 }
XO("Cut/Copy/Paste")
MessageBoxResult ShowMessageBox(const TranslatableString &message, MessageBoxOptions options={})
Show a modal message box with either Ok or Yes and No, and optionally Cancel.
Definition: BasicUI.h:279

References BasicUI::CallAfter(), audacity::cloud::audiocom::sync::Failed, BasicUI::ShowMessageBox(), and XO().

Here is the call graph for this function:

◆ IsCancelled()

bool audacity::cloud::audiocom::sync::MixdownUploader::DataExporter::IsCancelled ( ) const
inlineoverridevirtual

Implements ExportProcessorDelegate.

Definition at line 130 of file MixdownUploader.cpp.

131 {
132 return mCancelled.load(std::memory_order_acquire);
133 }

◆ IsStopped()

bool audacity::cloud::audiocom::sync::MixdownUploader::DataExporter::IsStopped ( ) const
inlineoverridevirtual

Implements ExportProcessorDelegate.

Definition at line 135 of file MixdownUploader.cpp.

136 {
137 return false;
138 }

◆ OnComplete()

void audacity::cloud::audiocom::sync::MixdownUploader::DataExporter::OnComplete ( ExportResult  result)
inline

◆ OnProgress()

void audacity::cloud::audiocom::sync::MixdownUploader::DataExporter::OnProgress ( double  value)
inlineoverridevirtual

◆ SetStatusString()

void audacity::cloud::audiocom::sync::MixdownUploader::DataExporter::SetStatusString ( const TranslatableString str)
inlineoverridevirtual

Implements ExportProcessorDelegate.

Definition at line 126 of file MixdownUploader.cpp.

127 {
128 }

Member Data Documentation

◆ mCancelled

std::atomic<bool> audacity::cloud::audiocom::sync::MixdownUploader::DataExporter::mCancelled { false }
private

Definition at line 217 of file MixdownUploader.cpp.

◆ mExportThread

std::thread audacity::cloud::audiocom::sync::MixdownUploader::DataExporter::mExportThread
private

Definition at line 215 of file MixdownUploader.cpp.

◆ mParent

MixdownUploader& audacity::cloud::audiocom::sync::MixdownUploader::DataExporter::mParent
private

Definition at line 213 of file MixdownUploader.cpp.

◆ mResult

ExportResult audacity::cloud::audiocom::sync::MixdownUploader::DataExporter::mResult { ExportResult::Stopped }
private

Definition at line 218 of file MixdownUploader.cpp.

◆ mTask

ExportTask audacity::cloud::audiocom::sync::MixdownUploader::DataExporter::mTask
private

Definition at line 214 of file MixdownUploader.cpp.


The documentation for this class was generated from the following file: