xrtTypeId
按规范 ABI 名生成稳定的非零类型 ID。
| 参数 | 说明 |
|---|---|
| xstrview AbiName | ABI 名称 |
示例已编译验证
/* 按规范 ABI 名生成稳定的非零类型 ID。 */ result = xrtTypeId(AbiName);
xrtFunctionSigId
按调用形态生成稳定签名 ID;所有非空参数名都参与身份。
| 参数 | 说明 |
|---|---|
| const xrtfunctionsig* pSignature | 签名 |
示例已编译验证
/* 按调用形态生成稳定签名 ID;所有非空参数名都参与身份。 */ result = xrtFunctionSigId(pSignature);
xrtFunctionSigValidate
检查参数、返回值、标志、名称唯一性和显式签名 ID 是否自洽。
| 参数 | 说明 |
|---|---|
| const xrtfunctionsig* pSignature | 签名 |
示例已编译验证
/* 检查参数、返回值、标志、名称唯一性和显式签名 ID 是否自洽。 */ result = xrtFunctionSigValidate(pSignature);
xrtTypeValidate
检查类型 ID、结构、生命周期标志和完整继承链是否自洽。
| 参数 | 说明 |
|---|---|
| const xrttype* pType | 类型 |
示例已编译验证
/* 检查类型 ID、结构、生命周期标志和完整继承链是否自洽。 */ result = xrtTypeValidate(pType);
xrtTypeSame
类型相等以稳定 ID 和 ABI 名共同判断,指针相同是快速路径。
| 参数 | 说明 |
|---|---|
| const xrttype* pLeft | 左操作数 |
| const xrttype* pRight | 右操作数 |
示例已编译验证
/* 类型相等以稳定 ID 和 ABI 名共同判断,指针相同是快速路径。 */ result = xrtTypeSame(pLeft, pRight);
xrtTypeIsA
判断类型是否等于目标类型或从目标类型派生。
| 参数 | 说明 |
|---|---|
| const xrttype* pType | 类型 |
| const xrttype* pTarget | 目标 |
示例已编译验证
/* 判断类型是否等于目标类型或从目标类型派生。 */ result = xrtTypeIsA(pType, pTarget);
xrtTypeIsCopyable
查询类型值是否支持复制、字节重定位、比较或散列。
| 参数 | 说明 |
|---|---|
| const xrttype* pType | 类型 |
示例已编译验证
/* 查询类型值是否支持复制、字节重定位、比较或散列。 */ result = xrtTypeIsCopyable(pType);
xrtTypeIsRelocatable
XRT_API bool xrtTypeIsRelocatable(const xrttype* pType);
示例已编译验证
/* XRT_API bool xrtTypeIsRelocatable(const xrttype* pType); */ result = xrtTypeIsRelocatable();
xrtTypeIsComparable
XRT_API bool xrtTypeIsComparable(const xrttype* pType);
示例已编译验证
/* XRT_API bool xrtTypeIsComparable(const xrttype* pType); */ result = xrtTypeIsComparable();
xrtTypeIsHashable
XRT_API bool xrtTypeIsHashable(const xrttype* pType);
示例已编译验证
/* XRT_API bool xrtTypeIsHashable(const xrttype* pType); */ result = xrtTypeIsHashable();
xrtTypeArgument
返回指定下标的泛型参数,越界返回空并设置范围错误。
| 参数 | 说明 |
|---|---|
| const xrttype* pType | 类型 |
| size_t iIndex | 下标 |
示例已编译验证
/* 返回指定下标的泛型参数,越界返回空并设置范围错误。 */ result = xrtTypeArgument(pType, iIndex);
xrtTypeFindMethod
沿当前类型和基类查找方法;签名 ID 为零时返回首个同名重载。
| 参数 | 说明 |
|---|---|
| const xrttype* pType | 类型 |
| xstrview Name | 名称(xstrview) |
| uint64 iSignatureId | SgnatureId 参数 |
示例已编译验证
/* 沿当前类型和基类查找方法;签名 ID 为零时返回首个同名重载。 */ result = xrtTypeFindMethod(pType, Name, iSignatureId);
xrtTypeInitValue
使用类型操作初始化、复制、移动、销毁或克隆一个 Size 字节值。
| 参数 | 说明 |
|---|---|
| const xrttype* pType | 类型 |
| ptr pValue | 值 |
示例已编译验证
typeinitvalue obj; xrtTypeInitValue(&obj, pType, pValue);
xrtTypeCopyValue
XRT_API bool xrtTypeCopyValue( const xrttype* pType, ptr pTarget, const void* pSource );
示例已编译验证
/* XRT_API bool xrtTypeCopyValue( const xrttype* pType, ptr pTarget, const void* pSource ); */ result = xrtTypeCopyValue();
xrtTypeMoveValue
XRT_API bool xrtTypeMoveValue( const xrttype* pType, ptr pTarget, ptr pSource );
示例已编译验证
/* XRT_API bool xrtTypeMoveValue( const xrttype* pType, ptr pTarget, ptr pSource ); */ result = xrtTypeMoveValue();
xrtTypeDropValue
XRT_API void xrtTypeDropValue(const xrttype* pType, ptr pValue);
示例已编译验证
/* XRT_API void xrtTypeDropValue(const xrttype* pType, ptr pValue); */ result = xrtTypeDropValue();
xrtTypeCloneValue
XRT_API bool xrtTypeCloneValue( const xrttype* pType, ptr pTarget, const void* pSource );
示例已编译验证
/* XRT_API bool xrtTypeCloneValue( const xrttype* pType, ptr pTarget, const void* pSource ); */ result = xrtTypeCloneValue();
xrtTypeTraceValue
枚举值直接持有的全部强对象引用;每一个所有权槽位必须访问一次。
| 参数 | 说明 |
|---|---|
| const xrttype* pType | 类型 |
| const void* pValue | 值 |
| xrtobjectvisitor pVisit | 访问回调 |
| ptr pContext | 上下文 |
示例已编译验证
/* 枚举值直接持有的全部强对象引用;每一个所有权槽位必须访问一次。 */ result = xrtTypeTraceValue(pType, pValue, pVisit, pContext);
xrtTypeInitInstance
初始化、销毁或追踪引用对象的堆实例负载。
| 参数 | 说明 |
|---|---|
| const xrttype* pType | 类型 |
| ptr pInstance | Instance 参数 |
示例已编译验证
typeinitinstance obj; xrtTypeInitInstance(&obj, pType, pInstance);
xrtTypeDropInstance
XRT_API void xrtTypeDropInstance(const xrttype* pType, ptr pInstance);
示例已编译验证
/* XRT_API void xrtTypeDropInstance(const xrttype* pType, ptr pInstance); */ result = xrtTypeDropInstance();
xrtTypeTraceInstance
XRT_API bool xrtTypeTraceInstance( const xrttype* pType, const void* pInstance, xrtobjectvisitor pVisit, ptr pContext );
示例已编译验证
/* XRT_API bool xrtTypeTraceInstance( const xrttype* pType, const void* pInstance, xrtobjectvisitor pVisit, ptr pContext ); */ result = xrtTypeTraceInstance();
xrtTypeCompareValue
使用类型操作比较或散列一个值;成功才写入输出。
| 参数 | 说明 |
|---|---|
| const xrttype* pType | 类型 |
| const void* pLeft | 左操作数 |
| const void* pRight | 右操作数 |
| int* pResult | 出:结果 |
示例已编译验证
/* 使用类型操作比较或散列一个值;成功才写入输出。 */ result = xrtTypeCompareValue(pType, pLeft, pRight, pResult);
xrtTypeHashValue
XRT_API bool xrtTypeHashValue( const xrttype* pType, const void* pValue, uint64* pHash );
示例已编译验证
/* XRT_API bool xrtTypeHashValue( const xrttype* pType, const void* pValue, uint64* pHash ); */ result = xrtTypeHashValue();
xrtTypeRegistryCreate
注册表只借用唯一且不可变的描述指针;除销毁外允许并发调用。
示例已编译验证
/* 注册表只借用唯一且不可变的描述指针;除销毁外允许并发调用。 */ xhandle* h = xrtTypeRegistryCreate();
xrtTypeRegistryDestroy
XRT_API void xrtTypeRegistryDestroy(xrttyperegistry* pRegistry);
示例已编译验证
xrtTypeRegistryDestroy(obj);
xrtTypeRegistryAdd
XRT_API bool xrtTypeRegistryAdd( xrttyperegistry* pRegistry, const xrttype* pType );
示例已编译验证
/* XRT_API bool xrtTypeRegistryAdd( xrttyperegistry* pRegistry, const xrttype* pType ); */ result = xrtTypeRegistryAdd();
xrtTypeRegistryRemove
XRT_API bool xrtTypeRegistryRemove( xrttyperegistry* pRegistry, const xrttype* pType );
示例已编译验证
/* XRT_API bool xrtTypeRegistryRemove( xrttyperegistry* pRegistry, const xrttype* pType ); */ result = xrtTypeRegistryRemove();
xrtTypeRegistryCount
XRT_API size_t xrtTypeRegistryCount(const xrttyperegistry* pRegistry);
示例已编译验证
/* XRT_API size_t xrtTypeRegistryCount(const xrttyperegistry* pRegistry); */ result = xrtTypeRegistryCount();
xrtTypeRegistryAt
按稳定类型 ID 顺序返回指定位置的借用描述;并发修改时下标只代表本次调用快照。
| 参数 | 说明 |
|---|---|
| const xrttyperegistry* pRegistry | Regstry 参数 |
| size_t iIndex | 下标 |
示例已编译验证
/* 按稳定类型 ID 顺序返回指定位置的借用描述;并发修改时下标只代表本次调用快照。 */ result = xrtTypeRegistryAt(pRegistry, iIndex);
xrtTypeRegistryFindId
XRT_API const xrttype* xrtTypeRegistryFindId( const xrttyperegistry* pRegistry, uint64 iTypeId );
示例已编译验证
/* XRT_API const xrttype* xrtTypeRegistryFindId( const xrttyperegistry* pRegistry, uint64 iTypeId ); */ result = xrtTypeRegistryFindId();
xrtTypeRegistryFindName
XRT_API const xrttype* xrtTypeRegistryFindName( const xrttyperegistry* pRegistry, xstrview AbiName );
示例已编译验证
/* XRT_API const xrttype* xrtTypeRegistryFindName( const xrttyperegistry* pRegistry, xstrview AbiName ); */ result = xrtTypeRegistryFindName();
xrtProtocolValidate
验证协议类型、要求和重载身份完整且唯一。
| 参数 | 说明 |
|---|---|
| const xrtprotocol* pProtocol | 协议名 |
示例已编译验证
/* 验证协议类型、要求和重载身份完整且唯一。 */ result = xrtProtocolValidate(pProtocol);
xrtProtocolWitnessValidate
验证协议见证表完整且每个要求只实现一次。
| 参数 | 说明 |
|---|---|
| const xrtprotocolwitness* pWitness | Wtness 参数 |
示例已编译验证
/* 验证协议见证表完整且每个要求只实现一次。 */ result = xrtProtocolWitnessValidate(pWitness);
xrtProtocolWitnessFind
XRT_API const xrtprotocolentry* xrtProtocolWitnessFind( const xrtprotocolwitness* pWitness, xstrview Name, uint64 iSignatureId );
示例已编译验证
/* XRT_API const xrtprotocolentry* xrtProtocolWitnessFind( const xrtprotocolwitness* pWitness, xstrview Name, uint64 iSignatureId ); */ result = xrtProtocolWitnessFind();
xrtProtocolRegistryCreate
XRT_API xrtprotocolregistry* xrtProtocolRegistryCreate(void);
示例已编译验证
/* XRT_API xrtprotocolregistry* xrtProtocolRegistryCreate(void); */ xhandle* h = xrtProtocolRegistryCreate();
xrtProtocolRegistryDestroy
XRT_API void xrtProtocolRegistryDestroy(xrtprotocolregistry* pRegistry);
示例已编译验证
xrtProtocolRegistryDestroy(obj);
xrtProtocolRegistryAdd
XRT_API bool xrtProtocolRegistryAdd( xrtprotocolregistry* pRegistry, const xrtprotocolwitness* pWitness );
示例已编译验证
/* XRT_API bool xrtProtocolRegistryAdd( xrtprotocolregistry* pRegistry, const xrtprotocolwitness* pWitness ); */ result = xrtProtocolRegistryAdd();
xrtProtocolRegistryRemove
XRT_API bool xrtProtocolRegistryRemove( xrtprotocolregistry* pRegistry, const xrtprotocolwitness* pWitness );
示例已编译验证
/* XRT_API bool xrtProtocolRegistryRemove( xrtprotocolregistry* pRegistry, const xrtprotocolwitness* pWitness ); */ result = xrtProtocolRegistryRemove();
xrtProtocolRegistryFind
XRT_API const xrtprotocolwitness* xrtProtocolRegistryFind( const xrtprotocolregistry* pRegistry, uint64 iProtocolTypeId, uint64 iConcreteTypeId );
示例已编译验证
/* XRT_API const xrtprotocolwitness* xrtProtocolRegistryFind( const xrtprotocolregistry* pRegistry, uint64 iProtocolTypeId, uint64 iConcreteTypeId ); */ result = xrtProtocolRegistryFind();
xrtProtocolRegistryCount
XRT_API size_t xrtProtocolRegistryCount( const xrtprotocolregistry* pRegistry );
示例已编译验证
/* XRT_API size_t xrtProtocolRegistryCount( const xrtprotocolregistry* pRegistry ); */ result = xrtProtocolRegistryCount();
xrtProtocolRegistryAt
按协议类型 ID 和具体类型 ID 顺序返回借用见证;并发修改时下标只代表本次调用快照。
| 参数 | 说明 |
|---|---|
| const xrtprotocolregistry* pRegistry | Regstry 参数 |
| size_t iIndex | 下标 |
示例已编译验证
/* 按协议类型 ID 和具体类型 ID 顺序返回借用见证;并发修改时下标只代表本次调用快照。 */ result = xrtProtocolRegistryAt(pRegistry, iIndex);
xrtEnumValidate
验证枚举标签和名称唯一,并查询变体。
| 参数 | 说明 |
|---|---|
| const xrtenum* pEnum | 枚举 |
示例已编译验证
/* 验证枚举标签和名称唯一,并查询变体。 */ result = xrtEnumValidate(pEnum);
xrtEnumFindTag
XRT_API const xrtenumvariant* xrtEnumFindTag( const xrtenum* pEnum, int64 iTag );
示例已编译验证
/* XRT_API const xrtenumvariant* xrtEnumFindTag( const xrtenum* pEnum, int64 iTag ); */ result = xrtEnumFindTag();
xrtEnumFindName
XRT_API const xrtenumvariant* xrtEnumFindName( const xrtenum* pEnum, xstrview Name );
示例已编译验证
/* XRT_API const xrtenumvariant* xrtEnumFindName( const xrtenum* pEnum, xstrview Name ); */ result = xrtEnumFindName();
xrtTypeNull
XRT 内建标量类型描述在进程期保持稳定。
示例已编译验证
/* XRT 内建标量类型描述在进程期保持稳定。 */ result = xrtTypeNull();
xrtTypeBool
XRT_API const xrttype* xrtTypeBool(void);
示例已编译验证
/* XRT_API const xrttype* xrtTypeBool(void); */ result = xrtTypeBool();
xrtTypeBool32
XRT_API const xrttype* xrtTypeBool32(void);
示例已编译验证
/* XRT_API const xrttype* xrtTypeBool32(void); */ result = xrtTypeBool32();
xrtTypeInt8
XRT_API const xrttype* xrtTypeInt8(void);
示例已编译验证
/* XRT_API const xrttype* xrtTypeInt8(void); */ result = xrtTypeInt8();
xrtTypeUInt8
XRT_API const xrttype* xrtTypeUInt8(void);
示例已编译验证
/* XRT_API const xrttype* xrtTypeUInt8(void); */ result = xrtTypeUInt8();
xrtTypeInt16
XRT_API const xrttype* xrtTypeInt16(void);
示例已编译验证
/* XRT_API const xrttype* xrtTypeInt16(void); */ result = xrtTypeInt16();
xrtTypeUInt16
XRT_API const xrttype* xrtTypeUInt16(void);
示例已编译验证
/* XRT_API const xrttype* xrtTypeUInt16(void); */ result = xrtTypeUInt16();
xrtTypeInt32
XRT_API const xrttype* xrtTypeInt32(void);
示例已编译验证
/* XRT_API const xrttype* xrtTypeInt32(void); */ result = xrtTypeInt32();
xrtTypeUInt32
XRT_API const xrttype* xrtTypeUInt32(void);
示例已编译验证
/* XRT_API const xrttype* xrtTypeUInt32(void); */ result = xrtTypeUInt32();
xrtTypeInt64
XRT_API const xrttype* xrtTypeInt64(void);
示例已编译验证
/* XRT_API const xrttype* xrtTypeInt64(void); */ result = xrtTypeInt64();
xrtTypeUInt64
XRT_API const xrttype* xrtTypeUInt64(void);
示例已编译验证
/* XRT_API const xrttype* xrtTypeUInt64(void); */ result = xrtTypeUInt64();
xrtTypeFloat32
XRT_API const xrttype* xrtTypeFloat32(void);
示例已编译验证
/* XRT_API const xrttype* xrtTypeFloat32(void); */ result = xrtTypeFloat32();
xrtTypeFloat64
XRT_API const xrttype* xrtTypeFloat64(void);
示例已编译验证
/* XRT_API const xrttype* xrtTypeFloat64(void); */ result = xrtTypeFloat64();
xrtTypeTime
XRT_API const xrttype* xrtTypeTime(void);
示例已编译验证
/* XRT_API const xrttype* xrtTypeTime(void); */ result = xrtTypeTime();
xrtTypePointer
XRT_API const xrttype* xrtTypePointer(void);
示例已编译验证
/* XRT_API const xrttype* xrtTypePointer(void); */ result = xrtTypePointer();
xrtTypeType
XRT_API const xrttype* xrtTypeType(void);
示例已编译验证
/* XRT_API const xrttype* xrtTypeType(void); */ result = xrtTypeType();