pre-PR cleanup

Signed-off-by: carlitosan <82187351+carlitosan@users.noreply.github.com>
This commit is contained in:
carlitosan
2021-12-08 17:32:57 -08:00
parent 169416c2f9
commit ac6c90cd2c
3 changed files with 93 additions and 118 deletions
@@ -31,14 +31,12 @@ namespace ScriptCanvasEditor
ModelNotificationsBus::Broadcast(&ModelNotificationsTraits::OnUpgradeBegin, modification, m_assets);
AZ::SystemTickBus::Handler::BusConnect();
AzFramework::AssetSystemInfoBus::Handler::BusConnect();
AzFramework::AssetSystemInfoBus::Handler::BusConnect();
m_result.asset = m_assets[GetCurrentIndex()];
}
Modifier::~Modifier()
{
AzFramework::AssetSystemInfoBus::Handler::BusDisconnect();
AzFramework::AssetSystemInfoBus::Handler::BusDisconnect();
}
bool Modifier::AllDependenciesCleared(const AZStd::unordered_set<size_t>& dependencies) const
@@ -73,58 +71,6 @@ namespace ScriptCanvasEditor
return false;
}
AZStd::sys_time_t Modifier::CalculateRemainingWaitTime(const AZStd::unordered_set<size_t>& dependencies) const
{
auto maxSeconds = AZStd::chrono::seconds(dependencies.size() * m_config.perDependencyWaitSecondsMax);
auto waitedSeconds = AZStd::chrono::seconds(AZStd::chrono::system_clock::now() - m_waitTimeStamp);
return (maxSeconds - waitedSeconds).count();
}
void Modifier::SourceFileChanged(AZStd::string relativePath, [[maybe_unused]] AZStd::string scanFolder, [[maybe_unused]] AZ::Uuid fileAssetId)
{
AZ_TracePrintf("SC", "received SourceFileChanged: %s", relativePath.c_str());
VE_LOG("received SourceFileChanged: %s", relativePath.c_str());
}
void Modifier::SourceFileFailed(AZStd::string relativePath, [[maybe_unused]] AZStd::string scanFolder, [[maybe_unused]] AZ::Uuid fileAssetId)
{
AZ_TracePrintf("SC", "received SourceFileFailed: %s", relativePath.c_str());
VE_LOG("received SourceFileFailed: %s", relativePath.c_str());
}
void Modifier::ProcessNotifications()
{
AZStd::lock_guard<AZStd::recursive_mutex> lock(m_mutex);
for (const auto& assetPath : m_successNotifications)
{
VE_LOG("received AssetCompilationSuccess: %s", assetPath.c_str());
SourceHandle sourceHandle(nullptr, {}, assetPath.c_str());
CompleteDescriptionInPlace(sourceHandle);
if (m_attemptedAssets.contains(sourceHandle.Id()))
{
m_assetsCompletedByAP.insert(sourceHandle.Id());
}
}
m_successNotifications.clear();
for (const auto& assetPath : m_failureNotifications)
{
VE_LOG("received AssetCompilationFailed: %s", assetPath.c_str());
SourceHandle sourceHandle(nullptr, {}, assetPath.c_str());
CompleteDescriptionInPlace(sourceHandle);
if (m_attemptedAssets.contains(sourceHandle.Id()))
{
m_assetsFailedByAP.insert(sourceHandle.Id());
}
}
m_failureNotifications.clear();
}
void Modifier::AssetCompilationSuccess([[maybe_unused]] const AZStd::string& assetPath)
{
AZStd::lock_guard<AZStd::recursive_mutex> lock(m_mutex);
@@ -137,6 +83,13 @@ namespace ScriptCanvasEditor
m_failureNotifications.insert(assetPath);
}
AZStd::sys_time_t Modifier::CalculateRemainingWaitTime(const AZStd::unordered_set<size_t>& dependencies) const
{
auto maxSeconds = AZStd::chrono::seconds(dependencies.size() * m_config.perDependencyWaitSecondsMax);
auto waitedSeconds = AZStd::chrono::seconds(AZStd::chrono::system_clock::now() - m_waitTimeStamp);
return (maxSeconds - waitedSeconds).count();
}
void Modifier::CheckDependencies()
{
ModelNotificationsBus::Broadcast(&ModelNotificationsTraits::OnUpgradeModificationBegin, m_config, m_result.asset);
@@ -249,6 +202,18 @@ namespace ScriptCanvasEditor
return m_results;
}
void Modifier::InitializeResult()
{
m_result = {};
if (m_assetIndex != m_assets.size())
{
m_result.asset = m_assets[GetCurrentIndex()];
CompleteDescriptionInPlace(m_result.asset);
m_attemptedAssets.insert(m_result.asset.Id());
}
}
void Modifier::LoadAsset()
{
auto& handle = m_result.asset;
@@ -294,18 +259,6 @@ namespace ScriptCanvasEditor
}
}
void Modifier::InitializeResult()
{
m_result = {};
if (m_assetIndex != m_assets.size())
{
m_result.asset = m_assets[GetCurrentIndex()];
CompleteDescriptionInPlace(m_result.asset);
m_attemptedAssets.insert(m_result.asset.Id());
}
}
void Modifier::NextAsset()
{
++m_assetIndex;
@@ -321,6 +274,72 @@ namespace ScriptCanvasEditor
m_modifyState = ModifyState::Idle;
}
void Modifier::OnFileSaveComplete(const FileSaveResult& result)
{
if (!result.tempFileRemovalError.empty())
{
VE_LOG
("Temporary file not removed for %s: %s"
, m_result.asset.Path().c_str()
, result.tempFileRemovalError.c_str());
}
AZStd::lock_guard<AZStd::recursive_mutex> lock(m_mutex);
m_modifyState = ModifyState::ReportResult;
m_fileSaver.reset();
m_fileSaveResult = result;
}
void Modifier::OnSystemTick()
{
switch (m_state)
{
case State::GatheringDependencies:
TickGatherDependencies();
break;
case State::ModifyingGraphs:
TickUpdateGraph();
break;
}
AZ::Data::AssetManager::Instance().DispatchEvents();
AZ::SystemTickBus::ExecuteQueuedEvents();
}
void Modifier::ProcessNotifications()
{
AZStd::lock_guard<AZStd::recursive_mutex> lock(m_mutex);
for (const auto& assetPath : m_successNotifications)
{
VE_LOG("received AssetCompilationSuccess: %s", assetPath.c_str());
SourceHandle sourceHandle(nullptr, {}, assetPath.c_str());
CompleteDescriptionInPlace(sourceHandle);
if (m_attemptedAssets.contains(sourceHandle.Id()))
{
m_assetsCompletedByAP.insert(sourceHandle.Id());
}
}
m_successNotifications.clear();
for (const auto& assetPath : m_failureNotifications)
{
VE_LOG("received AssetCompilationFailed: %s", assetPath.c_str());
SourceHandle sourceHandle(nullptr, {}, assetPath.c_str());
CompleteDescriptionInPlace(sourceHandle);
if (m_attemptedAssets.contains(sourceHandle.Id()))
{
m_assetsFailedByAP.insert(sourceHandle.Id());
}
}
m_failureNotifications.clear();
}
void Modifier::ReleaseCurrentAsset()
{
m_result.asset = m_result.asset.Describe();
@@ -360,39 +379,6 @@ namespace ScriptCanvasEditor
}
}
void Modifier::OnFileSaveComplete(const FileSaveResult& result)
{
if (!result.tempFileRemovalError.empty())
{
VE_LOG
( "Temporary file not removed for %s: %s"
, m_result.asset.Path().c_str()
, result.tempFileRemovalError.c_str());
}
AZStd::lock_guard<AZStd::recursive_mutex> lock(m_mutex);
m_modifyState = ModifyState::ReportResult;
m_fileSaver.reset();
m_fileSaveResult = result;
}
void Modifier::OnSystemTick()
{
switch (m_state)
{
case State::GatheringDependencies:
TickGatherDependencies();
break;
case State::ModifyingGraphs:
TickUpdateGraph();
break;
}
AZ::Data::AssetManager::Instance().DispatchEvents();
AZ::SystemTickBus::ExecuteQueuedEvents();
}
void Modifier::SaveModifiedGraph(const ModificationResult& result)
{
m_modifyState = ModifyState::Saving;
@@ -14,9 +14,6 @@
#include <Editor/View/Windows/Tools/UpgradeTool/ModelTraits.h>
#include <ScriptCanvas/Core/Core.h>
// probably not needed if using the asset system bus
#include <AzToolsFramework/API/EditorAssetSystemAPI.h>
namespace ScriptCanvasEditor
{
namespace VersionExplorer
@@ -24,7 +21,6 @@ namespace ScriptCanvasEditor
class Modifier final
: public AZ::SystemTickBus::Handler
, public ModificationNotificationsBus::Handler
, public AzToolsFramework::AssetSystemBus::Handler
, public AzFramework::AssetSystemInfoBus::Handler
{
public:
@@ -86,12 +82,13 @@ namespace ScriptCanvasEditor
// dependency indices by asset info index (only exist if graphs have them)
AZStd::unordered_map<size_t, AZStd::unordered_set<size_t>> m_dependencies;
AZStd::unordered_map<AZ::Uuid, size_t> m_assetInfoIndexById;
AZStd::vector<size_t> m_failures;
ModifyConfiguration m_config;
ModificationResult m_result;
ModificationResults m_results;
AZStd::unique_ptr<FileSaver> m_fileSaver;
FileSaveResult m_fileSaveResult;
// m_attemptedAssets is assets attempted to be processed by modification, as opposed to
// those processed by the AP as a result of one of their dependencies being processed.
AZStd::unordered_set<AZ::Uuid> m_attemptedAssets;
AZStd::unordered_set<AZ::Uuid> m_assetsCompletedByAP;
AZStd::unordered_set<AZ::Uuid> m_assetsFailedByAP;
@@ -102,6 +99,8 @@ namespace ScriptCanvasEditor
bool AllDependenciesCleared(const AZStd::unordered_set<size_t>& dependencies) const;
bool AnyDependenciesFailed(const AZStd::unordered_set<size_t>& dependencies) const;
void AssetCompilationSuccess(const AZStd::string& assetPath) override;
void AssetCompilationFailed(const AZStd::string& assetPath) override;
AZStd::sys_time_t CalculateRemainingWaitTime(const AZStd::unordered_set<size_t>& dependencies) const;
void CheckDependencies();
void GatherDependencies();
@@ -110,27 +109,19 @@ namespace ScriptCanvasEditor
AZStd::unordered_set<size_t>& GetOrCreateDependencyIndexSet();
void InitializeResult();
void LoadAsset();
void ModificationComplete(const ModificationResult& result) override;
void ModifyCurrentAsset();
void NextAsset();
void NextModification();
void ModificationComplete(const ModificationResult& result) override;
void OnFileSaveComplete(const FileSaveResult& result);
void OnSystemTick() override;
void ProcessNotifications();
void ReleaseCurrentAsset();
void ReportModificationError(AZStd::string_view report);
void ReportModificationSuccess();
void ReportSaveResult();
void SaveModifiedGraph(const ModificationResult& result);
void SortGraphsByDependencies();
/// use all this to track the success of dependencies
void SourceFileChanged(AZStd::string relativePath, AZStd::string scanFolder, AZ::Uuid fileAssetId) override;
void SourceFileFailed(AZStd::string relativePath, AZStd::string scanFolder, AZ::Uuid fileAssetId) override;
void AssetCompilationSuccess(const AZStd::string& assetPath) override;
void AssetCompilationFailed(const AZStd::string& assetPath) override;
void ProcessNotifications();
void OnFileSaveComplete(const FileSaveResult& result);
void OnSystemTick() override;
void TickGatherDependencies();
void TickUpdateGraph();
void WaitForDependencies();
@@ -81,8 +81,6 @@ namespace ScriptCanvasEditor
void Scanner::FilterAsset(SourceHandle asset)
{
AZStd::string name = asset.Path().c_str();
if (m_config.filter && m_config.filter(asset) == ScanConfiguration::Filter::Exclude)
{
VE_LOG("Scanner: Excluded: %s ", ModCurrentAsset().Path().c_str());