XmlFormattedAssetBuilderWorker.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #pragma once
  9. #include "CopyDependencyBuilderWorker.h"
  10. #include <AssetBuilderSDK/AssetBuilderSDK.h>
  11. #include <AzCore/XML/rapidxml.h>
  12. namespace CopyDependencyBuilder
  13. {
  14. class XmlFormattedAssetBuilderWorker
  15. : public CopyDependencyBuilderWorker
  16. {
  17. public:
  18. XmlFormattedAssetBuilderWorker(AZStd::string jobKey, bool critical, bool skipServer);
  19. bool ParseProductDependencies(
  20. const AssetBuilderSDK::ProcessJobRequest& request,
  21. AZStd::vector<AssetBuilderSDK::ProductDependency>& productDependencies,
  22. AssetBuilderSDK::ProductPathDependencySet& pathDependencies) override;
  23. protected:
  24. // Check each XML node and add product dependencies if exist
  25. virtual void AddProductDependencies(
  26. const AZ::rapidxml::xml_node<char>* node,
  27. const AZStd::string& fullPath,
  28. const AZStd::string& sourceFile,
  29. const AZStd::string& platformIdentifier,
  30. AZStd::vector<AssetBuilderSDK::ProductDependency>& productDependencies,
  31. AssetBuilderSDK::ProductPathDependencySet& productPathDependencies) = 0;
  32. // Parse the XML file
  33. virtual bool ParseXmlFile(
  34. const AZ::rapidxml::xml_node<char>* node,
  35. const AZStd::string& fullPath,
  36. const AZStd::string& sourceFile,
  37. const AZStd::string& platformIdentifier,
  38. AZStd::vector<AssetBuilderSDK::ProductDependency>& productDependencies,
  39. AssetBuilderSDK::ProductPathDependencySet& productPathDependencies);
  40. };
  41. }