xrtValueRuntimeObject

增加对象强引用并创建拥有该引用的 Value Handle。

xvalue* xrtValueRuntimeObject(xrtobject* pObject);
参数说明
xrtobject* pObject对象
返回:增加对象强引用并创建拥有该引用的 Value Handle。

示例已编译验证

/* 增加对象强引用并创建拥有该引用的 Value Handle。 */
result = xrtValueRuntimeObject(pObject);

xrtValueRuntimeObjectTake

把对象强引用移交给 Value Handle,成功时清空来源槽。

xvalue* xrtValueRuntimeObjectTake(xrtobject** pObject);
参数说明
xrtobject** pObject对象
返回:把对象强引用移交给 Value Handle,成功时清空来源槽。

示例已编译验证

/* 把对象强引用移交给 Value Handle,成功时清空来源槽。 */
result = xrtValueRuntimeObjectTake(pObject);

xrtValueIsRuntimeObject

判断值是否是运行时对象桥接值,不把动态字典对象误判为类对象。

bool xrtValueIsRuntimeObject(const xvalue* pValue);
参数说明
const xvalue* pValue值
返回:判断值是否是运行时对象桥接值,不把动态字典对象误判为类对象。

示例已编译验证

/* 判断值是否是运行时对象桥接值,不把动态字典对象误判为类对象。 */
result = xrtValueIsRuntimeObject(pValue);

xrtValueGetRuntimeObject

返回 Value Handle 借用的运行时对象,值负责维持强生命周期。

xrtobject* xrtValueGetRuntimeObject(const xvalue* pValue);
参数说明
const xvalue* pValue值
返回:返回 Value Handle 借用的运行时对象,值负责维持强生命周期。

示例已编译验证

/* 返回 Value Handle 借用的运行时对象,值负责维持强生命周期。 */
result = xrtValueGetRuntimeObject(pValue);

xrtValueCallable

增加 callable 引用并创建拥有该引用的 Value Handle。

xvalue* xrtValueCallable(xrtcallable* pCallable);
参数说明
xrtcallable* pCallableCallable 参数
返回:增加 callable 引用并创建拥有该引用的 Value Handle。

示例已编译验证

/* 增加 callable 引用并创建拥有该引用的 Value Handle。 */
result = xrtValueCallable(pCallable);

xrtValueCallableTake

把 callable 引用移交给 Value Handle,成功时清空来源槽。

xvalue* xrtValueCallableTake(xrtcallable** pCallable);
参数说明
xrtcallable** pCallableCallable 参数
返回:把 callable 引用移交给 Value Handle,成功时清空来源槽。

示例已编译验证

/* 把 callable 引用移交给 Value Handle,成功时清空来源槽。 */
result = xrtValueCallableTake(pCallable);

xrtValueIsCallable

判断值是否是 callable 桥接值。

bool xrtValueIsCallable(const xvalue* pValue);
参数说明
const xvalue* pValue值
返回:判断值是否是 callable 桥接值。

示例已编译验证

/* 判断值是否是 callable 桥接值。 */
result = xrtValueIsCallable(pValue);

xrtValueGetCallable

返回 Value Handle 借用的 callable。

xrtcallable* xrtValueGetCallable(const xvalue* pValue);
参数说明
const xvalue* pValue值
返回:返回 Value Handle 借用的 callable。

示例已编译验证

/* 返回 Value Handle 借用的 callable。 */
result = xrtValueGetCallable(pValue);

xrtValueCallableSignature

返回 callable 借用的函数签名,动态 callable 返回空。

const xrtfunctionsig* xrtValueCallableSignature( const xvalue* pValue );
参数说明
const xvalue* pValue值
返回:返回 callable 借用的函数签名,动态 callable 返回空。

示例已编译验证

/* 返回 callable 借用的函数签名,动态 callable 返回空。 */
result = xrtValueCallableSignature(pValue);

xrtValueInvoke

调用一个 callable Value,调用契约与 xrtCallableInvoke 一致。

