xrtTypeFieldsValidate
验证本类型及完整继承链中的字段名称、布局、类型和标志。
| 参数 | 说明 |
|---|---|
| const xrttype* pType | 类型 |
示例已编译验证
/* 验证本类型及完整继承链中的字段名称、布局、类型和标志。 */ result = xrtTypeFieldsValidate(pType);
xrtTypeFieldCount
返回包含继承字段的总数;字段顺序始终是基类在前、派生类在后。
| 参数 | 说明 |
|---|---|
| const xrttype* pType | 类型 |
示例已编译验证
/* 返回包含继承字段的总数;字段顺序始终是基类在前、派生类在后。 */ result = xrtTypeFieldCount(pType);
xrtTypeField
按基类优先的稳定下标返回借用字段,越界时设置范围错误。
| 参数 | 说明 |
|---|---|
| const xrttype* pType | 类型 |
| size_t iIndex | 下标 |
示例已编译验证
/* 按基类优先的稳定下标返回借用字段,越界时设置范围错误。 */ result = xrtTypeField(pType, iIndex);
xrtTypeFindField
沿当前类型和基类按精确名称查找借用字段;未找到不设置错误。
| 参数 | 说明 |
|---|---|
| const xrttype* pType | 类型 |
| xstrview Name | 名称(xstrview) |
示例已编译验证
/* 沿当前类型和基类按精确名称查找借用字段;未找到不设置错误。 */ result = xrtTypeFindField(pType, Name);
xrtTypeFieldOwner
返回字段在给定类型继承链中的声明类型。
| 参数 | 说明 |
|---|---|
| const xrttype* pType | 类型 |
| const xrtfielddesc* pField | 字段 |
示例已编译验证
/* 返回字段在给定类型继承链中的声明类型。 */ result = xrtTypeFieldOwner(pType, pField);
xrtFieldConstData
返回实例中的借用字段地址;描述必须属于给定类型的继承链。
| 参数 | 说明 |
|---|---|
| const xrttype* pType | 类型 |
| const xrtfielddesc* pField | 字段 |
| const void* pInstance | Instance 参数 |
示例已编译验证
/* 返回实例中的借用字段地址;描述必须属于给定类型的继承链。 */ result = xrtFieldConstData(pType, pField, pInstance);
xrtFieldData
XRT_API ptr xrtFieldData( const xrttype* pType, const xrtfielddesc* pField, ptr pInstance );
示例已编译验证
/* XRT_API ptr xrtFieldData( const xrttype* pType, const xrtfielddesc* pField, ptr pInstance ); */ result = xrtFieldData();
xrtDynamicFieldsType
返回进程期稳定的 xrt.DynamicFields 运行时类型。
示例已编译验证
/* 返回进程期稳定的 xrt.DynamicFields 运行时类型。 */ result = xrtDynamicFieldsType();
xrtDynamicFieldsCreate
创建、保留和释放动态字段对象。
示例已编译验证
/* 创建、保留和释放动态字段对象。 */ xhandle* h = xrtDynamicFieldsCreate();
xrtDynamicFieldsRef
XRT_API xrtdynamicfields* xrtDynamicFieldsRef(xrtdynamicfields* pFields);
示例已编译验证
/* XRT_API xrtdynamicfields* xrtDynamicFieldsRef(xrtdynamicfields* pFields); */ result = xrtDynamicFieldsRef();
xrtDynamicFieldsUnref
XRT_API void xrtDynamicFieldsUnref(xrtdynamicfields* pFields);
示例已编译验证
/* XRT_API void xrtDynamicFieldsUnref(xrtdynamicfields* pFields); */ result = xrtDynamicFieldsUnref();
xrtDynamicFieldsCount
返回字段数量、容量,并管理字段表存储。
| 参数 | 说明 |
|---|---|
| const xrtdynamicfields* pFields | 字段数组 |
示例已编译验证
/* 返回字段数量、容量,并管理字段表存储。 */ result = xrtDynamicFieldsCount(pFields);
xrtDynamicFieldsCapacity
XRT_API size_t xrtDynamicFieldsCapacity(const xrtdynamicfields* pFields);
示例已编译验证
/* XRT_API size_t xrtDynamicFieldsCapacity(const xrtdynamicfields* pFields); */ result = xrtDynamicFieldsCapacity();
xrtDynamicFieldsClear
XRT_API bool xrtDynamicFieldsClear(xrtdynamicfields* pFields);
示例已编译验证
/* XRT_API bool xrtDynamicFieldsClear(xrtdynamicfields* pFields); */ result = xrtDynamicFieldsClear();
xrtDynamicFieldsReserve
XRT_API bool xrtDynamicFieldsReserve( xrtdynamicfields* pFields, size_t iCapacity );
示例已编译验证
/* XRT_API bool xrtDynamicFieldsReserve( xrtdynamicfields* pFields, size_t iCapacity ); */ result = xrtDynamicFieldsReserve();
xrtDynamicFieldsTrim
XRT_API bool xrtDynamicFieldsTrim(xrtdynamicfields* pFields);
示例已编译验证
/* XRT_API bool xrtDynamicFieldsTrim(xrtdynamicfields* pFields); */ result = xrtDynamicFieldsTrim();
xrtDynamicFieldsHas
查询字段;Get 返回只读借用,GetRef 保留同一 Value,Copy 深复制完整图。
| 参数 | 说明 |
|---|---|
| const xrtdynamicfields* pFields | 字段数组 |
| xstrview Name | 名称(xstrview) |
示例已编译验证
/* 查询字段;Get 返回只读借用,GetRef 保留同一 Value,Copy 深复制完整图。 */ result = xrtDynamicFieldsHas(pFields, Name);
xrtDynamicFieldsGet
XRT_API const xvalue* xrtDynamicFieldsGet( const xrtdynamicfields* pFields, xstrview Name );
示例已编译验证
/* XRT_API const xvalue* xrtDynamicFieldsGet( const xrtdynamicfields* pFields, xstrview Name ); */ result = xrtDynamicFieldsGet();
xrtDynamicFieldsGetRef
XRT_API xvalue* xrtDynamicFieldsGetRef( const xrtdynamicfields* pFields, xstrview Name );
示例已编译验证
/* XRT_API xvalue* xrtDynamicFieldsGetRef( const xrtdynamicfields* pFields, xstrview Name ); */ result = xrtDynamicFieldsGetRef();
xrtDynamicFieldsCopy
XRT_API xvalue* xrtDynamicFieldsCopy( const xrtdynamicfields* pFields, xstrview Name );
示例已编译验证
/* XRT_API xvalue* xrtDynamicFieldsCopy( const xrtdynamicfields* pFields, xstrview Name ); */ result = xrtDynamicFieldsCopy();
xrtDynamicFieldsStoredName
XRT_API bool xrtDynamicFieldsStoredName( const xrtdynamicfields* pFields, xstrview Name, xstrview* pStoredName );
示例已编译验证
/* XRT_API bool xrtDynamicFieldsStoredName( const xrtdynamicfields* pFields, xstrview Name, xstrview* pStoredName ); */ result = xrtDynamicFieldsStoredName();
xrtDynamicFieldsSet
三种写入都隔离完整 Value 图;Take 成功移交来源,New 总是消费临时值。
| 参数 | 说明 |
|---|---|
| xrtdynamicfields* pFields | 字段数组 |
| xstrview Name | 名称(xstrview) |
| const xvalue* pValue | 值 |
示例已编译验证
/* 三种写入都隔离完整 Value 图;Take 成功移交来源,New 总是消费临时值。 */ result = xrtDynamicFieldsSet(pFields, Name, pValue);
xrtDynamicFieldsSetTake
XRT_API bool xrtDynamicFieldsSetTake( xrtdynamicfields* pFields, xstrview Name, xvalue** ppValue );
示例已编译验证
/* XRT_API bool xrtDynamicFieldsSetTake( xrtdynamicfields* pFields, xstrview Name, xvalue** ppValue ); */ result = xrtDynamicFieldsSetTake();
xrtDynamicFieldsSetNew
XRT_API bool xrtDynamicFieldsSetNew( xrtdynamicfields* pFields, xstrview Name, xvalue* pValue );
示例已编译验证
/* XRT_API bool xrtDynamicFieldsSetNew( xrtdynamicfields* pFields, xstrview Name, xvalue* pValue ); */ result = xrtDynamicFieldsSetNew();
xrtDynamicFieldsSetRef
Ref 写入保留同一 Value 身份,供语言对象和显式共享图使用。
| 参数 | 说明 |
|---|---|
| xrtdynamicfields* pFields | 字段数组 |
| xstrview Name | 名称(xstrview) |
| const xvalue* pValue | 值 |
示例已编译验证
/* Ref 写入保留同一 Value 身份,供语言对象和显式共享图使用。 */ result = xrtDynamicFieldsSetRef(pFields, Name, pValue);
xrtDynamicFieldsSetRefTake
XRT_API bool xrtDynamicFieldsSetRefTake( xrtdynamicfields* pFields, xstrview Name, xvalue** ppValue );
示例已编译验证
/* XRT_API bool xrtDynamicFieldsSetRefTake( xrtdynamicfields* pFields, xstrview Name, xvalue** ppValue ); */ result = xrtDynamicFieldsSetRefTake();
xrtDynamicFieldsSetRefNew
XRT_API bool xrtDynamicFieldsSetRefNew( xrtdynamicfields* pFields, xstrview Name, xvalue* pValue );
示例已编译验证
/* XRT_API bool xrtDynamicFieldsSetRefNew( xrtdynamicfields* pFields, xstrview Name, xvalue* pValue ); */ result = xrtDynamicFieldsSetRefNew();
xrtDynamicFieldsRemove
删除并释放字段,或把字段值移交给调用方。
| 参数 | 说明 |
|---|---|
| xrtdynamicfields* pFields | 字段数组 |
| xstrview Name | 名称(xstrview) |
示例已编译验证
/* 删除并释放字段,或把字段值移交给调用方。 */ result = xrtDynamicFieldsRemove(pFields, Name);
xrtDynamicFieldsTake
XRT_API xvalue* xrtDynamicFieldsTake( xrtdynamicfields* pFields, xstrview Name );
示例已编译验证
/* XRT_API xvalue* xrtDynamicFieldsTake( xrtdynamicfields* pFields, xstrview Name ); */ result = xrtDynamicFieldsTake();
xrtDynamicFieldsIterBegin
按稳定插入顺序或逆序迭代借用名称和值;启动函数负责初始化迭代器。
| 参数 | 说明 |
|---|---|
| xrtdynamicfields* pFields | 字段数组 |
| xrtdynamicfielditer* pIterator | 迭代器 |
示例已编译验证
/* 按稳定插入顺序或逆序迭代借用名称和值;启动函数负责初始化迭代器。 */ result = xrtDynamicFieldsIterBegin(pFields, pIterator);
xrtDynamicFieldsIterRBegin
XRT_API bool xrtDynamicFieldsIterRBegin( xrtdynamicfields* pFields, xrtdynamicfielditer* pIterator );
示例已编译验证
/* XRT_API bool xrtDynamicFieldsIterRBegin( xrtdynamicfields* pFields, xrtdynamicfielditer* pIterator ); */ result = xrtDynamicFieldsIterRBegin();
xrtDynamicFieldsIterNext
XRT_API const xvalue* xrtDynamicFieldsIterNext( xrtdynamicfielditer* pIterator, xstrview* pName );
示例已编译验证
/* XRT_API const xvalue* xrtDynamicFieldsIterNext( xrtdynamicfielditer* pIterator, xstrview* pName ); */ result = xrtDynamicFieldsIterNext();
xrtDynamicFieldsIterEnd
XRT_API void xrtDynamicFieldsIterEnd(xrtdynamicfielditer* pIterator);
示例已编译验证
/* XRT_API void xrtDynamicFieldsIterEnd(xrtdynamicfielditer* pIterator); */ result = xrtDynamicFieldsIterEnd();
xrtDynamicFieldsMerge
事务合并或深复制动态字段对象。
| 参数 | 说明 |
|---|---|
| xrtdynamicfields* pTarget | 目标 |
| const xrtdynamicfields* pSource | 来源 |
| bool bReplace | 是否替换 |
示例已编译验证
/* 事务合并或深复制动态字段对象。 */ result = xrtDynamicFieldsMerge(pTarget, pSource, bReplace);
xrtDynamicFieldsClone
XRT_API xrtdynamicfields* xrtDynamicFieldsClone( const xrtdynamicfields* pFields );
示例已编译验证
/* XRT_API xrtdynamicfields* xrtDynamicFieldsClone( const xrtdynamicfields* pFields ); */ result = xrtDynamicFieldsClone();
xrtDynamicFieldsKeys
构造便于语言绑定使用的名称、值、二元项数组和独立 Object。
| 参数 | 说明 |
|---|---|
| const xrtdynamicfields* pFields | 字段数组 |
示例已编译验证
/* 构造便于语言绑定使用的名称、值、二元项数组和独立 Object。 */ result = xrtDynamicFieldsKeys(pFields);
xrtDynamicFieldsValues
XRT_API xvalue* xrtDynamicFieldsValues(const xrtdynamicfields* pFields);
示例已编译验证
/* XRT_API xvalue* xrtDynamicFieldsValues(const xrtdynamicfields* pFields); */ result = xrtDynamicFieldsValues();
xrtDynamicFieldsItems
XRT_API xvalue* xrtDynamicFieldsItems(const xrtdynamicfields* pFields);
示例已编译验证
/* XRT_API xvalue* xrtDynamicFieldsItems(const xrtdynamicfields* pFields); */ result = xrtDynamicFieldsItems();
xrtDynamicFieldsToValue
XRT_API xvalue* xrtDynamicFieldsToValue(const xrtdynamicfields* pFields);
示例已编译验证
/* XRT_API xvalue* xrtDynamicFieldsToValue(const xrtdynamicfields* pFields); */ result = xrtDynamicFieldsToValue();
xrtDynamicFieldsFromValue
从 Value Object 深复制名称和值并创建独立动态字段对象。
| 参数 | 说明 |
|---|---|
| const xvalue* pValue | 值 |
示例已编译验证
/* 从 Value Object 深复制名称和值并创建独立动态字段对象。 */ result = xrtDynamicFieldsFromValue(pValue);