mxnet
|
base class of all object containers. More...
#include <object.h>
Public Types | |
typedef void(* | FDeleter) (Object *self) |
Object deleter. More... | |
using | RefCounterType = std::atomic< int32_t > |
Public Member Functions | |
uint32_t | type_index () const |
std::string | GetTypeKey () const |
size_t | GetTypeKeyHash () const |
template<typename TargetType > | |
bool | IsInstance () const |
Object () | |
Object (const Object &other) | |
Object (Object &&other) | |
Object & | operator= (const Object &other) |
Object & | operator= (Object &&other) |
Static Public Member Functions | |
static MXNET_DLL std::string | TypeIndex2Key (uint32_t tindex) |
Get the type key of the corresponding index from runtime. More... | |
static MXNET_DLL size_t | TypeIndex2KeyHash (uint32_t tindex) |
Get the type key hash of the corresponding index from runtime. More... | |
static MXNET_DLL uint32_t | TypeKey2Index (const std::string &key) |
Get the type index of the corresponding key from runtime. More... | |
static uint32_t | _GetOrAllocRuntimeTypeIndex () |
static uint32_t | RuntimeTypeIndex () |
Static Public Attributes | |
static constexpr const char * | _type_key = "Object" |
static constexpr bool | _type_final = false |
static constexpr uint32_t | _type_child_slots = 0 |
static constexpr bool | _type_child_slots_can_overflow = true |
static constexpr uint32_t | _type_index = TypeIndex::kDynamic |
Protected Member Functions | |
void | IncRef () |
developer function, increases reference counter. More... | |
void | DecRef () |
developer function, decrease reference counter. More... | |
Static Protected Member Functions | |
static MXNET_DLL uint32_t | GetOrAllocRuntimeTypeIndex (const std::string &key, uint32_t static_tindex, uint32_t parent_tindex, uint32_t type_child_slots, bool type_child_slots_can_overflow) |
Get the type index using type key. More... | |
Protected Attributes | |
uint32_t | type_index_ {0} |
Type index(tag) that indicates the type of the object. More... | |
RefCounterType | ref_counter_ {0} |
The internal reference counter. More... | |
FDeleter | deleter_ = nullptr |
deleter of this object to enable customized allocation. If the deleter is nullptr, no deletion will be performed. The creator of the object must always set the deleter field properly. More... | |
Friends | |
template<typename > | |
class | ObjAllocatorBase |
template<typename > | |
class | ObjectPtr |
we always used ObjectPtr for a reference pointer to the node, so this alias can be changed in case. More... | |
class | MXNetRetValue |
class | ObjectInternal |
base class of all object containers.
Sub-class of objects should declare the following static constexpr fields:
The following two fields are necessary for base classes that can be sub-classed.
Two macros are used to declare helper functions in the object:
New objects can be created using make_object function. Which will automatically populate the type_index and deleter of the object.
typedef void(* mxnet::runtime::Object::FDeleter) (Object *self) |
using mxnet::runtime::Object::RefCounterType = std::atomic<int32_t> |
|
inline |
|
inline |
|
inline |
|
inlinestatic |
|
inlineprotected |
developer function, decrease reference counter.
|
staticprotected |
Get the type index using type key.
When the function is first time called for a type, it will register the type to the type table in the runtime. If the static_tindex is TypeIndex::kDynamic, the function will allocate a runtime type index. Otherwise, we will populate the type table and return the static index.
key | the type key. |
static_tindex | The current _type_index field. can be TypeIndex::kDynamic. |
parent_tindex | The index of the parent. |
type_child_slots | Number of slots reserved for its children. |
type_child_slots_can_overflow | Whether to allow child to overflow the slots. |
|
inline |
|
inline |
|
inlineprotected |
developer function, increases reference counter.
|
inline |
Check if the object is an instance of TargetType.
TargetType | The target type to be checked. |
|
inlinestatic |
|
inline |
|
static |
Get the type key of the corresponding index from runtime.
tindex | The type index. |
|
static |
Get the type key hash of the corresponding index from runtime.
tindex | The type index. |
|
static |
Get the type index of the corresponding key from runtime.
key | The type key. |
|
friend |
|
friend |
|
friend |
|
friend |
|
static |
|
static |
|
static |
|
static |
|
static |
|
protected |
deleter of this object to enable customized allocation. If the deleter is nullptr, no deletion will be performed. The creator of the object must always set the deleter field properly.
|
protected |
The internal reference counter.
|
protected |
Type index(tag) that indicates the type of the object.