#pragma once #include #include #include "InsightWorkerTask.hpp" #include "src/Targets/TargetMemory.hpp" #include "src/Insight/UserInterfaces/InsightWindow/Widgets/TargetMemoryInspectionPane/MemorySnapshot.hpp" class CaptureMemorySnapshot: public InsightWorkerTask { Q_OBJECT public: CaptureMemorySnapshot( const QString& name, const QString& description, Targets::TargetMemoryType memoryType, const std::vector& focusedRegions, const std::vector& excludedRegions, const std::optional& data ); QString brief() const override { return "Capturing memory snapshot"; } TaskGroups taskGroups() const override { return TaskGroups({ TaskGroup::USES_TARGET_CONTROLLER, }); }; signals: void memorySnapshotCaptured(MemorySnapshot snapshot); protected: void run(Services::TargetControllerService& targetControllerService) override; private: QString name; QString description; Targets::TargetMemoryType memoryType; std::vector focusedRegions; std::vector excludedRegions; std::optional data; };