Represents a user-defined thread.
|
| AThread (std::function< void()> functor) |
|
void | detach () |
|
void | start () |
| Start thread execution.
|
|
bool | isInterrupted () override |
|
void | resetInterruptFlag () override |
| Reset interruption flag.
|
|
void | interrupt () override |
| Interrupt thread's execution.
|
|
void | join () |
| Waits for thread to be finished.
|
|
id | getId () const |
|
void | enqueue (AMessageQueue<>::Message f) |
| Delivers task for execution (message) to this thread's event queue. Messages are processed by framework itself using AEventLoop. This behaviour may be overwritten using the AThread::processMessages() function.
|
|
const AMessageQueue & | messageQueue () const |
|
IEventLoop * | getCurrentEventLoop () const |
| Get current event loop for this thread.
|
|
template<class Callable> |
void | operator<< (Callable fun) |
| Enqueue message to make.
|
|
template<class Callable> |
void | operator* (Callable fun) |
| Enqueue message to make. Helper function for async, asyncX, ui, uiX.
|
|
const AString & | threadName () const noexcept |
|
AStacktrace | threadStacktrace () const |
| Retrieve stacktrace of the thread.
|
|
bool | messageQueueEmpty () noexcept |
|
_< AObject > | sharedPtr () |
|
_weak< AObject > | weakPtr () |
|
template<typename Connectable, ACompatibleSlotFor< Connectable > Function> |
decltype(auto) | connect (const Connectable &connectable, Function &&function) |
| Connects signal or property to slot of "this" object.
|
|
void | setSignalsEnabled (bool enabled) |
|
bool | isSignalsEnabled () const noexcept |
|
template<ASignalInvokable T> |
void | operator^ (T &&t) noexcept |
|
_< AAbstractThread > | getThread () const |
|
bool | isSlotsCallsOnlyOnMyThread () const noexcept |
|
void | setSlotsCallsOnlyOnMyThread (bool slotsCallsOnlyOnMyThread) |
|
| AObjectBase (AObjectBase &&rhs) noexcept |
|
| AObjectBase (const AObjectBase &rhs) noexcept |
|
AObjectBase & | operator= (const AObjectBase &rhs) noexcept |
|
AObjectBase & | operator= (AObjectBase &&rhs) noexcept |
|
| noncopyable (const noncopyable &)=delete |
|
noncopyable & | operator= (const noncopyable &)=delete |
|
|
static const _< AAbstractThread > & | main () noexcept |
| Returns main thread of the application.
|
|
static void | sleep (std::chrono::milliseconds duration) |
| Sleep for specified duration. Most operation systems guarantee that elasped time will be greater than specified. AThread::interrupt() is supported.
|
|
static _< AAbstractThread > | current () |
|
static void | interruptionPoint () |
| Interruption point.
|
|
static void | setName (AString name) noexcept |
|
static void | processMessages () |
| Processes messages from other threads of current thread. Called by framework itself using IEventLoop.
|
|
static void | disconnect () |
|
template<AAnySignal Signal, aui::derived_from< AObjectBase > Object, ACompatibleSlotFor< Signal > Function> |
static decltype(auto) | connect (const Signal &signal, Object *object, Function &&function) |
| Connects signal to the slot of the specified object.
|
|
template<AAnyProperty Property, aui::derived_from< AObjectBase > Object, typename Function> |
static decltype(auto) | connect (const Property &property, Object *object, Function &&function) |
| Connects property to the slot of the specified object.
|
|
template<APropertyReadable PropertySource, APropertyWritable PropertyDestination>
requires requires { { *propertySource } -> aui::convertible_to<std::decay_t<decltype(*propertyDestination)>>; } |
static void | connect (PropertySource &&propertySource, PropertyDestination &&propertyDestination) |
| Connects source property to the destination property.
|
|
template<APropertyWritable PropertySource, APropertyWritable PropertyDestination>
requires requires { { *propertySource } -> aui::convertible_to<std::decay_t<decltype(*propertyDestination)>>; { *propertyDestination } -> aui::convertible_to<std::decay_t<decltype(*propertySource)>>; } |
static void | biConnect (PropertySource &&propertySource, PropertyDestination &&propertyDestination) |
| Connects source property to the destination property and opposite (bidirectionally).
|
|
template<AAnySignalOrProperty Connectable, aui::derived_from< AObjectBase > Object, ACompatibleSlotFor< Connectable > Function> |
static decltype(auto) | connect (const Connectable &connectable, Object &object, Function &&function) |
| Connects signal or property to the slot of the specified object.
|
|
template<AAnySignalOrProperty Connectable, aui::derived_from< AObjectBase > Object, ACompatibleSlotFor< Connectable > Function> |
static decltype(auto) | connect (const Connectable &connectable, _< Object > object, Function &&function) |
| Connects signal or property to the slot of the specified object.
|
|
template<AAnySignalOrProperty Connectable, aui::derived_from< AObjectBase > Object, typename Function> |
static decltype(auto) | connect (const Connectable &connectable, ASlotDef< Object *, Function > slotDef) |
| Connects signal to the slot of the specified object. Slot is packed to single argument.
|
|
template<AAnyProperty Property, typename Object, ACompatibleSlotFor< Property > Function>
requires (!aui::derived_from<Object, AObject>) |
static void | connect (const Property &property, _< Object > object, Function &&function) |
| Connects signal or property to the slot of the specified non-AObject type.
|
|
static void | moveToThread (aui::no_escape< AObject > object, _< AAbstractThread > thread) |
|
|
typedef std::thread::id | id |
| Thread ID type.
|
|
static constexpr AObjectBase * | GENERIC_OBSERVER = nullptr |
| Indicates that a connection should not be explicitly linked to receiver's lifetime.
|
|
static ASpinlockMutex | SIGNAL_SLOT_GLOBAL_SYNC |
|
| AAbstractThread (const id &id) noexcept |
|
void | updateThreadName () noexcept |
|
virtual void | processMessagesImpl () |
|
void | setThread (_< AAbstractThread > thread) |
| Set thread of the object.
|
|
void | clearAllIngoingConnections () noexcept |
|
virtual void | handleSlotException (std::exception_ptr exception) |
| Called then an exception has thrown during slot processing of the signal emitted by this object.
|
|
id | mId |
| Thread ID.
|
|
AString | mThreadName |
|
AMessageQueue | mMessageQueue |
|