14 #ifndef hifi_ATPAssetMigrator_h
15 #define hifi_ATPAssetMigrator_h
17 #include <QtCore/QJsonArray>
18 #include <QtCore/QObject>
19 #include <QtCore/QMultiHash>
20 #include <QtCore/QSet>
23 class ResourceRequest;
24 class SetMappingRequest;
26 class ATPAssetMigrator :
public QObject {
29 static ATPAssetMigrator& getInstance();
31 void setDialogParent(QWidget* dialogParent) { _dialogParent = dialogParent; }
33 void loadEntityServerFile();
35 void assetUploadFinished(AssetUpload* upload,
const QString& hash);
36 void setMappingFinished(SetMappingRequest* request);
38 void migrateResource(ResourceRequest* request);
40 void checkIfFinished();
41 void saveEntityServerFile();
45 bool wantsToMigrateResource(
const QUrl& url);
47 QWidget* _dialogParent =
nullptr;
48 QJsonArray _entitiesArray;
50 bool _doneReading {
false };
52 using JSONTypePair = std::pair<QJsonValueRef, quint8>;
54 QMultiHash<QUrl, JSONTypePair> _pendingReplacements;
55 QHash<QUrl, QUrl> _uploadedAssets;
56 QHash<QObject*, QUrl> _originalURLs;
57 QSet<QUrl> _ignoredUrls;
58 int _errorCount { 0 };