| AUI Framework
                         master
 Cross-platform base for C++ UI apps | 
Multi curl instance. More...
#include <AUI/Curl/ACurlMulti.h>
| Public Member Functions# | |
| ACurlMulti (ACurlMulti &&other) noexcept | |
| ACurlMulti & | operator<< (_< ACurl > curl) | 
| ACurlMulti & | operator>> (const _< ACurl > &curl) | 
| void | run () | 
| void | cancel () | 
| void | clear () | 
| const AMap< void *, _< ACurl > > & | curls () const | 
|  Public Member Functions inherited from AObject | |
| _< 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) | 
|  Public Member Functions inherited from AObjectBase | |
| AObjectBase (AObjectBase &&rhs) noexcept | |
| AObjectBase (const AObjectBase &rhs) noexcept | |
| AObjectBase & | operator= (const AObjectBase &rhs) noexcept | 
| AObjectBase & | operator= (AObjectBase &&rhs) noexcept | 
|  Public Member Functions inherited from aui::noncopyable | |
| noncopyable (const noncopyable &)=delete | |
| noncopyable & | operator= (const noncopyable &)=delete | 
| Static Public Member Functions# | |
| static ACurlMulti & | global () noexcept | 
| Global instance of ACurlMulti, running in a separate thread. | |
|  Static Public Member Functions inherited from AObject | |
| 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) | 
| Additional Inherited Members# | |
|  Static Public Attributes inherited from AObject | |
| static constexpr AObjectBase * | GENERIC_OBSERVER = nullptr | 
| Indicates that a connection should not be explicitly linked to receiver's lifetime. | |
|  Static Public Attributes inherited from AObjectBase | |
| static ASpinlockMutex | SIGNAL_SLOT_GLOBAL_SYNC | 
|  Protected Member Functions inherited from AObject | |
| void | setThread (_< AAbstractThread > thread) | 
| Set thread of the object. | |
|  Protected Member Functions inherited from AObjectBase | |
| 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. | |
Provides support to multiple simultaneous curl requests in a one thread.
Analogous to Qt's QNetworkAccessManager.
All calls are processed by enqueueing them on ACurlMulti's thread, so the underlying curl handle is used by the single thread. This means that the following code will fail:
 auto m = _new<ACurlMulti>(); m << _new<ACurl>(...); AUI_ASSERT(!m->empty()); // assertion failure here 
Use AThread::processMessages() function to avoid this limitation:
 auto m = _new<ACurlMulti>(); m << _new<ACurl>(...); AThread::processMessages() // + AUI_ASSERT(!m->empty()); // ok!