Skip to content

Commit

Permalink
feat: migrate entrypoint
Browse files Browse the repository at this point in the history
  • Loading branch information
futrime committed Jan 27, 2024
1 parent fb22e6e commit e6084dc
Show file tree
Hide file tree
Showing 5 changed files with 87 additions and 19 deletions.
19 changes: 0 additions & 19 deletions src/DllMain.cpp

This file was deleted.

28 changes: 28 additions & 0 deletions src/lse/Entry.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#include "LegacyScriptEngine.h"

#include <ll/api/plugin/NativePlugin.h>
#include <memory>


namespace lse {

namespace {
std::unique_ptr<LegacyScriptEngine> legacyScriptEngine; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
} // namespace

LegacyScriptEngine& getLegacyScriptEngine() { return *legacyScriptEngine; }

extern "C" {
_declspec(dllexport) bool ll_plugin_load(ll::plugin::NativePlugin& self) {
legacyScriptEngine = std::make_unique<LegacyScriptEngine>(self);
return true;
}

_declspec(dllexport) bool ll_plugin_enable(ll::plugin::NativePlugin& /*unused*/) {
return legacyScriptEngine->enable();
}

// LegacyScriptEngine should not be disabled or unloaded.
}

} // namespace lse
9 changes: 9 additions & 0 deletions src/lse/Entry.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#pragma once

#include "LegacyScriptEngine.h"

namespace lse {

[[nodiscard]] LegacyScriptEngine& getLegacyScriptEngine();

} // namespace lse
24 changes: 24 additions & 0 deletions src/lse/LegacyScriptEngine.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#include "LegacyScriptEngine.h"

#include <ll/api/plugin/NativePlugin.h>

namespace lse {

LegacyScriptEngine::LegacyScriptEngine(ll::plugin::NativePlugin& self) : mSelf(self) {
mSelf.getLogger().info("loading...");

// Code for loading the plugin goes here.
}

ll::plugin::NativePlugin& LegacyScriptEngine::getSelf() const { return mSelf; }

bool LegacyScriptEngine::enable() {
mSelf.getLogger().info("enabling...");

// Code for enabling the plugin goes here.

return true;
}


} // namespace lse
26 changes: 26 additions & 0 deletions src/lse/LegacyScriptEngine.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#pragma once

#include <ll/api/plugin/NativePlugin.h>

namespace lse {

class LegacyScriptEngine {
public:
explicit LegacyScriptEngine(ll::plugin::NativePlugin& self);

LegacyScriptEngine(LegacyScriptEngine&&) = delete;
LegacyScriptEngine(const LegacyScriptEngine&) = delete;
LegacyScriptEngine& operator=(LegacyScriptEngine&&) = delete;
LegacyScriptEngine& operator=(const LegacyScriptEngine&) = delete;

~LegacyScriptEngine() = default;

[[nodiscard]] ll::plugin::NativePlugin& getSelf() const;

bool enable();

private:
ll::plugin::NativePlugin& mSelf;
};

} // namespace lse

0 comments on commit e6084dc

Please sign in to comment.