►NSC | |
►NAlgorithms | Simple algorithms (see Algorithms) |
CsmallerThan | Functor that evaluates to a < b |
►NBuild | Minimal build system where builds are described in C++ (see Build) |
CAction | |
CArchitecture | Build Architecture (Processor / Instruction set) |
►CCompile | Compilation switches (include paths, preprocessor defines, etc.) |
CNameDescription | Two StringViews representing name and description |
CCompileFlags | Map of SC::Build::Compile flags (include paths, preprocessor defines etc.) |
►CConfiguration | Groups SC::Build::CompileFlags and SC::Build::LinkFlags for a given SC::Build::Architecture |
CVisualStudio | Visual Studio platform toolset |
CDefinition | Top level build description holding all Workspace objects |
CDefinitionCompiler | Caches file paths by pre-resolving directory filter search masks |
CDirectories | |
CGenerator | Build system generator (Xcode / Visual Studio) |
CLink | Linking switches (library paths, LTO etc.) |
CLinkFlags | Map of SC::Build::Link flags (library paths, LTO switch etc.) |
COptimization | Optimization level (Debug / Release) |
CParameters | Describes a specific set of platforms, architectures and build generators to generate projects for |
CPlatform | Build Platform (Operating System) |
►CProject | Groups multiple Configuration and source files with their compile and link flags |
CFile | Project list of files |
CTargetType | Type of target artifact to build (executable, library) |
CWorkspace | Groups multiple Project together with shared compile and link flags |
►NReflection | Describe C++ types at compile time for serialization (see Reflection) |
CArrayWithSize | A constexpr array |
CExtendedStructTypeInfo | Visit all struct members to gather sum of their sizes (helper for IsPacked) |
CExtendedTypeInfo | Class template used to check if a given type IsPacked property is true at compile time |
►CFlatSchemaBuilder | A schema builder that doesn't build any virtual table |
CEmptyVTables | |
CIsPrimitive | Checks if a given type is primitive |
CReflect | Basic class template that must be partially specialized for each type |
CReflectPrimitive | Base struct for all primitive types |
CReflectStruct | |
CSchemaBuilder | Common code for derived class to create a SchemaBuilder suitable for SC::Reflection::SchemaCompiler |
CSchemaCompiler | Creates a schema linking a series of SchemaType |
CSchemaType | Holds together a TypeInfo, a StringView and a type-erased builder function pointer |
CSv | A minimal ASCII StringView with shortened name to be used in TypeToString |
►CTypeInfo | [reflectionSnippet3] |
CArrayInfo | Holds extended type info for array-like types |
CEmptyInfo | Holds no extended type info |
CMemberInfo | Holds extended type info for members of struct |
CStructInfo | Holds extended type info for structs |
CTypeToString | Strips down class name produced by ClNm to reduce binary size (from C++17 going forward) |
CVectorArrayVTable | |
CWritableRange | A writable span of objects |
►NTime | Absolute, relative time and high frequency counter |
►CAbsolute | Absolute time represented with milliseconds since epoch |
CParseResult | Holds information on a parsed absolute time from Absolute::parseLocal |
CHighResolutionCounter | An high resolution time counter |
CMilliseconds | Type-safe wrapper of uint64 used to represent milliseconds |
CRelative | Interval of time represented with 64 bit double precision float |
CSeconds | Type-safe wrapper of uint64 used to represent seconds |
►NTypeTraits | Template meta-programming helpers |
CAddPointer | AddPointer adds a pointer qualification to a type T if it is not already a pointer |
CAddReference | AddReference adds a reference qualifier to a type T if it is not already a reference |
CConditional | Conditional defines a type to be T if a boolean value is true , F otherwise |
CEnableIf | EnableIf conditionally defines a type if a boolean template parameter is true |
CIsConst | IsConst evaluates to true if the provided type T is const , false otherwise |
CIsLValueReference | Determines if a type is an lvalue reference |
CIsReference | IsReference evaluates to true if the type T is a reference, false otherwise |
CIsRValueReference | Determines if a type is an rvalue reference |
CIsSame | IsSame evaluates to true if the provided types T and U are the same, false otherwise |
CIsTriviallyCopyable | IsTriviallyCopyable evaluates to true if the type T can be trivially copied, false otherwise |
CRemoveConst | RemoveConst removes the const qualification from a type T |
CRemovePointer | RemovePointer removes the pointer qualification from a type T |
CRemoveReference | Removes reference from a type T |
CReturnType | ReturnType extracts the return type from different forms of function types |
CSameConstnessAs | SameConstnessAs modifies type T to have the const-qualification of U |
CTypeList | Represents a variadic template type list |
CTypeListGet | Retrieves the type at the specified index in the TypeList |
CAlignedStorage | A buffer of bytes with given alignment |
►CArenaMap | A sparse vector keeping objects at a stable memory location |
CArenaMapIterator | |
CArenaMapKey | A sparse vector keeping objects at a stable memory location |
CArray | A contiguous sequence of elements kept inside its inline storage |
CAssert | Functions and macros to assert, exit() or abort() and capture backtraces |
CAsyncBuffersPool | Holds a Span of AsyncBufferView (allocated by user) holding available memory for the streams |
►CAsyncBufferView | A Span of bytes memory to be read or written by async streams |
CTag | |
CAsyncCompletionData | Empty base struct for all AsyncRequest-derived CompletionData (internal) structs |
CAsyncDuplexStream | A stream that can both produce and consume buffers |
►CAsyncEventLoop | Asynchronous I/O (files, sockets, timers, processes, fs events, threads wake-up) (see Async) AsyncEventLoop pushes all AsyncRequest derived classes to I/O queues in the OS |
COptions | Options given to AsyncEventLoop::create |
CAsyncEventLoopMonitor | Monitors Async I/O events from a background thread using a blocking kernel function (no CPU usage on idle) |
CAsyncFileClose | Starts a file close operation, closing the OS file descriptor |
CAsyncFilePoll | Starts an handle polling operation |
►CAsyncFileRead | Starts a file read operation, reading bytes from a file (or pipe) |
CCompletionData | Completion data for AsyncFileRead |
CResult | Callback result for AsyncFileRead |
►CAsyncFileWrite | Starts a file write operation, writing bytes to a file (or pipe) |
CCompletionData | Completion data for AsyncFileWrite |
CResult | Callback result for AsyncFileWrite |
CAsyncKernelEvents | Allows user to supply a block of memory that will store kernel I/O events retrieved from AsyncEventLoop::runOnce |
CAsyncLoopTimeout | Starts a Timeout that is invoked only once after expiration (relative) time has passed |
CAsyncLoopWakeUp | Starts a wake-up operation, allowing threads to execute callbacks on loop thread |
CAsyncLoopWork | Executes work in a thread pool and then invokes a callback on the event loop thread |
CAsyncPipeline | Pipes reads on SC::AsyncReadableStream to SC::AsyncWritableStream |
►CAsyncProcessExit | Starts monitoring a process, notifying about its termination |
CCompletionData | Completion data for AsyncProcessExit |
CResult | Callback result for AsyncProcessExit |
►CAsyncReadableStream | Async source abstraction emitting data events in caller provided byte buffers |
CRequest | |
CAsyncRequest | Base class for all async requests, holding state and type |
CAsyncRequestReadableStream | |
CAsyncRequestWritableStream | |
CAsyncResult | Base class for all async results (argument of completion callbacks) |
CAsyncResultOf | Helper holding CompletionData for a specific AsyncRequest-derived class |
►CAsyncSocketAccept | Starts a socket accept operation, obtaining a new socket from a listening socket |
CCompletionData | Completion data for AsyncSocketAccept |
CResult | Callback result for AsyncSocketAccept |
CAsyncSocketClose | Starts a socket close operation |
CAsyncSocketConnect | Starts a socket connect operation, connecting to a remote endpoint |
►CAsyncSocketReceive | Starts a socket receive operation, receiving bytes from a remote endpoint |
CCompletionData | Completion data for AsyncSocketReceive |
CResult | Callback result for AsyncSocketReceive |
►CAsyncSocketSend | Starts a socket send operation, sending bytes to a remote endpoint |
CCompletionData | Completion data for AsyncSocketSend |
CAsyncTask | Holds (reference to) a SC::ThreadPool and SC::ThreadPool::Task to execute an SC::AsyncRequest in a background thread This object lifetime is the same as the SC::AsyncRequest it's associated with, like SC::AsyncFileRead or SC::AsyncFileWrite |
CAsyncTaskOf | Create an async Callback result for a given AsyncRequest-derived class |
CAsyncTransformStream | A duplex stream that produces new buffers transforming received buffers |
►CAsyncWritableStream | Async destination abstraction where bytes can be written to |
CRequest | |
CAsyncZLibTransformStream | |
CAtomic | Atomic variables (only for int and bool for now) |
CConditionVariable | A native OS condition variable |
CConsole | Writes to console using SC::StringFormat |
CDeferred | Executes a function at end of current scope (in the spirit of Zig defer keyword) |
CEventObject | An automatically reset event object to synchronize two threads |
►CFile | Wraps a SC::FileDescriptor to open it and use strings / containers |
COpenOptions | Additional flags to be set when opening files |
CFileDescriptor | File Descriptor (use SC::File to open and use it with strings and containers) |
►CFileSystem | Execute fs operations { exists, copy, delete } for { files and directories } |
CCopyFlags | Specify copy options like overwriting existing files |
CCopyOperation | Specify source, destination and flags for a copy operation |
CFileStat | A structure to describe modified time |
CFileSystemDirectories | Reports location of system directories (executable / application root) |
►CFileSystemIterator | Iterates files and directories inside a given path |
CEntry | Contains information on a file or directory |
COptions | Options when iterating (recursive and other options) |
►CFileSystemWatcher | Notifies about events (add, remove, rename, modified) on files and directories |
CEventLoopRunner | Delivers notifications using Async (SC::AsyncEventLoop) |
CFolderWatcher | Represents a single folder being watched |
CNotification | Notification holding type and path |
CFunction | Wraps function pointers, member functions and lambdas without ever allocating |
►CHashing | Compute MD5, SHA1 or SHA256 hash for stream of data |
CResult | |
CHeapBuffer | A move-only owned buffer of bytes |
CHttpClient | Http async client |
CHttpParser | Incremental HTTP request or response parser |
CHttpRequest | Http request received from a client |
CHttpResponse | Http response that will be sent to a client |
CHttpServer | Async Http server |
CHttpURLParser | Parse an URL splitting it into its base components |
CHttpWebServer | Http web server helps statically serves files from a directory |
CIntrusiveDoubleLinkedList | An Intrusive Double Linked List |
CMaxValue | An object that can be converted to any primitive type providing its max value |
CMemory | Centralized functions to allocate, reallocate and deallocate memory |
CMutex | A native OS mutex to synchronize access to shared resources |
COpaqueObject | Hides implementation details from public headers (static PIMPL) |
COperatingSystem | Holds information about operating system |
►CPath | Represents a posix or windows file system path |
CParsedView | Holds the various parsed components of a path |
CPosix | |
CWindows | |
CPipeDescriptor | Read / Write pipe (Process stdin/stdout and IPC communication) |
CPluginCastInterface | |
CPluginCastInterface< PluginClass > | |
CPluginCastInterface< PluginClass, InterfaceClass, InterfaceClasses... > | |
CPluginCompiler | Compiles a plugin to a dynamic library |
CPluginCompilerEnvironment | Reads and holds CFLAGS and LDFLAGS environment variables, mainly to pass down sysroot location |
CPluginDefinition | Plugin description, category, dependencies, files and directory location |
CPluginDynamicLibrary | A plugin dynamic library loaded from a SC::PluginRegistry |
CPluginFile | Holds path to a given plugin source file |
CPluginIdentity | Represents the unique signature / identity of a Plugin |
CPluginRegistry | Holds a registry of plugins, loading and compiling them on the fly |
CPluginScanner | Scans a directory for PluginDefinition |
CPluginSysroot | Holds include and library paths for a system toolchain, used to let plugins link to libc and libc++ |
►CProcess | Execute a child process with standard file descriptors redirection |
COptions | |
►CStdIn | |
CInherit | |
►CStdOut | |
CIgnore | |
CInherit | |
►CStdStream | |
CAlreadySetup | |
CProcessChain | Execute multiple child processes chaining input / output between them |
►CProcessDescriptor | Wraps an OS Process descriptor |
CExitStatus | |
CProcessEnvironment | Reads current process environment variables |
CProcessID | Native os handle to a process identifier |
CReadableFileStream | Uses an SC::AsyncFileRead to stream data from a file |
CReadableSocketStream | Uses an SC::AsyncFileWrite to stream data from a socket |
CResult | An ascii string used as boolean result. SC_TRY macro forwards errors to caller |
CSerializationBinary | Loads or writes binary data with its associated reflection schema from or into a C++ object |
CSerializationBinaryOptions | Conversion options for the binary versioned deserializer |
CSerializationBinaryTypeErased | Loads or writes binary data with its associated reflection schema from or into a C++ object |
►CSerializationJson | SC::SerializationJson reads or writes C++ structures to / from json using Reflection information |
COptions | Formatting options |
CSmallString | String with compile time configurable inline storage (small string optimization) |
CSmallVector | A Vector that can hold up to N elements inline and > N on heap |
CSocketClient | Use a SocketDescriptor as a client (example a TCP or UDP socket client) |
CSocketDescriptor | Low-level OS socket handle |
CSocketDNS | Synchronous DNS Resolution |
CSocketFlags | Flags for SocketDescriptor (Blocking / Inheritable, IPVx, SocketType) |
CSocketIPAddress | Native representation of an IP Address |
CSocketNetworking | Networking globals initialization (Winsock2 WSAStartup) |
CSocketServer | Use a SocketDescriptor as a Server (example TCP or UDP Socket Server) |
CSpan | View over a contiguous sequence of items (pointer + size in elements) |
CSpanString | An writable view over an ASCII string (to avoid including Strings library) |
CSpanStringView | An read-only view over an ASCII string (to avoid including Strings library) |
CString | A non-modifiable owning string with associated encoding |
CStringAlgorithms | Algorithms operating on strings (glob / wildcard) |
►CStringBuilder | Builds String out of a sequence of StringView or formatting through StringFormat |
CReplacePair | Holds a search / replace pair for StringBuilder::appendReplaceMultiple |
CStringConverter | Converts String to a different encoding (UTF8, UTF16) |
CStringFormat | Formats String with a simple DSL embedded in the format string |
CStringFormatOutput | Allows pushing results of StringFormat to a buffer or to the console |
CStringIterator | A position inside a fixed range [start, end) of UTF code points |
CStringIteratorASCII | A string iterator for ASCII strings |
CStringIteratorSkipTable | Builds a constexpr bool skip table of 256 entries used in some parsers |
CStringIteratorUTF16 | A string iterator for UTF16 strings |
CStringIteratorUTF8 | A string iterator for UTF8 strings |
CStringView | Non-owning view over a range of characters with UTF Encoding |
CStringViewTokenizer | Splits a StringView in tokens according to separators |
CStrongID | Strongly typed ID (cannot be assigned incorrectly to another ID) |
CSyncZLibTransformStream | |
CTaggedType | Associate a Type to an Enum, as required by TaggedUnion |
►CTaggedUnion | Type safe union with an enum type, where each type has an associated enum value |
CEnumToType | Extracts type T corresponding to enumeration wantedEnum at compile time |
CTestCase | A test case that can be split into multiple sections |
CTestReport | Collects multiple TestCase and reports their results |
CThread | A native OS thread |
CThreadPool | Simple thread pool that executes tasks in a fixed number of worker threads |
CThreadPoolTask | A small task containing a function to execute that can be queued in the thread pool |
CUniqueHandle | Move only handle that has a special tag value flagging its invalid state |
CVector | A contiguous sequence of heap allocated elements |
CVectorMap | A map holding VectorMapItem key-value pairs in an unsorted Vector |
CVectorMapItem | The single item of VectorMap, holding a Key and Value |
CVectorSet | A set built on an unsorted Vector, ensuring no item duplication |
CWritableFileStream | Uses an SC::AsyncFileWrite to stream data to a file |
CWritableSocketStream | Uses an SC::AsyncFileWrite to stream data to a socket |
Csc_hashing_result_t | Hash result |
Csc_hashing_span_t | Just a generic data span |
Csc_hashing_t | Opaque object holding state of hashing |