openharmony 鸿蒙 changelogs-dsoftbus

2022-12-22 浏览 (737)

软总线子系统Changelog

IPC&RPC API支持异常处理方式和支持传入布尔值与数值选择同步或异步方式发送信息变更

  1. 软总线IPC&RPC部分接口使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误规范;
  2. 支持传入布尔值选择同步或异步方式发送信息。

变更影响

此版本兼容之前的应用开发,不需要适配,后续可调用新增接口支持以下两个变更:

  1. 支持异常处理并返回错误码;
  2. 提供通过布尔值或通过0与非0数字选择同步或异步发消息。

关键接口/组件变更

为适配统一的API异常处理方式,对IPC&RPC相关接口进行废弃,并新增对应接口和方法。新增接口支持统一的错误码异常处理规范,功能上与原接口保持一致。

类名废弃接口新增替换类名新增替代接口
MessageParcelstatic create(): MessageParcelMessageSequencestatic create(): MessageSequence
MessageParcelreclaim(): voidMessageSequencereclaim(): void
MessageParcelwriteRemoteObject(object: IRemoteObject): booleanMessageSequencewriteRemoteObject(object: IRemoteObject): void
MessageParcelreadRemoteObject(): IRemoteObjectMessageSequencereadRemoteObject(): IRemoteObject
MessageParcelwriteInterfaceToken(token: string): booleanMessageSequencewriteInterfaceToken(token: string): void
MessageParcelreadInterfaceToken(): stringMessageSequencereadInterfaceToken(): string
MessageParcelgetSize(): numberMessageSequencegetSize(): number
MessageParcelgetCapacity(): numberMessageSequencegetCapacity(): number
MessageParcelsetSize(size: number): booleanMessageSequencesetCapacity(size: number): void
MessageParcelgetReadableBytes(): numberMessageSequencegetReadableBytes(): number
MessageParcelgetReadPosition(): numberMessageSequencegetReadPosition(): number
MessageParcelgetWritePosition(): numberMessageSequencegetWritePosition(): number
MessageParcelrewindRead(pos: number): booleanMessageSequencerewindRead(pos: number): void
MessageParcelrewindWrite(pos: number): booleanMessageSequencerewindWrite(pos: number): void
MessageParcelwriteNoException(): voidMessageSequencewriteNoException(): void
MessageParcelreadException(): voidMessageSequencereadException(): void
MessageParcelwriteByte(val: number): booleanMessageSequencewriteByte(val: number): void
MessageParcelwriteShort(val: number): booleanMessageSequencewriteShort(val: number): void
MessageParcelwriteInt(val: number): booleanMessageSequencewriteInt(val: number): void
MessageParcelwriteLong(val: number): booleanMessageSequencewriteLong(val: number): void
MessageParcelwriteFloat(val: number): booleanMessageSequencewriteFloat(val: number): void
MessageParcelwriteDouble(val: number): booleanMessageSequencewriteDouble(val: number): void
MessageParcelwriteBoolean(val: boolean): booleanMessageSequencewriteBoolean(val: boolean): void
MessageParcelwriteChar(val: number): booleanMessageSequencewriteChar(val: number): void
MessageParcelwriteString(val: string): booleanMessageSequencewriteString(val: string): void
MessageParcelwriteSequenceable(val: Sequenceable): booleanMessageSequencewriteParcelable(val: Parcelable): void
MessageParcelwriteByteArray(byteArray: number[]): booleanMessageSequencewriteByteArray(byteArray: number[]): void
MessageParcelwriteShortArray(shortArray: number[]): booleanMessageSequencewriteShortArray(shortArray: number[]): void
MessageParcelwriteIntArray(intArray: number[]): booleanMessageSequencewriteIntArray(intArray: number[]): void
MessageParcelwriteLongArray(longArray: number[]): booleanMessageSequencewriteLongArray(longArray: number[]): void
MessageParcelwriteFloatArray(floatArray: number[]): booleanMessageSequencewriteFloatArray(floatArray: number[]): void
MessageParcelwriteDoubleArray(doubleArray: number[]): booleanMessageSequencewriteDoubleArray(doubleArray: number[]): void
MessageParcelwriteBooleanArray(booleanArray: boolean[]): booleanMessageSequencewriteBooleanArray(booleanArray: boolean[]): void
MessageParcelwriteCharArray(charArray: number[]): booleanMessageSequencewriteCharArray(charArray: number[]): void
MessageParcelwriteStringArray(stringArray: string[]): booleanMessageSequencewriteStringArray(stringArray: string[]): void
MessageParcelwriteSequenceableArray(sequenceableArray: Sequenceable[]): booleanMessageSequencewriteParcelableArray(sequenceableArray: Parcelable[]): void
MessageParcelwriteRemoteObjectArray(objectArray: IRemoteObject[]): booleanMessageSequencewriteRemoteObjectArray(objectArray: IRemoteObject[]): void
MessageParcelreadByte(): numberMessageSequencereadByte(): number
MessageParcelreadShort(): numberMessageSequencereadShort(): number
MessageParcelreadLong(): numberMessageSequencereadLong(): number
MessageParcelreadFloat(): numberMessageSequencereadFloat(): number
MessageParcelreadDouble(): numberMessageSequencereadDouble(): number
MessageParcelreadBoolean(): booleanMessageSequencereadBoolean(): boolean
MessageParcelreadChar(): numberMessageSequencereadChar(): number
MessageParcelreadString(): stringMessageSequencereadString(): string
MessageParcelreadSequenceable(dataIn: Sequenceable) : booleanMessageSequencereadSequenceable(dataIn: Parcelable) : void
MessageParcelreadByteArray(dataIn: number[]) : voidMessageSequencereadByteArray(dataIn: number[]) : void
MessageParcelreadByteArray(): number[]MessageSequencereadByteArray(): number[]
MessageParcelreadShortArray(dataIn: number[]) : voidMessageSequencereadShortArray(dataIn: number[]) : void
MessageParcelreadShortArray(): number[]MessageSequencereadShortArray(): number[]
MessageParcelreadIntArray(dataIn: number[]) : voidMessageSequencereadIntArray(dataIn: number[]) : void
MessageParcelreadIntArray() : number[]MessageSequencereadIntArray() : number[]
MessageParcelreadLongArray(dataIn: number[]) : voidMessageSequencereadLongArray(dataIn: number[]) : void
MessageParcelreadLongArray(): number[]MessageSequencereadLongArray(): number[]
MessageParcelreadFloatArray(dataIn: number[]) : voidMessageSequencereadFloatArray(dataIn: number[]) : void
MessageParcelreadFloatArray(): number[]MessageSequencereadFloatArray(): number[]
MessageParcelreadDoubleArray(dataIn: number[]) : voidMessageSequencereadDoubleArray(dataIn: number[]) : void
MessageParcelreadDoubleArray(): number[]MessageSequencereadDoubleArray(): number[]
MessageParcelreadBooleanArray(dataIn: boolean[]) : voidMessageSequencereadBooleanArray(dataIn: boolean[]) : void
MessageParcelreadBooleanArray(): boolean[]MessageSequencereadBooleanArray(): boolean[]
MessageParcelreadCharArray(dataIn: number[]) : voidMessageSequencereadCharArray(dataIn: number[]) : void
MessageParcelreadCharArray(): number[]MessageSequencereadCharArray(): number[]
MessageParcelreadStringArray(dataIn: string[]) : voidMessageSequencereadStringArray(dataIn: string[]) : void
MessageParcelreadStringArray(): string[]MessageSequencereadStringArray(): string[]
MessageParcelreadSequenceableArray(sequenceableArray: Sequenceable[]): voidMessageSequencereadSequenceableArray(sequenceableArray: Parcelable[]): void
MessageParcelreadRemoteObjectArray(objects: IRemoteObject[]): voidMessageSequencereadRemoteObjectArray(objects: IRemoteObject[]): void
MessageParcelreadRemoteObjectArray(): IRemoteObject[]MessageSequencereadRemoteObjectArray(): IRemoteObject[]
MessageParcelstatic closeFileDescriptor(fd: number): voidMessageSequencestatic closeFileDescriptor(fd: number): void
MessageParcelstatic dupFileDescriptor(fd: number) :numberMessageSequencestatic dupFileDescriptor(fd: number) :number
MessageParcelcontainFileDescriptors(): booleanMessageSequencecontainFileDescriptors(): boolean
MessageParcelwriteFileDescriptor(fd: number): booleanMessageSequencewriteFileDescriptor(fd: number): void
MessageParcelreadFileDescriptor(): numberMessageSequencereadFileDescriptor(): number
MessageParcelwriteAshmem(ashmem: Ashmem): booleanMessageSequencewriteAshmem(ashmem: Ashmem): void
MessageParcelreadAshmem(): AshmemMessageSequencereadAshmem(): Ashmem
MessageParcelwriteRawData(rawData: number[], size: number): booleanMessageSequencewriteRawData(rawData: number[], size: number): void
MessageParcelreadRawData(size: number): number[]MessageSequencereadRawData(size: number): number[]
Sequenceablemarshalling(dataOut: MessageParcel): booleanParcelablemarshalling(dataOut: MessageSequence): boolean
Sequenceableunmarshalling(dataIn: MessageParcel) : booleanParcelableunmarshalling(dataIn: MessageSequence) : boolean
SendRequestResulterrCode: numberRequestResulterrCode: number
SendRequestResultcode: numberRequestResultcode: number
SendRequestResultdata: MessageParcelRequestResultdata: MessageSequence
SendRequestResultreply: MessageParcelRequestResultreply: MessageSequence
IRemoteObjectqueryLocalInterface(descriptor: string): IRemoteBrokerNAgetLocalInterface(descriptor: string): IRemoteBroker
IRemoteObjectgetInterfaceDescriptor(): stringNAgetDescriptor(): string
IRemoteObjectaddDeathRecipient(recipient: DeathRecipient, flags: number): booleanNAregisterDeathRecipient(recipient: DeathRecipient, flags: number): void
IRemoteObjectremoveDeathRecipient(recipient: DeathRecipient, flags: number): booleanNAunregisterDeathRecipient(recipient: DeathRecipient, flags: number): void
IRemoteObjectNANAsendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption): Promise
IRemoteObjectsendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption, callback: AsyncCallback): voidNAsendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption,callback: AsyncCallback): void
MessageOptionNANAisAsync(): boolean
MessageOptionNANAsetAsync(async: boolean): void
MessageOptionNANAconstructor(async?: boolean)
RemoteObjectqueryLocalInterface(descriptor: string): IRemoteBrokerNAgetLocalInterface(descriptor: string): IRemoteBroker
RemoteObjectattachLocalInterface(localInterface: IRemoteBroker, descriptor: string): voidNAmodifyLocalInterface(localInterface: IRemoteBroker, descriptor: string): void
RemoteObjectgetInterfaceDescriptor(): stringNAgetDescriptor(): string
RemoteObjectonRemoteRequestEx(code : number, data : MessageParcel, reply: MessageParcel, options : MessageOption): boolean | PromiseNAonRemoteMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption): boolean | Promise
RemoteObjectsendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): PromiseNAsendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption): Promise
RemoteObjectsendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption, callback: AsyncCallback): voidNAsendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption, callback: AsyncCallback): void
RemoteProxyqueryLocalInterface(interface: string): IRemoteBrokerNAgetLocalInterface(descriptor: string): IRemoteBroker
RemoteProxygetInterfaceDescriptor(): stringNAgetDescriptor(): string
RemoteProxyaddDeathRecipient(recipient: DeathRecipient, flags: number): booleanNAregisterDeathRecipient(recipient: DeathRecipient, flags: number): void
RemoteProxyremoveDeathRecipient(recipient: DeathRecipient, flags: number): booleanNAunregisterDeathRecipient(recipient: DeathRecipient, flags: number): void
RemoteProxyNANAsendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption): Promise
RemoteProxysendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption, callback: AsyncCallback): voidNAsendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption, callback: AsyncCallback): void
IPCSkeletonstatic flushCommands(object: IRemoteObject): numberNAstatic flushCmdBuffer(object: IRemoteObject): void
IPCSkeletonstatic setCallingIdentity(identity: string): booleanNAstatic restoreCallingIdentity(identity: string): void
Ashmemstatic createAshmem(name: string, size: number): AshmemNAstatic create(name: string, size: number): Ashmem
Ashmemstatic createAshmemFromExisting(ashmem: Ashmem): AshmemNAstatic create(ashmem: Ashmem): Ashmem
AshmemmapAshmem(mapType: number): booleanNAmapTypedAshmem(mapType: number): void
AshmemmapReadAndWriteAshmem(): booleanNAmapReadWriteAshmem(): void
AshmemmapReadOnlyAshmem(): booleanNAmapReadonlyAshmem(): void
AshmemsetProtection(protectionType: number): booleanNAsetProtectionType(protectionType: number): void
AshmemwriteToAshmem(buf: number[], size: number, offset: number): booleanNAwriteAshmem(buf: number[], size: number, offset: number): void
AshmemreadFromAshmem(size: number, offset: number): number[]NAreadAshmem(size: number, offset: number): number[]