bool xrtValueInvoke( const xvalue* pCallable, const xrtcallframe* pFrame, xrtcallresult* pResult );
参数说明
const xvalue* pCallableCallable 参数
const xrtcallframe* pFrame帧
xrtcallresult* pResult出:结果
返回:调用一个 callable Value,调用契约与 xrtCallableInvoke 一致。

示例已编译验证

/* 调用一个 callable Value,调用契约与 xrtCallableInvoke 一致。 */
result = xrtValueInvoke(pCallable, pFrame, pResult);

xrtProgressCallInit

初始化同步进度桥;null Value 与空指针都表示不报告进度。

void xrtProgressCallInit( xrtprogresscall* pContext, xvalue* pCallback );
参数说明
xrtprogresscall* pContext上下文
xvalue* pCallback回调
返回:初始化同步进度桥;null Value 与空指针都表示不报告进度。

示例已编译验证

progresscallinit obj;
xrtProgressCallInit(&obj, pContext, pCallback);

xrtProgressCallInvoke

把进度转发为 callable(processed, total, output) 并读取 bool 结果。

bool xrtProgressCallInvoke( const xrtprogress* pProgress, ptr pUserData );
参数说明
const xrtprogress* pProgressProgress 参数
ptr pUserData透传用户数据
返回:把进度转发为 callable(processed, total, output) 并读取 bool 结果。

示例已编译验证

/* 把进度转发为 callable(processed, total, output) 并读取 bool 结果。 */
result = xrtProgressCallInvoke(pProgress, pUserData);

xrtValueFuture

增加 Future 引用并创建拥有该引用的 Value Handle。

xvalue* xrtValueFuture(xfuture* pFuture);
参数说明
xfuture* pFutureFuture 对象
返回:增加 Future 引用并创建拥有该引用的 Value Handle。

示例已编译验证

/* 增加 Future 引用并创建拥有该引用的 Value Handle。 */
result = xrtValueFuture(pFuture);

xrtValueFutureTake

把 Future 引用移交给 Value Handle,成功时清空来源槽。

xvalue* xrtValueFutureTake(xfuture** pFuture);
参数说明
xfuture** pFutureFuture 对象
返回:把 Future 引用移交给 Value Handle,成功时清空来源槽。

示例已编译验证

/* 把 Future 引用移交给 Value Handle,成功时清空来源槽。 */
result = xrtValueFutureTake(pFuture);

xrtValueIsFuture

判断值是否是 Future 桥接值。

bool xrtValueIsFuture(const xvalue* pValue);
参数说明
const xvalue* pValue值
返回:判断值是否是 Future 桥接值。

示例已编译验证

/* 判断值是否是 Future 桥接值。 */
result = xrtValueIsFuture(pValue);

xrtValueGetFuture

返回 Value Handle 借用的 Future。

xfuture* xrtValueGetFuture(const xvalue* pValue);
参数说明
const xvalue* pValue值
返回:返回 Value Handle 借用的 Future。

示例已编译验证

/* 返回 Value Handle 借用的 Future。 */
result = xrtValueGetFuture(pValue);

xrtValueWeak

复制弱引用并创建拥有该控制块引用的 Value Handle。

xvalue* xrtValueWeak(const xrtweak* pWeak);
参数说明
const xrtweak* pWeakWeak 参数
返回:复制弱引用并创建拥有该控制块引用的 Value Handle。

示例已编译验证

/* 复制弱引用并创建拥有该控制块引用的 Value Handle。 */
result = xrtValueWeak(pWeak);

xrtValueWeakTake

把弱引用移交给 Value Handle,成功时把来源变为空弱引用。

xvalue* xrtValueWeakTake(xrtweak* pWeak);
参数说明
xrtweak* pWeakWeak 参数
返回:把弱引用移交给 Value Handle,成功时把来源变为空弱引用。

示例已编译验证

/* 把弱引用移交给 Value Handle,成功时把来源变为空弱引用。 */
result = xrtValueWeakTake(pWeak);

xrtValueIsWeak

判断值是否是运行时弱引用桥接值。

