Audacity
3.2.0
libraries
lib-cloud-audiocom
sync
ProjectUploadOperation.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-or-later */
2
/*!********************************************************************
3
4
Audacity: A Digital Audio Editor
5
6
ProjectUploadOperation.h
7
8
Dmitry Vedenko
9
10
**********************************************************************/
11
12
#pragma once
13
14
#include <cstdint>
15
#include <memory>
16
#include <vector>
17
18
#include "
concurrency/ICancellable.h
"
19
20
class
TrackList
;
21
22
namespace
audacity::cloud::audiocom::sync
23
{
24
enum class
UploadMode
25
{
26
Normal
,
27
CreateNew
,
28
ForceOverwrite
,
29
};
30
31
struct
ProjectUploadData
final
32
{
33
std::vector<uint8_t>
ProjectSnapshot
;
34
std::shared_ptr<TrackList>
Tracks
;
35
};
36
37
class
ProjectUploadOperation
/* not final */
:
public
concurrency::ICancellable
38
{
39
public
:
40
virtual
~ProjectUploadOperation
() =
default
;
41
42
virtual
void
Start
() = 0;
43
virtual
void
SetUploadData
(
const
ProjectUploadData
& data) = 0;
44
virtual
bool
IsCompleted
()
const
= 0;
45
};
// class AsynchronousOperation
46
}
// namespace audacity::cloud::audiocom::sync
ICancellable.h
TrackList
A flat linked list of tracks supporting Add, Remove, Clear, and Contains, serialization of the list o...
Definition:
Track.h:850
audacity::cloud::audiocom::sync::ProjectUploadOperation
Definition:
ProjectUploadOperation.h:38
audacity::cloud::audiocom::sync::ProjectUploadOperation::IsCompleted
virtual bool IsCompleted() const =0
audacity::cloud::audiocom::sync::ProjectUploadOperation::~ProjectUploadOperation
virtual ~ProjectUploadOperation()=default
audacity::cloud::audiocom::sync::ProjectUploadOperation::SetUploadData
virtual void SetUploadData(const ProjectUploadData &data)=0
audacity::cloud::audiocom::sync::ProjectUploadOperation::Start
virtual void Start()=0
audacity::concurrency::ICancellable
Definition:
ICancellable.h:12
audacity::cloud::audiocom::sync
Definition:
CloudSyncService.h:31
audacity::cloud::audiocom::sync::UploadMode
UploadMode
Definition:
ProjectUploadOperation.h:25
audacity::cloud::audiocom::sync::UploadMode::CreateNew
@ CreateNew
audacity::cloud::audiocom::sync::UploadMode::Normal
@ Normal
audacity::cloud::audiocom::sync::UploadMode::ForceOverwrite
@ ForceOverwrite
audacity::cloud::audiocom::sync::ProjectUploadData
Definition:
ProjectUploadOperation.h:32
audacity::cloud::audiocom::sync::ProjectUploadData::Tracks
std::shared_ptr< TrackList > Tracks
Definition:
ProjectUploadOperation.h:34
audacity::cloud::audiocom::sync::ProjectUploadData::ProjectSnapshot
std::vector< uint8_t > ProjectSnapshot
Definition:
ProjectUploadOperation.h:33
Generated by
1.9.3