A wrapper around a Pool that allows for asynchronous allocation.
This class is not thread safe. It should only be used from the dispatcher thread, or wrapped to provided synchronized access.
|
|
constexpr | AsyncPool (Pool &pool) |
| |
| async2::Poll< void * > | PendAllocate (async2::Context &context) |
| |
|
constexpr const Layout & | layout () const |
| |
| void * | Allocate () |
| |
| template<typename T , int &... kExplicitGuard, typename... Args> |
| std::enable_if_t<!std::is_array_v< T >, T * > | New (Args &&... args) |
| |
|
template<typename T , int &... kExplicitGuard, typename ElementType = std::remove_extent_t<T>> |
| std::enable_if_t< pw::is_bounded_array_v< T >, ElementType * > | New () |
| |
|
template<typename T , int &... kExplicitGuard, typename ElementType = std::remove_extent_t<T>> |
| std::enable_if_t< pw::is_unbounded_array_v< T >, ElementType * > | New () |
| |
| template<typename T , int &... kExplicitGuard, typename... Args> |
| std::enable_if_t<!std::is_array_v< T >, UniquePtr< T > > | MakeUnique (Args &&... args) |
| |
|
template<typename T > |
| std::enable_if_t< pw::is_bounded_array_v< T >, UniquePtr< T > > | MakeUnique () |
| |
|
template<typename T > |
| std::enable_if_t< pw::is_unbounded_array_v< T >, UniquePtr< T > > | MakeUnique () |
| |
|
constexpr const Capabilities & | capabilities () const |
| |
|
constexpr bool | HasCapability (Capability capability) const |
| | Returns whether a given capability is enabled for this object.
|
| |
| void | Deallocate (void *ptr) |
| |
| template<typename ElementType > |
| void | DeleteArray (ElementType *ptr, size_t count) |
| |
| StatusWithSize | GetCapacity () const |
| |
| bool | IsEqual (const Deallocator &other) const |
| |
| template<typename T , int &... kExplicitGuard, std::enable_if_t<!std::is_array_v< T >, int > = 0> |
| void | Delete (T *ptr) |
| |
|
template<typename T , int &... kExplicitGuard, typename ElementType = std::remove_extent_t<T>, std::enable_if_t< is_bounded_array_v< T >, int > = 0> |
| void | Delete (ElementType *ptr) |
| |
|
template<typename T , int &... kExplicitGuard, typename ElementType = std::remove_extent_t<T>, std::enable_if_t< is_unbounded_array_v< T >, int > = 0> |
| void | Delete (ElementType *ptr, size_t count) |
| |