34 using type = std::remove_const_t<std::remove_reference_t<T>>;
68 void *
owner()
const {
return _owner; }
73 const char *
prototype()
const {
return _prototype; }
112 (obj->*memberFunction)(args...);
158 _slots.
removeIf([
object](
const Info &
info) {
return static_cast<const T *
>(
info.object) ==
object; });
180 const void *
object =
nullptr;
185 void *_owner =
nullptr;
186 const char *_prototype =
nullptr;
Dynamic array container wrapping std::vector.
Definition list.h:40
Iterator remove(ConstIterator pos)
Removes the element at the given iterator position.
Definition list.h:402
size_t size() const noexcept
Returns the number of elements in the list.
Definition list.h:301
void removeIf(TestFunc func)
Runs a test function on all the items and removes them if it returns true.
Definition list.h:429
Type-safe signal/slot mechanism for decoupled event notification.
Definition signal.h:27
void disconnectFromObject(const T *object)
Disconnects all slots connected from the given object.
Definition signal.h:157
Signal(void *owner=nullptr, const char *prototype=nullptr)
Signal constructor.
Definition signal.h:62
size_t connect(Function slot, void *ptr=nullptr)
Connects this signal to a callable (lambda or function).
Definition signal.h:86
const char * prototype() const
Returns the prototype string, or nullptr if not defined.
Definition signal.h:73
void disconnect(const T *object, void(T::*memberFunction)(Args...))
Disconnects a slot by its object and member function.
Definition signal.h:144
void disconnect(size_t slotID)
Disconnects a slot by its connection ID.
Definition signal.h:127
typename removeConstAndRef< T >::type RemoveConstAndRef
Convenience alias for removeConstAndRef.
Definition signal.h:38
static VariantList pack(Args... args)
Packs the arguments into a VariantList.
Definition signal.h:53
std::function< void(Args...)> Function
Callable type that slots must conform to.
Definition signal.h:30
void emit(Args... args) const
Emits this signal.
Definition signal.h:170
size_t connect(T *obj, void(T::*memberFunction)(Args...))
Connects this signal to an object member function.
Definition signal.h:108
void * owner() const
Returns the owner of this signal, or nullptr if not defined.
Definition signal.h:68
@ Info
Informational message.
#define PROMEKI_NAMESPACE_BEGIN
Starts a promeki namespace block.
Definition namespace.h:14
#define PROMEKI_NAMESPACE_END
Ends a promeki namespace block.
Definition namespace.h:19
Metafunction that strips const and reference qualifiers from a type.
Definition signal.h:33
VariantImpl< std::monostate, bool, uint8_t, int8_t, uint16_t, int16_t, uint32_t, int32_t, uint64_t, int64_t, float, double, String, DateTime, TimeStamp, Size2Du32, UUID, Timecode, Rational< int >, detail::VariantEnd > Variant
Concrete variant type instantiated with every type from PROMEKI_VARIANT_TYPES.
Definition variant.h:362