carb
-
namespace carb
The main Carbonite namespace.
Namespace for all low level Carbonite functionality.
Classes
carb::Allocator: A class implementing the ' Allocator ' C++ Named Requirement.
carb::Deleter: Allocated object deleter helper class.
carb::EmptyMemberPair: Attempts to invoke the Empty Member Optimization by inheriting from the First element if possible, which, if empty will eliminate the storage necessary for an empty class; the Second element is always stored as a separate member. The First element is inherited from if it is an empty
class
/struct
and is not declaredfinal
.carb::EventSubscribers: A class that manages subscribers.
carb::FrameworkInitializerForBindings: A helper class used by CARB_BINDINGS() to acquire and release the Framework for a binding.
carb::IObject: Reference-counted object base.
carb::ObjectPtr: Smart pointer type for ref counting
IObject
.carb::RString: Carbonite registered strings.
carb::RStringKey: A registered string key.
carb::RStringU: Case-insensitive registered string.
carb::RStringUKey: A case-insensitive registered string key.
carb::UseCarbAllocatorAligned: An object can inherit from this class in order to use Carbonite allocation functions for creation/deletion.
Enumerations
carb::AcquireInterfaceFlags: Flags for use with carb::AcquireInterfaceOptions .
carb::BindingType: An enum that describes a binding registration for carb::Framework::registerScriptBinding() .
carb::LoadPluginResult: Result of loading a plugin. Used by carb::Framework::loadPlugin . Non-negative values indicated success.
carb::PluginHotReload: Defines the plugin hot reloading (auto reload) behavior.
carb::PluginReloadState: Lets clients of a plugin know both just before and just after that the plugin is being reloaded.
carb::PrefetchLevel: A prefetch level hint to pass to CARB_PREFETCH()
carb::RStringOp: Operations for RString (and variant classes) constructor.
Functions
carb::acquireFramework: Acquire the Carbonite framework for an application.
carb::acquireFrameworkAndRegisterBuiltins: Main acquisition of the Carbonite Framework for Clients (applications and plugins).
carb::acquireFrameworkForBindings: Undocumented.
carb::acquireInterfaceForBindings: A helper function for Framework::tryAcquireInterface() that attempts to load plugins if not found.
carb::acquireInterfaceFromLibraryForBindings: Helper for Framework::tryAcquireInterfaceFromLibrary() that throws on error.
carb::allocate: Allocates a block of memory.
carb::assertHandlerFallback: Assertion handler helper function.
carb::borrowObject: Helper function to create carb::ObjectPtr from a carb::IObject pointer by "borrowing" the pointer; that is, by increasing the reference count.
carb::carbGetSdkVersion: Retrieves the Carbonite SDK version string,.
carb::configureFramework: Configures the framework given a slew of input parameters.
carb::deallocate: Deallocates a block of memory previously allocated with allocate() .
carb::deleteHandler: Default handler for carb::IObject reaching zero references, which calls
delete
.carb::findPlugins: Helper function to find plugins in a given list of search paths.
carb::fnv1aHash: Compile-time FNV-1a 64-bit hash, use with CARB_HASH_STRING macro.
carb::fromHexVersion: Converts a hex-version to a Version struct.
carb::getCachedInterface: Retrieves the specified interface as if from Framework::tryAcquireInterface() and caches it for fast retrieval.
carb::getCachedInterfaceForBindings: A helper function for carb::getCachedInterface() that throws on error.
carb::getFramework: Gets the Carbonite framework.
carb::hashBuffer: Runtime FNV-1a 64-bit byte hash.
carb::hashCombine: Combines two hashes producing better collision avoidance than XOR.
carb::hashLowercaseBuffer: Runtime FNV-1a 64-bit lower-case byte hash (as if the bytes had been converted using tolower() ).
carb::hashLowercaseString: Runtime FNV-1a 64-bit lower-case string hash (as if the string had been converted using tolower() ).
carb::hashPair: A helper function for combining two hash values.
carb::hashScalar: Runtime FNV-1a 64-bit hash of a scalar type.
carb::hashString: Runtime FNV-1a 64-bit string hash.
carb::hashUppercaseBuffer: Runtime FNV-1a 64-bit upper-case byte hash (as if the bytes had been converted using toupper() ).
carb::hashUppercaseString: Runtime FNV-1a 64-bit upper-case string hash (as if the string had been converted using toupper() ).
carb::isFrameworkValid: Returns
true
if the Carbonite framework has been created and is still alive. Creation happens at the first carb::acquireFramework() call and ends at any carb::releaseFramework() call.carb::isVersionSemanticallyCompatible: Checks two versions to see if they are semantically compatible.
carb::loadFrameworkConfiguration: Loads the framework configuration based on a slew of input parameters.
carb::loadPluginsFromPattern: Simple plugin loading function wrapper that loads plugins matching a single pattern.
carb::loadPluginsFromPatterns: Simple plugin loading function wrapper that loads plugins matching multiple patterns.
carb::operator!=: Inequality operator.
carb::operator<: Less-than comparison operator.
carb::operator<<: Global stream output operator for RStringUKey .
carb::operator<<: Global stream output operator for RStringKey .
carb::operator<<: Global stream output operator for RString .
carb::operator<<: Global stream output operator for RStringU .
carb::operator<=: Less-than-or-equal comparison operator.
carb::operator==: Equality operator.
carb::pluginDeinitialize: Function called automatically at plugin shutdown to de-initialize utilities within each plugin.
carb::pluginInitialize: Function called automatically at plugin startup to initialize utilities within each plugin.
carb::quickReleaseFrameworkAndTerminate: Releases the Carbonite framework immediately and exits the process, without running C/C++ atexit() registered functions or static destructors.
carb::reallocate: Reallocates a block of memory previously allocated with allocate() .
carb::releaseFramework: Releases the Carbonite framework immediately.
carb::releaseFrameworkAndDeregisterBuiltins: This function releases the Carbonite Framework .
carb::releaseFrameworkForBindings: Releases the Carbonite Framework for a script binding.
carb::resetCachedInterface: Resets any previously-cached interface of the given type and allows it to be acquired again.
carb::shutdownFramework: Tears down the Carbonite framework.
carb::startupFramework: Starts/Configures the framework given a slew of input parameters.
carb::stealObject: Helper function to create carb::ObjectPtr from a carb::IObject pointer by "stealing" the pointer; that is, without increasing the reference count.
carb::toHexVersion: Converts a Version struct to a hex-version.
carb::tolower: A fast table-based implementation of std::tolower for ASCII characters only.
carb::toupper: A fast table-based implementation of std::toupper for ASCII characters only.
carb::wrapInterfaceFunction: Wraps an interface function into a
std::function<>
.carb::wrapInterfaceFunction: Wraps an interface function into a
std::function<>
.
Namespaces
carb::assert: Namespace for all assertion checking helpers and interfaces.
carb::assets: Namespace for carb.assets.plugin and related utilities.
carb::audio: Audio playback and capture.
carb::container: Carbonite container classes.
carb::cpp: Namespace for C++ standard library types after C++14 implemented and usable by C++14 compilers.
carb::cpp17: (Deprecated) Namespace for C++17 features using C++14 semantics. Use carb::cpp instead.
carb::cpp20: (Deprecated) Namespace for C++20 features using C++14 semantics. Use carb::cpp instead.
carb::crashreporter: Namespace for the crash reporter.
carb::delegate: Namespace for Carbonite delegate implementation.
carb::detail: Internal.
carb::dictionary: Namespace for carb::dictionary::IDictionary related interfaces and helpers.
carb::eventdispatcher: Namespace for carb.eventdispatcher.plugin and related utilities.
carb::events: Namespace for the carb.events plugin.
carb::extras: Common namespace for extra helper functions and classes.
carb::filesystem: Namespace for Carbonite FileSystem.
carb::input: Namespace for the carb.input plugin.
carb::l10n: Utilities for localizing text.
carb::launcher: Namespace for the Carbonite process launch helper interface.
carb::logging: Namespace for logging interfaces and utilities.
carb::math: Namespace for various math helper functions.
carb::options: Namespace for the options processing helper functions.
carb::process: Namespace for Carbonite process utilities.
carb::profiler: Namespace for carb.profiler and related utilities.
carb::settings: Namespace for carb::settings::ISettings interface and utilities.
carb::simplegui: Namespace for carb.simplegui plugin.
carb::stats: Namespace for the arbitrary statistics interface.
carb::tasking: Namespace for carb.tasking.plugin and related utilities.
carb::this_process: Namespace for utilities that operate on the current thread specifically.
carb::this_thread: Namespace for utilities that operate on the current thread specifically.
carb::thread: Namespace for all threading operations.
carb::time: Namespace for time utilities.
carb::tokens: Namespace for
ITokens
.carb::variant: Namespace for carb.variant.plugin and related utilities.
carb::variant_literals: Namespace for carb.variant literal helpers.
carb::windowing: Namespace for Carbonite Windowing system.
Structs
carb::AcquireInterfaceOptions: A structure used with Framework::internalAcquireInterface() . Typically callers should use one of the adapter functions such as Framework::tryAcquireInterface() and not use this directly.
carb::Color: RGBA color with templated data type.
carb::ColorRgb: RGB
float
color.carb::ColorRgbDouble: RGB
double
color.carb::ColorRgba: RGBA
float
color.carb::ColorRgbaDouble: RGBA
double
color.carb::Double2: Two component
double
vector.carb::Double3: Three component
double
vector.carb::Double4: Four component
double
vector.carb::ErrorApi: The low-level API for interacting with the Carbonite error handling system. At the core, this system maintains a thread-specific error code and optional error message.
carb::FindPluginsArgs: Arguments that are passed to findPlugins() .
carb::Float2: Two component
float
vector.carb::Float3: Three component
float
vector.carb::Float4: Four component
float
vector.carb::Framework: Defines the framework for creating Carbonite applications and plugins.
carb::InitBoth: An empty class tag type used with EmptyMemberPair constructors.
carb::Int2: Two component
int32_t
vector.carb::Int3: Three component
int32_t
vector.carb::Int4: Four component
int32_t
vector.carb::InterfaceDesc: Defines a descriptor for the plugin interface.
carb::PluginDesc: Defines a struct which contains all key information about a plugin loaded into memory.
carb::PluginFrameworkDesc: Pass to each plugin's OnPluginRegisterExFn during load. Allows the plugin to grab global Carbonite state such as the carb::Framework singleton.
carb::PluginImplDesc: Defines a descriptor for the plugin implementation, to be provided to the macro CARB_PLUGIN_IMPL.
carb::PluginLoadingDesc: Describes parameters for finding plugins on disk. Multiple search paths, matching wildcards, and exclusion wildcards can be specified. Used primarily by Framework::loadPlugins .
carb::PluginRegistrationDesc: Describes the different functions a plugin can define for use by carb::Framework .
carb::PluginRegistryEntry: Defines a struct to be filled by a plugin to provide the framework with all information about it.
carb::PluginRegistryEntry2: Defines a struct to be filled by a plugin to provide the framework with all information about it. This struct is automatically created and filled by the macro CARB_PLUGIN_IMPL.
carb::SharedHandle: Defines a shared object handle.
carb::StartupFrameworkDesc: Parameters passed to carb::startupFramework() .
carb::Uint2: Two component
uint32_t
vector.carb::Uint3: Three component
uint32_t
vector.carb::Uint4: Four component
uint32_t
vector.carb::ValueInitFirst: An empty class tag type used with EmptyMemberPair constructors.
carb::Version: Defines a version consisting of a major and minor version.
Typedefs
carb::FindPluginsOnMatchedFn: Callback that is called when a candidate plugin file is located.
carb::FourCC: A representation that can combine four character codes into a single 32-bit value for quick comparison.
carb::GetFrameworkVersionFn: Required. Returns the plugin's required carb::Framework version.
carb::GetPluginDepsFn: Optional. Returns a static list of interfaces this plugin depends upon.
carb::LoadHookFn: Load Hook function.
carb::LoadHookHandle: A handle type for Framework::addLoadHook() and Framework::removeLoadHook()
carb::OnPluginPostShutdownFn: Optional. Called after OnPluginShutdownFn .
carb::OnPluginPreStartupFn: Optional. Called after OnPluginRegisterExFn .
carb::OnPluginQuickShutdownFn: Optional. Called if provided in lieu of OnPluginShutdownFn when the carb::quickReleaseFrameworkAndTerminate() is performing a quick shutdown.
carb::OnPluginRegisterEx2Fn: Either this or OnPluginRegisterEx2Fn or OnPluginRegisterFn are required. Populates the given carb::PluginRegistryEntry2 with the plugin's information.
carb::OnPluginRegisterExFn: Either this or OnPluginRegisterFn or OnPluginRegisterEx2 are required. Populates the given carb::PluginRegistryEntry with the plugin's information.
carb::OnPluginRegisterFn: Either this or OnPluginRegisterExFn or OnPluginRegisterEx2Fn are required. Populates the given carb::PluginRegistryEntry with the plugin's information.
carb::OnPluginShutdownFn: Optional. Called after OnPluginStartupExFn .
carb::OnPluginStartupExFn: Optional. Called after OnPluginPreStartupFn .
carb::OnPluginStartupFn: Optional. Called after OnPluginPreStartupFn .
carb::OnReloadDependencyFn: Optional.
carb::ReleaseHookFn: Release Hook function.
carb::UseCarbAllocator: An object can inherit from this class in order to use Carbonite allocation functions for creation/deletion.
Variables
carb::kCarb_FourCC: Four character code used to identify a PluginRegistrationDesc object that is likely to have further data provided in it.
carb::kFnvBasis: FNV-1a 64-bit hash basis.
carb::kFnvPrime: FNV-1a 64-bit hash prime.
carb::kFrameworkVersion: Defines the current version of the Carbonite framework.
carb::kInvalidLoadHook: A value indicating an invalid load hook handle.
carb::kTimeoutInfinite: Timeout constant.