#pragma once #include #include #include "InsightWorkerTask.hpp" #include "src/Targets/TargetMemory.hpp" #include "src/Targets/TargetAddressSpaceDescriptor.hpp" #include "src/Targets/TargetMemorySegmentDescriptor.hpp" #include "src/Insight/UserInterfaces/InsightWindow/Widgets/TargetMemoryInspectionPane/MemorySnapshot.hpp" class CaptureMemorySnapshot: public InsightWorkerTask { Q_OBJECT public: CaptureMemorySnapshot( const QString& name, const QString& description, const Targets::TargetAddressSpaceDescriptor& addressSpaceDescriptor, const Targets::TargetMemorySegmentDescriptor& memorySegmentDescriptor, const std::vector& focusedRegions, const std::vector& excludedRegions, const std::optional& data ); [[nodiscard]] QString brief() const override; [[nodiscard]] TaskGroups taskGroups() const override; signals: void memorySnapshotCaptured(MemorySnapshot snapshot); protected: void run(Services::TargetControllerService& targetControllerService) override; private: QString name; QString description; const Targets::TargetAddressSpaceDescriptor& addressSpaceDescriptor; const Targets::TargetMemorySegmentDescriptor& memorySegmentDescriptor; std::vector focusedRegions; std::vector excludedRegions; std::optional data; };