neoGFX
Cross-platform C++ app/game engine
i_plugin_event.hpp File Reference
#include <neolib/neolib.hpp>
#include <memory>
#include <neolib/core/reference_counted.hpp>
#include <neolib/task/event.hpp>

Go to the source code of this file.

Classes

class  neolib::plugin_events::i_event_callback< Arguments >
 
class  neolib::plugin_events::event_callback< Arguments >
 
class  neolib::plugin_events::i_event< Arguments >
 

Namespaces

 neolib
 
 neolib::plugin_events
 

Macros

#define detail_event_subscribe(declName, ...)
 
#define declare_event(declName, ...)
 
#define define_declared_event(name, declName, ...)
 
#define define_event(name, declName, ...)
 

Macro Definition Documentation

◆ declare_event

#define declare_event (   declName,
  ... 
)
Value:
virtual const neolib::plugin_events::i_event<__VA_ARGS__>& ev_##declName() const = 0;\
virtual neolib::plugin_events::i_event<__VA_ARGS__>& ev_##declName() = 0;\
const neolib::plugin_events::i_event<__VA_ARGS__>& declName() const { return ev_##declName(); }\
neolib::plugin_events::i_event<__VA_ARGS__>& declName() { return ev_##declName(); }\
detail_event_subscribe(declName, __VA_ARGS__)

Definition at line 171 of file i_plugin_event.hpp.

◆ define_declared_event

#define define_declared_event (   name,
  declName,
  ... 
)
Value:
const neolib::plugin_events::i_event<__VA_ARGS__>& ev_##declName() const override { return name; };\
neolib::plugin_events::i_event<__VA_ARGS__>& ev_##declName() override { return name; };

Definition at line 181 of file i_plugin_event.hpp.

◆ define_event

#define define_event (   name,
  declName,
  ... 
)
Value:
const neolib::plugin_events::i_event<__VA_ARGS__>& ev_##declName() const { return name; };\
neolib::plugin_events::i_event<__VA_ARGS__>& ev_##declName() { return name; };\
const neolib::plugin_events::i_event<__VA_ARGS__>& declName() const { return ev_##declName(); }\
neolib::plugin_events::i_event<__VA_ARGS__>& declName() { return ev_##declName(); }\
detail_event_subscribe(declName, __VA_ARGS__)

Definition at line 186 of file i_plugin_event.hpp.

◆ detail_event_subscribe

#define detail_event_subscribe (   declName,
  ... 
)
Value:
neolib::event_handle declName(const neolib::plugin_events::event_callback<__VA_ARGS__>& aCallback, const void* aUniqueId = nullptr) const { return declName()(aCallback, aUniqueId); }\
neolib::event_handle declName(const neolib::plugin_events::event_callback<__VA_ARGS__>& aCallback, const void* aUniqueId = nullptr) { return declName()(aCallback, aUniqueId); }\
template <typename T>\
neolib::event_handle declName(const neolib::plugin_events::event_callback<__VA_ARGS__>& aCallback, const T* aUniqueObject) const { return declName()(aCallback, static_cast<const void*>(aUniqueObject)); }\
template <typename T>\
neolib::event_handle declName(const neolib::plugin_events::event_callback<__VA_ARGS__>& aCallback, const T* aUniqueObject) { return declName()(aCallback, static_cast<const void*>(aUniqueObject)); }\
template <typename T>\
neolib::event_handle declName(const neolib::plugin_events::event_callback<__VA_ARGS__>& aCallback, T&& aUniqueObject) const { return declName()(aCallback, static_cast<const void*>(&aUniqueObject)); }\
template <typename T>\
neolib::event_handle declName(const neolib::plugin_events::event_callback<__VA_ARGS__>& aCallback, T&& aUniqueObject) { return declName()(aCallback, static_cast<const void*>(&aUniqueObject)); }

Definition at line 159 of file i_plugin_event.hpp.

neolib::event_handle
Definition: event.hpp:57
neolib::plugin_events::i_event
Definition: i_plugin_event.hpp:88
neolib::plugin_events::event_callback
Definition: i_plugin_event.hpp:70
neolib::plugin_events::event
Definition: plugin_event.hpp:51