xrtTypeFieldsValidate

验证本类型及完整继承链中的字段名称、布局、类型和标志。

bool xrtTypeFieldsValidate(const xrttype* pType);
参数说明
const xrttype* pType类型
返回:验证本类型及完整继承链中的字段名称、布局、类型和标志。

示例已编译验证

/* 验证本类型及完整继承链中的字段名称、布局、类型和标志。 */
result = xrtTypeFieldsValidate(pType);

xrtTypeFieldCount

返回包含继承字段的总数;字段顺序始终是基类在前、派生类在后。

size_t xrtTypeFieldCount(const xrttype* pType);
参数说明
const xrttype* pType类型
返回:返回包含继承字段的总数;字段顺序始终是基类在前、派生类在后。

示例已编译验证

/* 返回包含继承字段的总数;字段顺序始终是基类在前、派生类在后。 */
result = xrtTypeFieldCount(pType);

xrtTypeField

按基类优先的稳定下标返回借用字段,越界时设置范围错误。

const xrtfielddesc* xrtTypeField( const xrttype* pType, size_t iIndex );
参数说明
const xrttype* pType类型
size_t iIndex下标
返回:按基类优先的稳定下标返回借用字段,越界时设置范围错误。

示例已编译验证

/* 按基类优先的稳定下标返回借用字段,越界时设置范围错误。 */
result = xrtTypeField(pType, iIndex);

xrtTypeFindField

沿当前类型和基类按精确名称查找借用字段;未找到不设置错误。

const xrtfielddesc* xrtTypeFindField( const xrttype* pType, xstrview Name );
参数说明
const xrttype* pType类型
xstrview Name名称(xstrview)
返回:沿当前类型和基类按精确名称查找借用字段;未找到不设置错误。

示例已编译验证

/* 沿当前类型和基类按精确名称查找借用字段;未找到不设置错误。 */
result = xrtTypeFindField(pType, Name);

xrtTypeFieldOwner

返回字段在给定类型继承链中的声明类型。

const xrttype* xrtTypeFieldOwner( const xrttype* pType, const xrtfielddesc* pField );
参数说明
const xrttype* pType类型
const xrtfielddesc* pField字段
返回:返回字段在给定类型继承链中的声明类型。

示例已编译验证

/* 返回字段在给定类型继承链中的声明类型。 */
result = xrtTypeFieldOwner(pType, pField);

xrtFieldConstData

返回实例中的借用字段地址;描述必须属于给定类型的继承链。

const void* xrtFieldConstData( const xrttype* pType, const xrtfielddesc* pField, const void* pInstance );
参数说明
const xrttype* pType类型
const xrtfielddesc* pField字段
const void* pInstanceInstance 参数
返回:返回实例中的借用字段地址;描述必须属于给定类型的继承链。

示例已编译验证

/* 返回实例中的借用字段地址;描述必须属于给定类型的继承链。 */
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 );

示例已编译验证

/* XRT_API ptr xrtFieldData( const xrttype* pType, const xrtfielddesc* pField, ptr pInstance ); */
result = xrtFieldData();

xrtDynamicFieldsType

返回进程期稳定的 xrt.DynamicFields 运行时类型。

const xrttype* xrtDynamicFieldsType(void);
返回:返回进程期稳定的 xrt.DynamicFields 运行时类型。

示例已编译验证

/* 返回进程期稳定的 xrt.DynamicFields 运行时类型。 */
result = xrtDynamicFieldsType();

xrtDynamicFieldsCreate

创建、保留和释放动态字段对象。

xrtdynamicfields* xrtDynamicFieldsCreate(void);
返回:创建、保留和释放动态字段对象。

示例已编译验证

/* 创建、保留和释放动态字段对象。 */
xhandle* h = xrtDynamicFieldsCreate();

xrtDynamicFieldsRef

XRT_API xrtdynamicfields* xrtDynamicFieldsRef(xrtdynamicfields* pFields);

;
返回: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);

示例已编译验证

/* XRT_API void xrtDynamicFieldsUnref(xrtdynamicfields* pFields); */
result = xrtDynamicFieldsUnref();

xrtDynamicFieldsCount

返回字段数量、容量,并管理字段表存储。

size_t xrtDynamicFieldsCount(const xrtdynamicfields* pFields);
参数说明
const xrtdynamicfields* pFields字段数组
返回:返回字段数量、容量,并管理字段表存储。

示例已编译验证

/* 返回字段数量、容量,并管理字段表存储。 */
result = xrtDynamicFieldsCount(pFields);

xrtDynamicFieldsCapacity

XRT_API size_t xrtDynamicFieldsCapacity(const xrtdynamicfields* pFields);

;
返回: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);

示例已编译验证

/* 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 );

示例已编译验证

/* XRT_API bool xrtDynamicFieldsReserve( xrtdynamicfields* pFields, size_t iCapacity ); */
result = xrtDynamicFieldsReserve();

xrtDynamicFieldsTrim

XRT_API bool xrtDynamicFieldsTrim(xrtdynamicfields* pFields);

;
返回:XRT_API bool xrtDynamicFieldsTrim(xrtdynamicfields* pFields);

示例已编译验证

/* XRT_API bool xrtDynamicFieldsTrim(xrtdynamicfields* pFields); */
result = xrtDynamicFieldsTrim();

xrtDynamicFieldsHas

查询字段;Get 返回只读借用,GetRef 保留同一 Value,Copy 深复制完整图。

bool xrtDynamicFieldsHas( const xrtdynamicfields* pFields, xstrview Name );
参数说明
const xrtdynamicfields* pFields字段数组
xstrview Name名称(xstrview)
返回:查询字段;Get 返回只读借用,GetRef 保留同一 Value,Copy 深复制完整图。

