#include <MRCMisc/common.h>
#include <MRCMisc/exports.h>
#include <stddef.h>
Go to the source code of this file.
|
| MRC_API MR_std_shared_ptr_const_MR_Object * | MR_std_shared_ptr_const_MR_Object_DefaultConstruct (void) |
| |
| MRC_API MR_std_shared_ptr_const_MR_Object * | MR_std_shared_ptr_const_MR_Object_DefaultConstructArray (size_t num_elems) |
| |
| MRC_API MR_std_shared_ptr_const_MR_Object * | MR_std_shared_ptr_const_MR_Object_ConstructFromAnother (MR_PassBy other_pass_by, MR_std_shared_ptr_const_MR_Object *other) |
| |
| MRC_API void | MR_std_shared_ptr_const_MR_Object_AssignFromAnother (MR_std_shared_ptr_const_MR_Object *_this, MR_PassBy other_pass_by, MR_std_shared_ptr_const_MR_Object *other) |
| |
| MRC_API void | MR_std_shared_ptr_const_MR_Object_Destroy (const MR_std_shared_ptr_const_MR_Object *_this) |
| | Destroys a heap-allocated instance of MR_std_shared_ptr_const_MR_Object. Does nothing if the pointer is null.
|
| |
| MRC_API void | MR_std_shared_ptr_const_MR_Object_DestroyArray (const MR_std_shared_ptr_const_MR_Object *_this) |
| | Destroys a heap-allocated array of MR_std_shared_ptr_const_MR_Object. Does nothing if the pointer is null.
|
| |
| MRC_API const MR_std_shared_ptr_const_MR_Object * | MR_std_shared_ptr_const_MR_Object_OffsetPtr (const MR_std_shared_ptr_const_MR_Object *ptr, ptrdiff_t i) |
| |
| MRC_API MR_std_shared_ptr_const_MR_Object * | MR_std_shared_ptr_const_MR_Object_OffsetMutablePtr (MR_std_shared_ptr_const_MR_Object *ptr, ptrdiff_t i) |
| |
| MRC_API const MR_Object * | MR_std_shared_ptr_const_MR_Object_Get (const MR_std_shared_ptr_const_MR_Object *_this) |
| |
| MRC_API int | MR_std_shared_ptr_const_MR_Object_UseCount (const MR_std_shared_ptr_const_MR_Object *_this) |
| |
| MRC_API MR_std_shared_ptr_const_MR_Object * | MR_std_shared_ptr_const_MR_Object_Construct (const MR_Object *ptr) |
| |
| MRC_API void | MR_std_shared_ptr_const_MR_Object_Assign (MR_std_shared_ptr_const_MR_Object *_this, const MR_Object *ptr) |
| |
| MRC_API MR_std_shared_ptr_const_MR_Object * | MR_std_shared_ptr_const_MR_Object_ConstructNonOwning (const MR_Object *ptr) |
| |
| MRC_API void | MR_std_shared_ptr_const_MR_Object_AssignNonOwning (MR_std_shared_ptr_const_MR_Object *_this, const MR_Object *ptr) |
| |
| MRC_API MR_std_shared_ptr_const_MR_Object * | MR_std_shared_ptr_const_MR_Object_ConstructFromMutable (MR_PassBy ptr_pass_by, MR_std_shared_ptr_MR_Object *ptr) |
| |
| MRC_API void | MR_std_shared_ptr_const_MR_Object_AssignFromMutable (MR_std_shared_ptr_const_MR_Object *_this, MR_PassBy ptr_pass_by, MR_std_shared_ptr_MR_Object *ptr) |
| |
| MRC_API MR_std_shared_ptr_const_MR_Object * | MR_std_shared_ptr_const_MR_Object_ConstructAliasing (MR_PassBy ownership_pass_by, MR_std_shared_ptr_const_void *ownership, const MR_Object *ptr) |
| |
| MRC_API void | MR_std_shared_ptr_const_MR_Object_AssignAliasing (MR_std_shared_ptr_const_MR_Object *_this, MR_PassBy ownership_pass_by, MR_std_shared_ptr_const_void *ownership, const MR_Object *ptr) |
| |
| MRC_API MR_std_shared_ptr_const_void * | MR_std_shared_ptr_const_void_ConstructFrom_MR_std_shared_ptr_const_MR_Object (MR_PassBy _other_pass_by, MR_std_shared_ptr_const_MR_Object *_other) |
| |
| MRC_API void | MR_std_shared_ptr_const_void_AssignFrom_MR_std_shared_ptr_const_MR_Object (MR_std_shared_ptr_const_void *_this, MR_PassBy _other_pass_by, MR_std_shared_ptr_const_MR_Object *_other) |
| |
◆ MR_Object
◆ MR_std_shared_ptr_const_MR_Object
Wraps a pointer to a single shared reference-counted heap-allocated const MR::Object. Supported MR_PassBy modes: MR_PassBy_DefaultConstruct, MR_PassBy_Copy, MR_PassBy_Move (and MR_PassBy_DefaultArgument and MR_PassBy_NoObject if supported by the callee).
◆ MR_std_shared_ptr_const_void
◆ MR_std_shared_ptr_MR_Object
◆ MR_std_shared_ptr_const_MR_Object_Assign()
Overwrite the existing instance, taking ownership of an existing pointer. The previously owned object, if any, has its reference count decremented. Parameter _this can not be null. It is a single object. Parameter ptr should point to a single object rather than to an array. Parameter ptr takes ownership of the passed pointer (if not null), and will later call MR_Object_Destroy() on it automatically.
◆ MR_std_shared_ptr_const_MR_Object_AssignAliasing()
The aliasing assignment. Overwrite an existing instance, copying ownership from an existing shared pointer and storing an arbitrary raw pointer. The input pointer can be reinterpreted from any other std::shared_ptr<T> to avoid constructing a new std::shared_ptr<void>. Parameter _this can not be null. It is a single object. The reference to the parameter ptr might be preserved in this object. When this function is called, this object will drop any object references it had previously.
◆ MR_std_shared_ptr_const_MR_Object_AssignFromAnother()
Assigns the contents from another instance. Both objects remain alive after the call. Parameter _this can not be null. It is a single object. The reference to the parameter other might be preserved in this object. When this function is called, this object will drop any object references it had previously.
◆ MR_std_shared_ptr_const_MR_Object_AssignFromMutable()
Overwrite the existing instance with a non-const pointer to the same type. Parameter _this can not be null. It is a single object.
◆ MR_std_shared_ptr_const_MR_Object_AssignNonOwning()
Overwrite the existing instance with a non-owning pointer. The previously owned object, if any, has its reference count decremented. Parameter _this can not be null. It is a single object. The reference to the parameter ptr might be preserved in this object. When this function is called, this object will drop any object references it had previously.
◆ MR_std_shared_ptr_const_MR_Object_Construct()
Create a new instance, taking ownership of an existing pointer. Parameter ptr should point to a single object rather than to an array. Parameter ptr takes ownership of the passed pointer (if not null), and will later call MR_Object_Destroy() on it automatically. Never returns null. Returns an instance allocated on the heap! Must call MR_std_shared_ptr_const_MR_Object_Destroy() to free it when you're done using it.
◆ MR_std_shared_ptr_const_MR_Object_ConstructAliasing()
The aliasing constructor. Create a new instance, copying ownership from an existing shared pointer and storing an arbitrary raw pointer. The input pointer can be reinterpreted from any other std::shared_ptr<T> to avoid constructing a new std::shared_ptr<void>. The reference to the parameter ptr might be preserved in the constructed object. Never returns null. Returns an instance allocated on the heap! Must call MR_std_shared_ptr_const_MR_Object_Destroy() to free it when you're done using it. When this function is called, this object will drop any object references it had previously.
◆ MR_std_shared_ptr_const_MR_Object_ConstructFromAnother()
Constructs a copy of another instance. The source remains alive. The reference to the parameter other might be preserved in the constructed object. Never returns null. Returns an instance allocated on the heap! Must call MR_std_shared_ptr_const_MR_Object_Destroy() to free it when you're done using it. When this function is called, this object will drop any object references it had previously.
◆ MR_std_shared_ptr_const_MR_Object_ConstructFromMutable()
Create a new instance from a non-const pointer to the same type. Never returns null. Returns an instance allocated on the heap! Must call MR_std_shared_ptr_const_MR_Object_Destroy() to free it when you're done using it.
◆ MR_std_shared_ptr_const_MR_Object_ConstructNonOwning()
Create a new instance, storing a non-owning pointer. The reference to the parameter ptr might be preserved in the constructed object. Never returns null. Returns an instance allocated on the heap! Must call MR_std_shared_ptr_const_MR_Object_Destroy() to free it when you're done using it. When this function is called, this object will drop any object references it had previously.
◆ MR_std_shared_ptr_const_MR_Object_DefaultConstruct()
◆ MR_std_shared_ptr_const_MR_Object_DefaultConstructArray()
◆ MR_std_shared_ptr_const_MR_Object_Destroy()
Destroys a heap-allocated instance of MR_std_shared_ptr_const_MR_Object. Does nothing if the pointer is null.
◆ MR_std_shared_ptr_const_MR_Object_DestroyArray()
Destroys a heap-allocated array of MR_std_shared_ptr_const_MR_Object. Does nothing if the pointer is null.
◆ MR_std_shared_ptr_const_MR_Object_Get()
Returns the stored pointer, possibly null. Parameter _this can not be null. It is a single object.
◆ MR_std_shared_ptr_const_MR_Object_OffsetMutablePtr()
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element. The reference to the parameter ptr might be preserved in the return value.
◆ MR_std_shared_ptr_const_MR_Object_OffsetPtr()
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element. The reference to the parameter ptr might be preserved in the return value.
◆ MR_std_shared_ptr_const_MR_Object_UseCount()
How many shared pointers share the managed object. Zero if no object is being managed. This being zero usually conincides with MR_std_shared_ptr_const_MR_Object_Get() returning null, but is ultimately orthogonal. Note that in multithreaded environments, the only safe way to use this number is comparing it with zero. Positive values might change by the time you get to use them. Parameter _this can not be null. It is a single object.
◆ MR_std_shared_ptr_const_void_AssignFrom_MR_std_shared_ptr_const_MR_Object()
Overwrites an existing std::shared_ptr<void> to point to the same object as this instance. Parameter _this can not be null. It is a single object.
◆ MR_std_shared_ptr_const_void_ConstructFrom_MR_std_shared_ptr_const_MR_Object()
Creates an untyped std::shared_ptr<void> pointing to the same object as the source typed pointer. Never returns null. Returns an instance allocated on the heap! Must call MR_std_shared_ptr_const_void_Destroy() to free it when you're done using it.