35class ProjectUploadOperation;
50 std::optional<CloudSyncError> Error {};
52 bool IsSyncing() const noexcept;
64 bool IsCloudProject()
const;
72 std::shared_ptr<ProjectUploadOperation> uploadOperation,
73 int64_t missingBlocksCount,
bool needsProjectUpload);
75 void OnUploadOperationCreated(
76 std::shared_ptr<ProjectUploadOperation> uploadOperation);
80 void OnSnapshotCreated(
92 std::optional<CloudSyncError> error);
98 bool IsSyncing()
const;
100 std::string GetCloudProjectId()
const;
101 std::string GetSnapshotId()
const;
105 std::weak_ptr<AudacityProject>
GetProject()
const;
107 int64_t GetSavesCount()
const;
113 std::string GetCloudProjectPage()
const;
115 bool IsBlockLocked(int64_t blockID)
const;
119 bool IsFirstSyncDialogShown()
const;
120 void SetFirstSyncDialogShown(
bool shown =
true);
126 void UpdateIdFromDatabase();
128 void UnsafeUpdateProgress();
131 void MarkProjectSynced(
bool success);
138 void OnProjectPathChanged();
156 std::atomic<bool> mUINotificationPending {
false };
Utility ClientData::Site to register hooks into a host class that attach client data.
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
A move-only handle representing a connection to a Publisher.
a class used to (de)serialize the project catalog
std::mutex mUploadQueueMutex
std::unique_ptr< CloudStatusChangedNotifier > mUIStateNotifier
void AbortLastUploadOperation()
std::unique_ptr< CloudStatusChangedNotifier > mAsyncStateNotifier
std::mutex mIdentifiersMutex
CloudStatusChangedMessage mLastStatus
AudacityProject & mProject
std::vector< std::shared_ptr< UploadQueueElement > > mUploadQueue
Observer::Subscription mProjectPathChangedSubscription
~ProjectCloudExtension() override
Utility ClientData::Site to register hooks into a host class that attach client data.
const AudacityProject & GetProject(const Track &track)