示例已编译验证

/* 查询字段;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 );

示例已编译验证

/* 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 );

示例已编译验证

/* 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 );

示例已编译验证

/* 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 );

示例已编译验证

/* XRT_API bool xrtDynamicFieldsStoredName( const xrtdynamicfields* pFields, xstrview Name, xstrview* pStoredName ); */
result = xrtDynamicFieldsStoredName();

xrtDynamicFieldsSet

三种写入都隔离完整 Value 图;Take 成功移交来源,New 总是消费临时值。

bool xrtDynamicFieldsSet( xrtdynamicfields* pFields, xstrview Name, const xvalue* pValue );
参数说明
xrtdynamicfields* pFields字段数组
xstrview Name名称(xstrview)
const xvalue* pValue值
返回:三种写入都隔离完整 Value 图;Take 成功移交来源,New 总是消费临时值。

示例已编译验证

/* 三种写入都隔离完整 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 );

示例已编译验证

/* 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 );

示例已编译验证

/* XRT_API bool xrtDynamicFieldsSetNew( xrtdynamicfields* pFields, xstrview Name, xvalue* pValue ); */
result = xrtDynamicFieldsSetNew();

xrtDynamicFieldsSetRef

Ref 写入保留同一 Value 身份,供语言对象和显式共享图使用。

bool xrtDynamicFieldsSetRef( xrtdynamicfields* pFields, xstrview Name, const xvalue* pValue );
参数说明
xrtdynamicfields* pFields字段数组
xstrview Name名称(xstrview)
const xvalue* pValue值
返回:Ref 写入保留同一 Value 身份,供语言对象和显式共享图使用。

示例已编译验证

/* 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 );

示例已编译验证

/* 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 );

示例已编译验证

/* XRT_API bool xrtDynamicFieldsSetRefNew( xrtdynamicfields* pFields, xstrview Name, xvalue* pValue ); */
result = xrtDynamicFieldsSetRefNew();

xrtDynamicFieldsRemove

删除并释放字段,或把字段值移交给调用方。

bool xrtDynamicFieldsRemove( xrtdynamicfields* pFields, xstrview Name );
参数说明
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 );

示例已编译验证

/* XRT_API xvalue* xrtDynamicFieldsTake( xrtdynamicfields* pFields, xstrview Name ); */
result = xrtDynamicFieldsTake();

xrtDynamicFieldsIterBegin

按稳定插入顺序或逆序迭代借用名称和值;启动函数负责初始化迭代器。

bool xrtDynamicFieldsIterBegin( xrtdynamicfields* pFields, xrtdynamicfielditer* pIterator );
参数说明
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 );

示例已编译验证

/* 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 );

示例已编译验证

/* XRT_API const xvalue* xrtDynamicFieldsIterNext( xrtdynamicfielditer* pIterator, xstrview* pName ); */
result = xrtDynamicFieldsIterNext();

xrtDynamicFieldsIterEnd

XRT_API void xrtDynamicFieldsIterEnd(xrtdynamicfielditer* pIterator);

;
返回:XRT_API void xrtDynamicFieldsIterEnd(xrtdynamicfielditer* pIterator);

示例已编译验证

/* XRT_API void xrtDynamicFieldsIterEnd(xrtdynamicfielditer* pIterator); */
result = xrtDynamicFieldsIterEnd();

xrtDynamicFieldsMerge

事务合并或深复制动态字段对象。

bool xrtDynamicFieldsMerge( xrtdynamicfields* pTarget, const xrtdynamicfields* pSource, bool bReplace );
参数说明
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 );

示例已编译验证

/* XRT_API xrtdynamicfields* xrtDynamicFieldsClone( const xrtdynamicfields* pFields ); */
result = xrtDynamicFieldsClone();

xrtDynamicFieldsKeys

构造便于语言绑定使用的名称、值、二元项数组和独立 Object。

xvalue* xrtDynamicFieldsKeys(const xrtdynamicfields* pFields);
参数说明
const xrtdynamicfields* pFields字段数组
返回:构造便于语言绑定使用的名称、值、二元项数组和独立 Object。

示例已编译验证

/* 构造便于语言绑定使用的名称、值、二元项数组和独立 Object。 */
result = xrtDynamicFieldsKeys(pFields);

xrtDynamicFieldsValues

XRT_API xvalue* xrtDynamicFieldsValues(const xrtdynamicfields* pFields);

;
返回: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);

示例已编译验证

/* XRT_API xvalue* xrtDynamicFieldsItems(const xrtdynamicfields* pFields); */
result = xrtDynamicFieldsItems();

xrtDynamicFieldsToValue

XRT_API xvalue* xrtDynamicFieldsToValue(const xrtdynamicfields* pFields);

;
返回:XRT_API xvalue* xrtDynamicFieldsToValue(const xrtdynamicfields* pFields);

示例已编译验证

/* XRT_API xvalue* xrtDynamicFieldsToValue(const xrtdynamicfields* pFields); */
result = xrtDynamicFieldsToValue();

xrtDynamicFieldsFromValue

从 Value Object 深复制名称和值并创建独立动态字段对象。

xrtdynamicfields* xrtDynamicFieldsFromValue(const xvalue* pValue);
参数说明
const xvalue* pValue值
返回:从 Value Object 深复制名称和值并创建独立动态字段对象。

示例已编译验证

/* 从 Value Object 深复制名称和值并创建独立动态字段对象。 */
result = xrtDynamicFieldsFromValue(pValue);