ProcessingHandler.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #pragma once
  2. /*
  3. * Copyright (c) Contributors to the Open 3D Engine Project.
  4. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  5. *
  6. * SPDX-License-Identifier: Apache-2.0 OR MIT
  7. *
  8. */
  9. #if !defined(Q_MOC_RUN)
  10. #include <QObject>
  11. #include <AzCore/std/string/string.h>
  12. #include <SceneAPI/SceneUI/SceneUIConfiguration.h>
  13. #endif
  14. namespace AzToolsFramework
  15. {
  16. namespace Logging
  17. {
  18. class LogEntry;
  19. }
  20. }
  21. namespace AZ
  22. {
  23. namespace SceneAPI
  24. {
  25. namespace SceneUI
  26. {
  27. class SCENE_UI_API ProcessingHandler : public QObject
  28. {
  29. Q_OBJECT
  30. public:
  31. // The traceTag uuid is added to the trace context stack before work is done. This allows
  32. // for filtering messages that are send by this processing handler.
  33. explicit ProcessingHandler(Uuid traceTag, QObject* parent = nullptr);
  34. ~ProcessingHandler() override = default;
  35. virtual void BeginProcessing() = 0;
  36. signals:
  37. void AddLogEntry(const AzToolsFramework::Logging::LogEntry& entry);
  38. void StatusMessageUpdated(const AZStd::string& message);
  39. void ProcessingComplete();
  40. protected:
  41. AZ_PUSH_DISABLE_DLL_EXPORT_MEMBER_WARNING
  42. Uuid m_traceTag;
  43. AZ_POP_DISABLE_DLL_EXPORT_MEMBER_WARNING
  44. };
  45. }
  46. }
  47. }