bool xrtValueIsWeak(const xvalue* pValue);
参数说明
const xvalue* pValue值
返回:判断值是否是运行时弱引用桥接值。

示例已编译验证

/* 判断值是否是运行时弱引用桥接值。 */
result = xrtValueIsWeak(pValue);

xrtValueGetWeak

把 Value 中的弱引用复制到已初始化目标,并替换目标原值。

bool xrtValueGetWeak( const xvalue* pValue, xrtweak* pWeak );
参数说明
const xvalue* pValue值
xrtweak* pWeakWeak 参数
返回:把 Value 中的弱引用复制到已初始化目标,并替换目标原值。

示例已编译验证

/* 把 Value 中的弱引用复制到已初始化目标,并替换目标原值。 */
result = xrtValueGetWeak(pValue, pWeak);

xrtValueWeakExpired

查询 Value 中的弱引用是否为空或已经过期。

bool xrtValueWeakExpired(const xvalue* pValue);
参数说明
const xvalue* pValue值
返回:查询 Value 中的弱引用是否为空或已经过期。

示例已编译验证

/* 查询 Value 中的弱引用是否为空或已经过期。 */
result = xrtValueWeakExpired(pValue);

xrtValueWeakLock

成功时从 Value 中的弱引用取得一个新的对象强引用。

xrtobject* xrtValueWeakLock(const xvalue* pValue);
参数说明
const xvalue* pValue值
返回:成功时从 Value 中的弱引用取得一个新的对象强引用。

示例已编译验证

/* 成功时从 Value 中的弱引用取得一个新的对象强引用。 */
result = xrtValueWeakLock(pValue);

xrtTypeValue

返回拥有一个 xvalue 引用的 C ABI 槽所使用的进程期类型描述。

const xrttype* xrtTypeValue(void);
返回:返回拥有一个 xvalue 引用的 C ABI 槽所使用的进程期类型描述。

示例已编译验证

/* 返回拥有一个 xvalue 引用的 C ABI 槽所使用的进程期类型描述。 */
result = xrtTypeValue();

xrtValueTraceRuntimeObjects

XRT_API bool xrtValueTraceRuntimeObjects( const xvalue* pValue, xrtobjectvisitor pVisit, ptr pContext );

;
返回:XRT_API bool xrtValueTraceRuntimeObjects( const xvalue* pValue, xrtobjectvisitor pVisit, ptr pContext );

示例已编译验证

/* XRT_API bool xrtValueTraceRuntimeObjects( const xvalue* pValue, xrtobjectvisitor pVisit, ptr pContext ); */
result = xrtValueTraceRuntimeObjects();

xrtObjectGraphCollectValueRoot

使用一个外部 Value 所有权图作为显式根执行对象图收集。

bool xrtObjectGraphCollectValueRoot( xrtobjectgraph* pGraph, const xvalue* pRoot, xrtobjectgraphresult* pResult );
参数说明
xrtobjectgraph* pGraph图对象
const xvalue* pRoot根
xrtobjectgraphresult* pResult出:结果
返回:使用一个外部 Value 所有权图作为显式根执行对象图收集。

示例已编译验证

/* 使用一个外部 Value 所有权图作为显式根执行对象图收集。 */
result = xrtObjectGraphCollectValueRoot(pGraph, pRoot, pResult);

xrtObjectGraphCollectValueRoots

使用一组外部 Value 所有权图作为显式根执行对象图收集。

bool xrtObjectGraphCollectValueRoots( xrtobjectgraph* pGraph, const xvalue* const* pRoots, size_t iRootCount, xrtobjectgraphresult* pResult );
参数说明
xrtobjectgraph* pGraph图对象
const xvalue* const* pRootsRoots 参数
size_t iRootCountRootCount 参数
xrtobjectgraphresult* pResult出:结果
返回:使用一组外部 Value 所有权图作为显式根执行对象图收集。

示例已编译验证

/* 使用一组外部 Value 所有权图作为显式根执行对象图收集。 */
result = xrtObjectGraphCollectValueRoots(pGraph, pRoots, iRootCount, pResult);