- use const auto& where possible

- avoid using const std::unique_ptr& and const std::shared_ptr&
- avoid wrapping results in std::optional
- prefer std::string_view over const std::string&
- update FSUtils::LoadFileToMem to write into std::vector<uint8_t>
- use std::span when possible
- Avoid unnessecary copies in PluginDataFactory
- allocate plugins as HeapMemoryFixedSize which bascially is a std::unique_ptr with fixed size
This commit is contained in:
Maschell
2023-11-04 15:32:45 +01:00
parent baee1afda3
commit cc5acd0980
37 changed files with 477 additions and 583 deletions

View File

@@ -26,28 +26,29 @@
class PluginContainer {
public:
PluginContainer(std::unique_ptr<PluginMetaInformation> metaInformation, std::unique_ptr<PluginInformation> pluginInformation, std::shared_ptr<PluginData> pluginData)
: metaInformation(std::move(metaInformation)),
pluginInformation(std::move(pluginInformation)),
pluginData(std::move(pluginData)) {
: mMetaInformation(std::move(metaInformation)),
mPluginInformation(std::move(pluginInformation)),
mPluginData(std::move(pluginData)) {
}
[[nodiscard]] const std::unique_ptr<PluginMetaInformation> &getMetaInformation() const {
return this->metaInformation;
[[nodiscard]] const PluginMetaInformation &getMetaInformation() const {
return *this->mMetaInformation;
}
[[nodiscard]] const std::unique_ptr<PluginInformation> &getPluginInformation() const {
return pluginInformation;
[[nodiscard]] const PluginInformation &getPluginInformation() const {
return *this->mPluginInformation;
}
[[nodiscard]] const std::shared_ptr<PluginData> &getPluginData() const {
return pluginData;
[[nodiscard]] std::shared_ptr<PluginData> getPluginDataCopy() const {
return mPluginData;
}
uint32_t getHandle() {
return (uint32_t) this;
}
const std::unique_ptr<PluginMetaInformation> metaInformation;
const std::unique_ptr<PluginInformation> pluginInformation;
const std::shared_ptr<PluginData> pluginData;
private:
const std::unique_ptr<PluginMetaInformation> mMetaInformation;
const std::unique_ptr<PluginInformation> mPluginInformation;
const std::shared_ptr<PluginData> mPluginData;
};