MT Core (C++)
Core library for replacing C++ standard in project usage
|
Cmtcore::Allocator | Represents a memory allocator Exact behavior depends on the underlying VTable used Should use the a_* methods for working with an allocator |
Cmtcore::thread::Arc< T > | Automic Reference Count |
Cmtcore::ArrayList< T > | Array list is a growable, dynamic array with elements inside Elements are stored in an array, and are copied when resizing needs to happen Accessing elements is \(O(1)\) Adding elements is worst case \(O(N)\) Removing elements while preserving order is \(O(N)\) Removing elements while not preserving order is \(O(1)\) |
Cmtcore::thread::BeforeOption< Clock, Duration, Callback > | Option to add a timeout on select to ensure a path runs before a timeout If the timeout is hit, a timeout error will be returned from the select Will call a callback on timeout |
Cmtcore::thread::BeforeOptionNoCallback< Clock, Duration > | Option to add a timeout on select to ensure a path runs before a timeout If the timeout is hit, a timeout error will be returned from the select |
Cmtcore::Bitset | Represents a bitset with dynamically allocated memory (using an mtcore allocator) Allows operating on an arbitrary number of bits |
Cmtcore::Bitset2D | Represents a bitset with dynamically allocated memory (using an mtcore allocator) Allows operating on an arbitrary number of bits |
Cmtcore::Bitset2D::BitsetAccess | Helper for accessing a bitset position (including for setting bits) |
Cmtcore::Bitset::BitsetAccess | Helper for accessing a bitset position (including for setting bits) |
Cmtcore::BitsetFixed< NumBits >::BitsetAccess | Helper for accessing a bitset position (including for setting bits) |
Cmtcore::BitsetFixed< NumBits > | Represents a bitset with dynamically allocated memory (using an mtcore allocator) Allows operating on an arbitrary number of bits |
Cmtcore::thread::broadcaster< T > | A broadcaster is able to send messages to multiple channels, with each channel having its own lock Sending messages requires locking the entire broadcaster |
Cmtcore::thread::BroadcastSubscription< T > | A subscription to a broadcaster |
Cmtcore::thread::Channel< T, Size > | Channel is a message-passing primitive between two threads A channel has blocking and non-blocking (or auto timed out for a size of 0) methods Timeout methods are also present A channel will have a buffer size for how many messages can be queued up If there is a buffer size of 0, then a reader and writer must both be accessing the channel simultaneously for messages to be transmitted |
Cmttest::CmpRes< L, R > | Result of comparing left and right (retains value references for debug printing) |
Cmtcore::csv::ColEnd | Special output-only type for indicating the end of a colum |
Cmtcore::EndianSlice< T, Endian >::ConstEndianWrapper | Endian Wrapper for grabbing the endian value By default, will handle converting to and from the native architecture Can also manually specify the endian architecture to use |
Cmtcore::GenList< T >::ConstIter | An iterator that iterates over values (copies) of each stored element |
Cmtcore::SegmentedList< T >::ConstIter | Const reference for mutating elements Using custom iterator for speed |
Cmtcore::ConstPtrIter< T > | Iterator that gives const pointers to elements of a collection |
Cmtcore::SegmentedList< T >::ConstPtrIter | Pointer iterator for mutating elements Using custom iterator for speed |
Cmtcore::thread::DebugAllocator | Allocator state object for shared debug allocation Must live longer (and at the same memory address) than all allocators returned by allocator() |
Cmtcore::io::floats::dragonbox::DragonboxFormatOptions | |
Cmtcore::thread::DynamicArenaAllocator | Allocator state object for shared dynamic arena allocation Must live longer (and at the same memory address) than all allocators returned by allocator() |
Cmtcore::EndianSlice< T, Endian > | A Slice with Endian-aware data which is just a pointer + length + endian direction Accessing elements through the array operator will do bounds checks and will convert to native endian by default (this can be overridden with access methods) Accessing out of bounds will terminate the program instead of throw Can also get sub slices |
Cmtcore::EndianSlice< T, Endian >::EndianWrapper | Endian Wrapper for grabbing the endian value By default, will handle converting to and from the native architecture Can also manually specify the endian architecture to use |
Cmtcore::Error< Underlying > | A struct representing an error Auto convertible to a Result of any type |
Cmtcore::csv::Reader< RI >::Field | |
Cmtcore::csv::SliceParser::Field | |
Cmtcore::csv::SliceParser::FieldParser | |
Cmtcore::csv::SliceParser::FieldReader | |
Cmtcore::thread::FixedArenaAllocator | Allocator state object for shared fixed arena allocation Must live longer (and at the same memory address) than all allocators returned by allocator() |
Cmtcore::thread::FixedBufferAllocator | Allocator state object for shared fixed buffer allocation Must live longer (and at the same memory address) than all allocators returned by allocator() |
Cmtcore::FixedQueue< T, Capacity > | Statically allocated FIFO queue with fixed maximum capacity |
Cmtcore::FixedRingBuffer< T, Capacity > | Represents a ring buffer with static memory allocation Can be used as a FIFO or LIFO queue Allows memory reuse by wrapping pointers Cannot be dynamically resized |
Cmtcore::io::floats::dragonbox::FloatDec64 | |
Cmtcore::io::FormatOptions | Options for specifying formatting |
Cmtcore::io::Formatter< T > | Struct to override to specify how a type should be formatted |
Cmtcore::io::Formatter< char * > | Format specifier for null-terminated char* (mutable C-strings) Has same format options as template<Iterable T> struct Formatter<T> |
Cmtcore::io::Formatter< char > | Formatter for characters Format specifier options for output: |
Cmtcore::io::Formatter< const char * > | Format specifier for null-terminated const char* (C-strings) Has same format options as template<Iterable T> struct Formatter<T> |
Cmtcore::io::Formatter< IPv4 > | Formats IPv4 addresses No formatting options are available |
Cmtcore::io::Formatter< IPv6 > | Formats IPv6 addresses Formatting options: |
Cmtcore::io::Formatter< Optional< T > > | Formatter for an optional Uses the formatter for the underlying value if available No formatting options |
Cmtcore::io::Formatter< Result< V, E > > | Formatter for a result Will check if the value has been moved out of the result Uses the formatter for the underlying value and/or error if available No formatting options |
Cmtcore::io::Formatter< SubnetMaskV4 > | Formats subnet v4 masks |
Cmtcore::io::Formatter< SubnetMaskV6 > | Formats subnet v4 masks |
Cmtcore::io::Formatter< SubnetV4 > | Formats a masked version 4 IP address with a subnet |
Cmtcore::io::Formatter< SubnetV6 > | Formats a masked version 6 IP address with a subnet |
Cmtcore::io::Formatter< T > | Formats integer numbers (other than char) such as int, unsigned, long long, etc Format specifier options for output: |
Cmtcore::thread::Future< T, E > | Represents a value that will be made available in the future Can wait on the value for when it is ready |
Cmtcore::thread::FutureState< T, E > | Represents the state-setter part of a future |
Cmtcore::thread::FutureState< T, void > | Represents the state-setter part of a future |
Cmtcore::GenList< T > | Represents a generational list where removed items are marked and recycled |
Cmtcore::Handle | Handle to an item in the list |
Cmtcore::GenList< T >::HandleIter | An iterator that iterates over all handles of each stored element |
Cmtcore::thread::Inbox< T > | Inter-thread communication primitive to send messages between threads Has a growable Queue |
Cmtcore::IPv4 | Represents an IP version 4 address (32 bits) Can be converted to an IPv6 |
Cmtcore::IPv6 | Represents an IP version 6 address (128 bits) If it represents an IPv4 address, can be converted to an IPv4 address |
Cmttest::IsStreamable< T > | Checks if a class can be streamd to ostream |
Cmtcore::csv::SliceParser::Iter | |
Cmtcore::csv::SliceParser::Row::Iter | |
Cmtcore::thread::FutureState< T, E >::make_res | |
Cmtcore::thread::FutureState< T, void >::make_res | |
Cmtcore::MallocAllocator | State variable for malloc-based allocator |
Cmtcore::Nullopt | Placeholder value for any empty Optional (similar to std::nullopt) |
Cmtcore::Optional< T > | Represents a value that may or may not exist (an "Optional" value) Similar concept to std::optional, but different implementation and additional nicety methods which makes this a better alternative for simple loop-based iteration (via copy_if_present and move_if_present) |
Cmtcore::Optional< T * > | Represents a pointer that may or may not be null |
Cmtcore::csv::Options | CSV options for defining the CSV format |
Cmtcore::io::Padded< T > | Formats data with padding into a writer's output stream Uses Formatter<T> under the hood Usually will use extract_padding_options to get padding options |
Cmtcore::io::PaddingOptions | Represents parsed padding options for formatting output |
Cmtcore::Prng | Represents a Pseudo Random Number Generator |
Cmtcore::PrngState | Internal PRNG state |
Cmtcore::PrngVTable | V-Table for PRNG Designed for having a simple PRNG implementation |
Cmtcore::GenList< T >::PtrIter | An iterator that iterates over pointers to each stored element |
Cmtcore::PtrIter< T > | Iterator that gives pointers to elements of a collection |
Cmtcore::SegmentedList< T >::PtrIter | Pointer iterator for mutating elements Using custom iterator for speed |
Cmtcore::thread::Publisher< T > | Represents a pub/sub publisher which can publish messages of type T Supports blocking and non-blocking publishing |
Cmtcore::Queue< T > | FIFO Queue (First In, First Out) Dynamically allocated, can be resized |
Cmtcore::Rc< T > | Thread-local reference counted pointer Not thread safe, don't share Reference counting for cleaning up memory Supports weak references as well |
Cmtcore::csv::Reader< RI > | |
Cmtcore::io::Reader< Impl > | A reader that reads data from some sort of stream or buffer Note: the data elements read should be trivially constructible, trivially destructible, and trivially copyable |
Cmtcore::csv::ReadError | |
Cmtcore::thread::ReceiveOption< R, Callback > | Select option to receive a message and calls a callback on receive |
Cmtcore::Result< T, ErrType > | Represents a Result that may have an error (error code) or a success value A type of "void" means there is no Result value, but there may be a failure |
Cmtcore::Result< void, ErrType > | Represents a Result that may have an error (error code) or a success (without a value) |
Cmtcore::RingBuffer< T > | Represents a ring buffer with dynamically allocated memory Can be used as a FIFO or LIFO queue Allows memory reuse rather than continuous memory allocations as it is used May be dynamically resized |
Cmtcore::csv::SliceParser::Row | |
Cmtcore::csv::RowEnd | Special output-only type for indicating the end of a row |
Cmtcore::csv::SliceParser::RowField | |
Cmtcore::csv::SliceParser::RowReader | |
Cmtcore::RuneIterator< T > | Iterates over runes of utf8 sequences (char, char_t) |
Cmtcore::RuneIterator< char16_t > | Iterates over runes of utf16 sequences Also handles flipping endianness to native endian |
Cmtcore::RuneIterator< char32_t > | Iterates over runes of utf32 sequences Also handles flipping endianness to native endian |
Cmtcore::slices::SearchIndexes< T, N > | |
Cmtcore::SegmentedList< T > | Segmented list where each segment contains multiple nodes Allows growing the list without having to invalidate all previous memory addresses |
Cmtcore::thread::Select< Options > | Underlying type for a select statement Use the "select" method directly for instantiation |
Cmtcore::thread::Select< CurOption, Options... > | A stage of a select case Use the "select" method directly for instantiation |
Cmtcore::thread::Select<> | Base case for a select statement Use the "select" method directly for instantiation |
Cmtcore::thread::SendOption< S, Callback > | Select option to send a message |
Cmtcore::thread::SendOptionNoCallback< S > | Select option to send a message without calling a callback on send |
Cmtcore::Bitset2D::SetBitIter | Simple bit set iterator that uses next() iteration to return the indices of all set bits |
Cmtcore::Bitset::SetBitIter | Simple bit set iterator that uses next() iteration to return the indices of all set bits |
Cmtcore::BitsetFixed< NumBits >::SetBitIter | Simple bit set iterator that uses next() iteration to return the indices of all set bits |
Cmtcore::Slice< T > | A Slice which is just a pointer + length Accessing elements through the array operator will do bounds checks Accessing out of bounds will terminate the program instead of throw Can also get sub slices |
Cmtcore::csv::SliceParser | |
Cmtcore::slices::SplitIter< T, N > | |
Cmtcore::slices::SplitIter< T, Slice< T > > | |
Cmtcore::SubnetMaskV4 | Represents the bitwise mask for a version 4 subnet |
Cmtcore::SubnetMaskV6 | Gets a subnet mask for an IP version 6 subnet |
Cmtcore::SubnetV4 | A masked IP version 4 address |
Cmtcore::SubnetV6 | A masked IP version 6 address |
Cmtcore::thread::Subscription< T > | Represents a pub/sub subscription which can receive messages of type T Under the hood, each publisher maintains a message broker which stores all messages Subscribers will hold an Arc to the broker and will retrieve messages from the broker Due to the broker being shared, it does require more locks for both reads and writes This means it has a pretty low throughput when there is lots of contention The primary advantage is it has a much more convenient API for more non-blocking operations or timed blocks The reason this happens is that publishers are given greater insight into each subscription, and can better avoid partial writes |
Cmtcore::Success< T > | Represents a success result (auto castable to Result) |
Cmtcore::Success< void > | Represents a success value |
Cmtcore::io::SyncFileSystem | Synchronous File System interface for handling I/O calls This is encapsulated as a struct of file pointers so we can do deterministic testing This allows us to also dynamically swap things out for different file systems, or even do remote "file systems" where we're reading and writing to an object store (e.g |
Cmtcore::io::SyncFileSystemVTable | VTable for synchronous file system |
Cmttest::TestContext::test_err | |
Cmttest::TestContext::test_fail | |
Cmttest::TestCase | Test case metadata |
Cmttest::TestContext | Context for unit tests |
Cmttest::TestSuites | Test suite metadata and runner |
Cmtcore::ThreadLocalDebugAllocator | State variable for thread local debug allocator Must live longer (and at the same memory address) than all allocators returned by allocator() |
Cmtcore::ThreadLocalDynamicArenaAllocator | State variable for thread local dynamic arena allocator Must live longer (and at the same memory address) than all allocators returned by allocator() |
Cmtcore::ThreadLocalFixedArenaAllocator | State variable for thread local fixed arena allocator Must live longer (and at the same memory address) than all allocators returned by allocator() |
Cmtcore::ThreadLocalFixedBufferAllocator | State variable for thread local fixed buffer allocator Must live longer (and at the same memory address) than all allocators returned by allocator() |
►Cstd::true_type | |
►CTs... | |
Cmtcore::ascii::UnescapeError | Error when unescaping characters fails |
Cmtcore::ValIter< T > | Iterator that gives copies of elements of a collection |
Cmtcore::Allocator::VTable | V-Table for implementing your own allocator Each allocator has state, some of which is standardized (e.g |
Cmtcore::thread::WeakArc< T > | Weak Automic Reference Count |
Cmtcore::WeakRc< T > | Thread-local weak reference counted pointer Not thread safe, don't share Does not hold lifetime |
Cmtcore::io::Writer< Impl > | A writer that writes data to some sort of stream or buffer Note: the data elements written should be trivially constructible, trivially destructible, and trivially copyable |