MT Core (C++)
Core library for replacing C++ standard in project usage
Loading...
Searching...
No Matches
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 12]
 Cmtcore::AllocatorRepresents 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::BitsetRepresents a bitset with dynamically allocated memory (using an mtcore allocator) Allows operating on an arbitrary number of bits
 Cmtcore::Bitset2DRepresents a bitset with dynamically allocated memory (using an mtcore allocator) Allows operating on an arbitrary number of bits
 Cmtcore::Bitset2D::BitsetAccessHelper for accessing a bitset position (including for setting bits)
 Cmtcore::Bitset::BitsetAccessHelper for accessing a bitset position (including for setting bits)
 Cmtcore::BitsetFixed< NumBits >::BitsetAccessHelper 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::ColEndSpecial output-only type for indicating the end of a colum
 Cmtcore::EndianSlice< T, Endian >::ConstEndianWrapperEndian 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 >::ConstIterAn iterator that iterates over values (copies) of each stored element
 Cmtcore::SegmentedList< T >::ConstIterConst 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 >::ConstPtrIterPointer iterator for mutating elements Using custom iterator for speed
 Cmtcore::thread::DebugAllocatorAllocator 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::DynamicArenaAllocatorAllocator 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 >::EndianWrapperEndian 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::FixedArenaAllocatorAllocator state object for shared fixed arena allocation Must live longer (and at the same memory address) than all allocators returned by allocator()
 Cmtcore::thread::FixedBufferAllocatorAllocator 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::FormatOptionsOptions 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::HandleHandle to an item in the list
 Cmtcore::GenList< T >::HandleIterAn 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::IPv4Represents an IP version 4 address (32 bits) Can be converted to an IPv6
 Cmtcore::IPv6Represents 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::MallocAllocatorState variable for malloc-based allocator
 Cmtcore::NulloptPlaceholder 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::OptionsCSV 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::PaddingOptionsRepresents parsed padding options for formatting output
 Cmtcore::PrngRepresents a Pseudo Random Number Generator
 Cmtcore::PrngStateInternal PRNG state
 Cmtcore::PrngVTableV-Table for PRNG Designed for having a simple PRNG implementation
 Cmtcore::GenList< T >::PtrIterAn iterator that iterates over pointers to each stored element
 Cmtcore::PtrIter< T >Iterator that gives pointers to elements of a collection
 Cmtcore::SegmentedList< T >::PtrIterPointer 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::RowEndSpecial 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::SetBitIterSimple bit set iterator that uses next() iteration to return the indices of all set bits
 Cmtcore::Bitset::SetBitIterSimple bit set iterator that uses next() iteration to return the indices of all set bits
 Cmtcore::BitsetFixed< NumBits >::SetBitIterSimple 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::SubnetMaskV4Represents the bitwise mask for a version 4 subnet
 Cmtcore::SubnetMaskV6Gets a subnet mask for an IP version 6 subnet
 Cmtcore::SubnetV4A masked IP version 4 address
 Cmtcore::SubnetV6A 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::SyncFileSystemSynchronous 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::SyncFileSystemVTableVTable for synchronous file system
 Cmttest::TestContext::test_err
 Cmttest::TestContext::test_fail
 Cmttest::TestCaseTest case metadata
 Cmttest::TestContextContext for unit tests
 Cmttest::TestSuitesTest suite metadata and runner
 Cmtcore::ThreadLocalDebugAllocatorState variable for thread local debug allocator Must live longer (and at the same memory address) than all allocators returned by allocator()
 Cmtcore::ThreadLocalDynamicArenaAllocatorState variable for thread local dynamic arena allocator Must live longer (and at the same memory address) than all allocators returned by allocator()
 Cmtcore::ThreadLocalFixedArenaAllocatorState variable for thread local fixed arena allocator Must live longer (and at the same memory address) than all allocators returned by allocator()
 Cmtcore::ThreadLocalFixedBufferAllocatorState 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::UnescapeErrorError when unescaping characters fails
 Cmtcore::ValIter< T >Iterator that gives copies of elements of a collection
 Cmtcore::Allocator::VTableV-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