Flow
Documentation for the Flow C++ Library
|
Cflow::BinaryHeap< T, Compare, Allocator > | A binary min-heap container. Supports custom comparator and allocator |
Cflow::ConcurrentFlexQueue< T > | A thread-safe concurrent queue with flexible push and pop operations |
Cflow::ConcurrentQueue< T, Container > | |
Cflow::CountedValueViewIterator< T > | Iterator that returns a constant value a fixed number of times. Useful for creating a virtual range of repeated values without overhead |
Cflow::DebugClass | Debug class to track copy/move operations. Some operations may be optimized away in release builds |
Cflow::VectorGrowthStrategy::DoubleExpand | |
Cflow::VectorGrowthStrategy::FibonacciExpand | |
Cflow::VectorGrowthStrategy::GoldenExpand | |
Cflow::PoolMemoryResource::Header | |
Cflow::StackMemoryResource::Header | |
Cflow::MemoryResource | A memory resource holder interface for the PolymorphicAllocator. Responsible for allocate and deallocate raw memory |
Cflow::ArenaMemoryResource | A linear arena memory resource that allocates memory sequentially from a fixed buffer. Throws std::bad_alloc if there is insufficient space for the requested allocation |
Cflow::DefaultMemoryResource | A default memory resource that wraps global ::operator new and ::operator delete |
Cflow::PoolMemoryResource | A pool memory resource that manages fixed-size memory blocks from a pre-allocated buffer. The allocation size must be less or equal to the block size. The allocation alignment must be less or equal to the block alignment. Throws std::bad_alloc if the constraint is not met or run out of memory |
Cflow::StackMemoryResource | A stack-based memory resource that allocates memory in a LIFO order from a fixed buffer. Deallocation must happen in reverse order of allocation. Throws std::bad_alloc if there is insufficient space for an allocation |
Cflow::MultiQueueThreadPool< ThreadSafeQueue, LocalQueue > | A work-stealing multiqueue threadpool. Each worker thread has a thread_local task queue to reduce thread contention |
Cflow::ConcurrentFlexQueue< T >::Node | |
Cflow::PolymorphicAllocator< T > | Polymorphic allocator wrapping a non-owning memory resource. Allocation strategy depends on the memory resource implementation |
Cflow::SimpleThreadPool< ThreadSafeQueue > | A simple thread pool with fixed number of worker threads. All the threads poll tasks from a single queue. If all the threads are waiting, then the user must manually call runPendingTask() to resolve deadlock |
Cflow::ThreadTask | A task that can be execute by a thread. Internally, it uses type erasure to store a std::packaged_task. The memory is managed by std::unique_ptr |
Cflow::ThreadTask::ThreadTaskInterface | |
Cflow::ThreadTask::ThreadTaskImp< Callable > | |
Cflow::Timer< ClockType > | A simple timer to record timelapses. Uses steady_clock by default |
Cflow::Tuple< Ts > | |
Cflow::Tuple< Ts... > | |
Cflow::Tuple< T, Ts... > | |
Cflow::Vector< T, Allocator, Strategy > | |
Cflow::VectorGrowthStrategy | |
Cflow::WorkStealingQueue< T > |