适配指导

新增的接口以抛异常的方式返回错误码及对应的错误信息,以MessageParcel中的create接口为例,使用示例代码如下:

import rpc from '@ohos.rpc'

try {
    var data = rpc.MessageParcel.create();
    data.reclaim();
} catch (error) {
    console.info("create meassageParcel failed, errorCode = " + error.errCode);
    console.info("create meassageParcel failed, errorMessage = " + error.errorMessage);
}

更多接口的示例代码可参考RPC通信API文档

你可能感兴趣的鸿蒙文章

harmony 鸿蒙帐号子系统changeLog

harmony 鸿蒙媒体子系统JS API变更Changelog

harmony 鸿蒙设备管理changeLog

harmony 鸿蒙USB管理 changeLog

harmony 鸿蒙文件管理子系统ChangeLog

harmony 鸿蒙全球化子系统ChangeLog

harmony 鸿蒙输入法框架changeLog

harmony 鸿蒙多模输入changeLog

harmony 鸿蒙电源子系统ChangeLog

harmony 鸿蒙上传下载子系统ChangeLog

  • 所属分类: 后端技术
  • 本文标签: 鸿蒙 软件
  • 版权声明: 本文链接 https://seaxiang.com/blog/5b863e4a4e4a40c9961d3cda35974a15