xrtValueRuntimeObject
增加对象强引用并创建拥有该引用的 Value Handle。
| 参数 | 说明 |
|---|---|
| xrtobject* pObject | 对象 |
示例已编译验证
/* 增加对象强引用并创建拥有该引用的 Value Handle。 */ result = xrtValueRuntimeObject(pObject);
xrtValueRuntimeObjectTake
把对象强引用移交给 Value Handle,成功时清空来源槽。
| 参数 | 说明 |
|---|---|
| xrtobject** pObject | 对象 |
示例已编译验证
/* 把对象强引用移交给 Value Handle,成功时清空来源槽。 */ result = xrtValueRuntimeObjectTake(pObject);
xrtValueIsRuntimeObject
判断值是否是运行时对象桥接值,不把动态字典对象误判为类对象。
| 参数 | 说明 |
|---|---|
| const xvalue* pValue | 值 |
示例已编译验证
/* 判断值是否是运行时对象桥接值,不把动态字典对象误判为类对象。 */ result = xrtValueIsRuntimeObject(pValue);
xrtValueGetRuntimeObject
返回 Value Handle 借用的运行时对象,值负责维持强生命周期。
| 参数 | 说明 |
|---|---|
| const xvalue* pValue | 值 |
示例已编译验证
/* 返回 Value Handle 借用的运行时对象,值负责维持强生命周期。 */ result = xrtValueGetRuntimeObject(pValue);
xrtValueCallable
增加 callable 引用并创建拥有该引用的 Value Handle。
| 参数 | 说明 |
|---|---|
| xrtcallable* pCallable | Callable 参数 |
示例已编译验证
/* 增加 callable 引用并创建拥有该引用的 Value Handle。 */ result = xrtValueCallable(pCallable);
xrtValueCallableTake
把 callable 引用移交给 Value Handle,成功时清空来源槽。
| 参数 | 说明 |
|---|---|
| xrtcallable** pCallable | Callable 参数 |
示例已编译验证
/* 把 callable 引用移交给 Value Handle,成功时清空来源槽。 */ result = xrtValueCallableTake(pCallable);
xrtValueIsCallable
判断值是否是 callable 桥接值。
| 参数 | 说明 |
|---|---|
| const xvalue* pValue | 值 |
示例已编译验证
/* 判断值是否是 callable 桥接值。 */ result = xrtValueIsCallable(pValue);
xrtValueGetCallable
返回 Value Handle 借用的 callable。
| 参数 | 说明 |
|---|---|
| const xvalue* pValue | 值 |
示例已编译验证
/* 返回 Value Handle 借用的 callable。 */ result = xrtValueGetCallable(pValue);
xrtValueCallableSignature
返回 callable 借用的函数签名,动态 callable 返回空。
| 参数 | 说明 |
|---|---|
| const xvalue* pValue | 值 |
示例已编译验证
/* 返回 callable 借用的函数签名,动态 callable 返回空。 */ result = xrtValueCallableSignature(pValue);
xrtValueInvoke
调用一个 callable Value,调用契约与 xrtCallableInvoke 一致。
| 参数 | 说明 |
|---|---|
| const xvalue* pCallable | Callable 参数 |
| const xrtcallframe* pFrame | 帧 |
| xrtcallresult* pResult | 出:结果 |
示例已编译验证
/* 调用一个 callable Value,调用契约与 xrtCallableInvoke 一致。 */ result = xrtValueInvoke(pCallable, pFrame, pResult);
xrtProgressCallInit
初始化同步进度桥;null Value 与空指针都表示不报告进度。
| 参数 | 说明 |
|---|---|
| xrtprogresscall* pContext | 上下文 |
| xvalue* pCallback | 回调 |
示例已编译验证
progresscallinit obj; xrtProgressCallInit(&obj, pContext, pCallback);
xrtProgressCallInvoke
把进度转发为 callable(processed, total, output) 并读取 bool 结果。
| 参数 | 说明 |
|---|---|
| const xrtprogress* pProgress | Progress 参数 |
| ptr pUserData | 透传用户数据 |
示例已编译验证
/* 把进度转发为 callable(processed, total, output) 并读取 bool 结果。 */ result = xrtProgressCallInvoke(pProgress, pUserData);
xrtValueFuture
增加 Future 引用并创建拥有该引用的 Value Handle。
| 参数 | 说明 |
|---|---|
| xfuture* pFuture | Future 对象 |
示例已编译验证
/* 增加 Future 引用并创建拥有该引用的 Value Handle。 */ result = xrtValueFuture(pFuture);
xrtValueFutureTake
把 Future 引用移交给 Value Handle,成功时清空来源槽。
| 参数 | 说明 |
|---|---|
| xfuture** pFuture | Future 对象 |
示例已编译验证
/* 把 Future 引用移交给 Value Handle,成功时清空来源槽。 */ result = xrtValueFutureTake(pFuture);
xrtValueIsFuture
判断值是否是 Future 桥接值。
| 参数 | 说明 |
|---|---|
| const xvalue* pValue | 值 |
示例已编译验证
/* 判断值是否是 Future 桥接值。 */ result = xrtValueIsFuture(pValue);
xrtValueGetFuture
返回 Value Handle 借用的 Future。
| 参数 | 说明 |
|---|---|
| const xvalue* pValue | 值 |
示例已编译验证
/* 返回 Value Handle 借用的 Future。 */ result = xrtValueGetFuture(pValue);
xrtValueWeak
复制弱引用并创建拥有该控制块引用的 Value Handle。
| 参数 | 说明 |
|---|---|
| const xrtweak* pWeak | Weak 参数 |
示例已编译验证
/* 复制弱引用并创建拥有该控制块引用的 Value Handle。 */ result = xrtValueWeak(pWeak);
xrtValueWeakTake
把弱引用移交给 Value Handle,成功时把来源变为空弱引用。
| 参数 | 说明 |
|---|---|
| xrtweak* pWeak | Weak 参数 |
示例已编译验证
/* 把弱引用移交给 Value Handle,成功时把来源变为空弱引用。 */ result = xrtValueWeakTake(pWeak);
xrtValueIsWeak
判断值是否是运行时弱引用桥接值。
| 参数 | 说明 |
|---|---|
| const xvalue* pValue | 值 |
示例已编译验证
/* 判断值是否是运行时弱引用桥接值。 */ result = xrtValueIsWeak(pValue);
xrtValueGetWeak
把 Value 中的弱引用复制到已初始化目标,并替换目标原值。
| 参数 | 说明 |
|---|---|
| const xvalue* pValue | 值 |
| xrtweak* pWeak | Weak 参数 |
示例已编译验证
/* 把 Value 中的弱引用复制到已初始化目标,并替换目标原值。 */ result = xrtValueGetWeak(pValue, pWeak);
xrtValueWeakExpired
查询 Value 中的弱引用是否为空或已经过期。
| 参数 | 说明 |
|---|---|
| const xvalue* pValue | 值 |
示例已编译验证
/* 查询 Value 中的弱引用是否为空或已经过期。 */ result = xrtValueWeakExpired(pValue);
xrtValueWeakLock
成功时从 Value 中的弱引用取得一个新的对象强引用。
| 参数 | 说明 |
|---|---|
| const xvalue* pValue | 值 |
示例已编译验证
/* 成功时从 Value 中的弱引用取得一个新的对象强引用。 */ result = xrtValueWeakLock(pValue);
xrtTypeValue
返回拥有一个 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 ); */ result = xrtValueTraceRuntimeObjects();
xrtObjectGraphCollectValueRoot
使用一个外部 Value 所有权图作为显式根执行对象图收集。
| 参数 | 说明 |
|---|---|
| xrtobjectgraph* pGraph | 图对象 |
| const xvalue* pRoot | 根 |
| xrtobjectgraphresult* pResult | 出:结果 |
示例已编译验证
/* 使用一个外部 Value 所有权图作为显式根执行对象图收集。 */ result = xrtObjectGraphCollectValueRoot(pGraph, pRoot, pResult);
xrtObjectGraphCollectValueRoots
使用一组外部 Value 所有权图作为显式根执行对象图收集。
| 参数 | 说明 |
|---|---|
| xrtobjectgraph* pGraph | 图对象 |
| const xvalue* const* pRoots | Roots 参数 |
| size_t iRootCount | RootCount 参数 |
| xrtobjectgraphresult* pResult | 出:结果 |
示例已编译验证
/* 使用一组外部 Value 所有权图作为显式根执行对象图收集。 */ result = xrtObjectGraphCollectValueRoots(pGraph, pRoots, iRootCount, pResult);