dmlc--dgl
90e78c5854
* WIP: import tvm runtime node system * WIP: object system * containers * tested basic container composition * tested custom object * fix setattr bug * tested object container return * fix lint * some comments about get/set state * fix lint * fix lint * update cython * fix cython * ffi doc * fix doc
77 行
2.3 KiB
C
77 行
2.3 KiB
C
/*!
|
|
* Copyright (c) 2019 by Contributors
|
|
* \file dgl/runtime/c_object_api.h
|
|
*
|
|
* \brief DGL Object C API, used to extend and prototype new CAPIs.
|
|
*
|
|
* \note Most API functions are registerd as PackedFunc and
|
|
* can be grabbed via DGLFuncGetGlobal
|
|
*/
|
|
#ifndef DGL_RUNTIME_C_OBJECT_API_H_
|
|
#define DGL_RUNTIME_C_OBJECT_API_H_
|
|
|
|
#include "./c_runtime_api.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*! \brief handle to object */
|
|
typedef void* ObjectHandle;
|
|
|
|
/*!
|
|
* \brief free the object handle
|
|
* \param handle The object handle to be freed.
|
|
* \return 0 when success, -1 when failure happens
|
|
*/
|
|
DGL_DLL int DGLObjectFree(ObjectHandle handle);
|
|
|
|
/*!
|
|
* \brief Convert type key to type index.
|
|
* \param type_key The key of the type.
|
|
* \param out_index the corresponding type index.
|
|
* \return 0 when success, -1 when failure happens
|
|
*/
|
|
DGL_DLL int DGLObjectTypeKey2Index(const char* type_key,
|
|
int* out_index);
|
|
|
|
/*!
|
|
* \brief Get runtime type index of the object.
|
|
* \param handle the object handle.
|
|
* \param out_index the corresponding type index.
|
|
* \return 0 when success, -1 when failure happens
|
|
*/
|
|
DGL_DLL int DGLObjectGetTypeIndex(ObjectHandle handle,
|
|
int* out_index);
|
|
|
|
/*!
|
|
* \brief get attributes given key
|
|
* \param handle The object handle
|
|
* \param key The attribute name
|
|
* \param out_value The attribute value
|
|
* \param out_type_code The type code of the attribute.
|
|
* \param out_success Whether get is successful.
|
|
* \return 0 when success, -1 when failure happens
|
|
* \note API calls always exchanges with type bits=64, lanes=1
|
|
*/
|
|
DGL_DLL int DGLObjectGetAttr(ObjectHandle handle,
|
|
const char* key,
|
|
DGLValue* out_value,
|
|
int* out_type_code,
|
|
int* out_success);
|
|
|
|
/*!
|
|
* \brief get attributes names in the object.
|
|
* \param handle The object handle
|
|
* \param out_size The number of functions
|
|
* \param out_array The array of function names.
|
|
* \return 0 when success, -1 when failure happens
|
|
*/
|
|
DGL_DLL int DGLObjectListAttrNames(ObjectHandle handle,
|
|
int *out_size,
|
|
const char*** out_array);
|
|
#ifdef __cplusplus
|
|
} // DGL_EXTERN_C
|
|
#endif
|
|
#endif // DGL_RUNTIME_C_OBJECT_API_H_
|