#pragma once #include "PluginMetaInformation.h" #include class PluginData; class PluginLoadWrapper { public: PluginLoadWrapper(std::shared_ptr pluginData, const bool linkAndLoad, const bool heapTrackingEnabled = false) : mPluginData(std::move(pluginData)), mIsLoadAndLink(linkAndLoad), mIsHeapTrackingEnabled(heapTrackingEnabled) { } [[nodiscard]] const std::shared_ptr &getPluginData() const { return mPluginData; } [[nodiscard]] bool isLoadAndLink() const { return mIsLoadAndLink; } [[nodiscard]] bool isHeapTrackingEnabled() const { return mIsHeapTrackingEnabled; } [[nodiscard]] std::optional getHeapTrackingOptions() const { if (mIsHeapTrackingEnabled) { return PluginMetaInformation::HeapTrackingOptions::TRACK_HEAP_OPTIONS_TRACK_SIZE_AND_COLLECT_STACK_TRACES; } return std::nullopt; } private: std::shared_ptr mPluginData; bool mIsLoadAndLink = false; bool mIsHeapTrackingEnabled = false; };