carb¶
The main Carbonite namespace.
Detailed Description¶
Namespace for all low level Carbonite functionality.
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::cpp20: Namespace for backports of C++20 features.
carb::crashreporter: Namespace for the crash reporter.
carb::details: Internal definition detail.
carb::dictionary: Undocumented.
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::l10n: Undocumented.
carb::launcher: namespace for the Carbonite process launch helper interface.
carb::logging: Undocumented.
carb::math: Namespace for various math helper functions.
carb::options: Namespace for the options processing helper functions.
carb::profiler: Namespace for carb.profiler and related utilities.
carb::settings: Undocumented.
carb::simplegui: Namespace for carb::simplegui.
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::tokens: Namespace for
ITokens
.carb::variant: Namespace for carb.variant.plugin and related utilities.
Classes¶
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::ColorRgba: RGBA
float
color.carb::ColorRgbaDouble: RGBA
double
color.carb::ColorRgbDouble: RGB
double
color.carb::Double2: Two component
double
vector.carb::Double3: Three component
double
vector.carb::Double4: Four component
double
vector.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 carb::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 carb::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 carb::EmptyMemberPair constructors.
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::FrameworkInitializerForBindings: A helper class used by CARB_BINDINGS to acquire and release the carb::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: “Un-cased” (i.e.
carb::RStringUKey: A “un-cased” (i.e.
Enums¶
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) behaviour.
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 carb::RString (and variant classes) constructor.
Functions¶
carb::acquireFramework: Acquire the Carbonite framework for an application.
carb::acquireFrameworkAndRegisterBuiltins: Main acquisition of the Carbonite carb::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 carb::allocate.
carb::deleteHandler: Default handler for carb::IObject reaching zero references, which calls
delete
.carb::fnv1aHash: Compile-time FNV-1a 64-bit hash, use with CARB_HASH_STRING macro.
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 carb::tolower).
carb::hashLowercaseString: Runtime FNV-1a 64-bit lower-case string hash (as if the string had been converted using carb::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 carb::toupper).
carb::hashUppercaseString: Runtime FNV-1a 64-bit upper-case string hash (as if the string had been converted using carb::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::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<<: Global stream output operator for carb::RStringUKey.
carb::operator<<: Global stream output operator for carb::RString.
carb::operator<<: Global stream output operator for carb::RStringU.
carb::operator<<: Global stream output operator for carb::RStringKey.
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 carb::allocate.
carb::releaseFramework: Releases the Carbonite framework immediately.
carb::releaseFrameworkAndDeregisterBuiltins: This function releases the Carbonite carb::Framework.
carb::releaseFrameworkForBindings: Releases the Carbonite carb::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::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<>
.
Typedefs¶
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 carb::OnPluginShutdownFn.
carb::OnPluginPreStartupFn: Optional. Called after carb::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 carb::OnPluginStartupExFn.
carb::OnPluginStartupExFn: Optional. Called after carb::OnPluginPreStartupFn.
carb::OnPluginStartupFn: Optional. Called after carb::OnPluginPreStartupFn.
carb::OnReloadDependencyFn: Optional.
carb::ReleaseHookFn: Release Hook function.
Variables¶
carb::kCarb_FourCC: Four character code used to identify a carb::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.