Work on asset synchronization

This commit is contained in:
Emil Axelsson
2017-11-11 18:48:07 +01:00
parent 916f94d70e
commit a73f2e0d00
10 changed files with 148 additions and 43 deletions
+10 -5
View File
@@ -45,10 +45,19 @@ namespace openspace {
class AssetSynchronizer : public ResourceSyncClient {
public:
enum class SynchronizationState : int {
Unknown,
Added,
Synchronizing,
Synchronized
};
AssetSynchronizer(ResourceSynchronizer* resourceSynchronizer);
void addAsset(std::shared_ptr<Asset> asset);
void removeAsset(Asset* asset);
void syncAsset(Asset* asset);
SynchronizationState assetState(Asset* asset);
float assetProgress(Asset* asset);
void syncUnsynced();
std::vector<std::shared_ptr<Asset>> getSynchronizedAssets();
@@ -56,11 +65,7 @@ public:
private:
bool assetIsSynchronized(Asset* asset);
enum class SynchronizationState : int {
Added,
Synchronizing,
Synchronized
};
struct AssetSynchronization {
std::shared_ptr<Asset> asset;
@@ -61,13 +61,16 @@ public:
ResourceSynchronization();
virtual ~ResourceSynchronization();
virtual void synchronize() = 0;
virtual std::string directory() = 0;
virtual void synchronize() = 0;
virtual float nSynchronizedBytes() = 0;
virtual float nTotalBytes() = 0;
virtual bool nTotalBytesIsKnown() = 0;
virtual float progress();
void wait();
bool isResolved();
void resolve();
float progress();
void updateProgress(float t);
std::shared_ptr<SynchronizationJob> job();
@@ -75,7 +78,6 @@ private:
std::shared_ptr<SynchronizationJob> _job;
std::atomic<bool> _started;
std::atomic<bool> _resolved;
std::atomic<float> _progress;
};