openharmony 鸿蒙 changelogs-dsoftbus

2023-02-03 浏览 (597)

DSoftBus Subsystem ChangeLog

IPC&RPC APIs support the exception handling mode and the selection of synchronous or asynchronous message sending by passing a Boolean value or a numeric value.

  1. Some IPC&RPC APIs of DSoftBus use service logic return values to indicate the error information, which does not comply with the API error code specifications of OpenHarmony.
  2. A Boolean value can be passed to specify the mode of sending information as asynchronous or synchronous.

Change Impacts

This version is compatible with earlier versions and no adaptation is required. Newly added APIs can be called to support the following changes:

  1. Supports exception handling and return of error codes.
  2. Supports selection of synchronous or asynchronous message sending by passing a Boolean value or by passing 0 or a non-0 number.

Key API/Component Changes

For adaptation to the unified API exception handling mode, related IPC&RPC APIs are deprecated, and corresponding new APIs and methods are added. The newly added APIs support unified error code handling specifications and function the same as the original APIs.

ClassDeprecated APINew ClassNew API
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[]

Adaptation Guide

The newly added APIs return error codes and corresponding error information by throwing exceptions. Take the create API in MessageParcel as an example. The sample code is as follows:

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);
}

For details about sample code of more APIs, see RPC API reference.

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Account Subsystem ChangeLog

harmony 鸿蒙ChangeLog of JS API Changes in the Multimedia Subsystem

harmony 鸿蒙Device Manager ChangeLog

harmony 鸿蒙USB Manager ChangeLog

harmony 鸿蒙File Management Subsystem ChangeLog

harmony 鸿蒙Globalization Subsystem ChangeLog

harmony 鸿蒙Input Method Framework ChangeLog

harmony 鸿蒙Multimodal Input ChangeLog

harmony 鸿蒙Power Subsystem ChangeLog

harmony 鸿蒙Upload and Download Subsystem ChangeLog

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