#ifndef BASICEVENTS_H #define BASICEVENTS_H #include "Event.h" namespace Archimedes { class Module; class AnonymousEvent : public Event { public: AnonymousEvent() {} AnonymousEvent(std::any data) : Event(data) {} ~AnonymousEvent() {} operator std::string() const override { return "AnonymousEvent"; } }; class LoadModuleEvent : public Event { public: LoadModuleEvent() {} LoadModuleEvent(std::string n) : module(n) {} ~LoadModuleEvent() {} operator std::string() const override { return "LoadModuleEvent"; } std::string module; }; class DoLoadModuleEvent : public Event { public: DoLoadModuleEvent() {} DoLoadModuleEvent(std::variant n) : module(n) {} ~DoLoadModuleEvent() {} operator std::string() const override { return "DoLoadModuleEvent"; } std::variant module; }; class UnloadModuleEvent : public Event { public: UnloadModuleEvent() {} UnloadModuleEvent(std::string n) : module(n) {} ~UnloadModuleEvent() {} operator std::string() const override { return "UnloadModuleEvent"; } std::string module; }; class DoUnloadModuleEvent : public Event { public: DoUnloadModuleEvent() {} DoUnloadModuleEvent(std::string n) : module(n) {} ~DoUnloadModuleEvent() {} operator std::string() const override { return "DoUnloadModuleEvent"; } std::string module; }; } #endif