From 40204e99ff0f35b91e145b32ea76ee86e727db55 Mon Sep 17 00:00:00 2001 From: liangshenglin1 Date: Wed, 20 Oct 2021 10:10:08 +0800 Subject: [PATCH] fixed c65bf52 from https://gitee.com/liangshenglin1/interface_sdk-js/pulls/141 update ipc d.ts Signed-off-by: liangshenglin1 --- api/@ohos.rpc.d.ts | 813 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 771 insertions(+), 42 deletions(-) diff --git a/api/@ohos.rpc.d.ts b/api/@ohos.rpc.d.ts index bb0340e7bb..12d1165fd8 100644 --- a/api/@ohos.rpc.d.ts +++ b/api/@ohos.rpc.d.ts @@ -13,109 +13,742 @@ * limitations under the License. */ +/** + * A data object used for remote procedure call (RPC). + *

+ * During RPC, the sender can use the write methods provided by {@link MessageParcel} to + * write the to-be-sent data into a {@link MessageParcel} object in a specific format, and the receiver can use the + * read methods provided by {@link MessageParcel} to read data of the specific format from the {@link MessageParcel} object. + *

+ *

+ * The default capacity of a {@link MessageParcel} instance is 200KB. If you want more or less, use {@link #setCapacity(int)} + * to change it. + *

+ * Note: Only data of the following data types can be written into or read from a {@link MessageParcel}: byte, + * byteArray, short, shortArray, int, intArray, long, longArray, float, floatArray, double, doubleArray, boolean, + * booleanArray, char, charArray, String, StringArray, {@link PlainBooleanArray}, {@link Serializable}, + * {@link Sequenceable}, and SequenceableArray. + * + * @since 7 + * @sysCap SystemCapability.RPC + * @devices phone, tablet, tv, wearable, car + * @import import rpc from '@ohos.rpc'; + */ + declare namespace rpc { class MessageParcel { + /** + * Creates an empty {@link MessageParcel} object with index 0. + * @sysCap SystemCapability.RPC_MessageParcel + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ static create(): MessageParcel; + + /** + * Clears data in the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ reclaim(): void; + + /** + * Serializes a remote object and writes it to the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ writeRemoteObject(object: IRemoteObject): boolean; + + /** + * Reads a remote object from {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ readRemoteObject(): IRemoteObject; + + /** + * Writes an interface token into the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns {@code true} if the interface token has been written into the {@link MessageParcel}; + * returns {@code false} otherwise. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ writeInterfaceToken(token: string): boolean; + + /** + * Reads an interface token from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns a string value. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ readInterfaceToken(): string; + + /** + * Obtains the size of data (in bytes) contained in the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns the size of data contained in the {@link MessageParcel} object. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ getSize(): number; + + /** + * Obtains the storage capacity (in bytes) of the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns the storage capacity of the {@link MessageParcel} object. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ getCapacity(): number; + + /** + * Sets the size of data (in bytes) contained in the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + *

{@code false} is returned if the data size set in this method is greater + * than the storage capacity of the {@link MessageParcel}. + * + * @param size Indicates the data size of the {@link MessageParcel} object. + * @return Returns {@code true} if the setting is successful; returns {@code false} otherwise. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ setSize(size: number): boolean; + + /** + * Sets the storage capacity (in bytes) of the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + *

{@code false} is returned if the capacity set in this method is less than + * the size of data contained in the {@link MessageParcel}. + * + * @param size Indicates the storage capacity of the {@link MessageParcel} object. + * @return Returns {@code true} if the setting is successful; returns {@code false} otherwise. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ setCapacity(size: number): boolean; + + /** + * Obtains the writable data space (in bytes) in the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + *

Writable data space = Storage capacity of the {@link MessageParcel} - Size of data contained in the {@link MessageParcel}. + * + * @return Returns the writable data space of the {@link MessageParcel} object. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ getWritableBytes(): number; + + /** + * Obtains the readable data space (in bytes) in the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + *

Readable data space = Size of data contained in the {@link MessageParcel} - Size of data that has been read. + * + * @return Returns the readable data space of the {@link MessageParcel} object. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ getReadableBytes(): number; + + /** + * Obtains the current read position in the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns the current read position in the {@link MessageParcel} object. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ getReadPosition(): number; + + /** + * Obtains the current write position in the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns the current write position in the {@link MessageParcel} object. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ getWritePosition(): number; + + /** + * Changes the current read position in the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + *

Generally, you are advised not to change the current read position. If you must + * change it, change it to an accurate position. Otherwise, the read data may be incorrect. + * + * @param pos Indicates the target position to start data reading. + * @return Returns {@code true} if the read position is changed; returns {@code false} otherwise. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ rewindRead(pos: number): boolean; + + /** + * Changes the current write position in the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + *

Generally, you are advised not to change the current write position. If you must + * change it, change it to an accurate position. Otherwise, the data to be read may be incorrect. + * + * @param pos Indicates the target position to start data writing. + * @return Returns {@code true} if the write position is changed; returns {@code false} otherwise. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ rewindWrite(pos: number): boolean; + + /** + * Writes a byte value into the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param val Indicates the byte value to write. + * @return Returns {@code true} if the value has been written into the {@link MessageParcel}; + * returns {@code false} otherwise. + * @throws ParcelException When capacity in this parcel is insufficient, + * exception message: {@link ParcelException#NO_CAPACITY_ERROR}. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ writeByte(val: number): boolean; + + /** + * Writes a short integer value into the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param val Indicates the short integer value to write. + * @return Returns {@code true} if the value has been written into the {@link MessageParcel}; + * returns {@code false} otherwise. + * @throws ParcelException When capacity in this parcel is insufficient, + * exception message: {@link ParcelException#NO_CAPACITY_ERROR}. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ writeShort(val: number): boolean; + + /** + * Writes an integer value into the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param val Indicates the integer value to write. + * @return Returns {@code true} if the value has been written into the {@link MessageParcel}; + * returns {@code false} otherwise. + * @throws ParcelException When capacity in this parcel is insufficient, + * exception message: {@link ParcelException#NO_CAPACITY_ERROR}. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ writeInt(val: number): boolean; + + /** + * Writes a long integer value into the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param val Indicates the long integer value to write. + * @return Returns {@code true} if the value has been written into the {@link MessageParcel}; + * returns {@code false} otherwise. + * @throws ParcelException When capacity in this parcel is insufficient, + * exception message: {@link ParcelException#NO_CAPACITY_ERROR}. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ writeLong(val: number): boolean; + + /** + * Writes a floating point value into the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param val Indicates the floating point value to write. + * @return Returns {@code true} if the value has been written into the {@link MessageParcel}; + * returns {@code false} otherwise. + * @throws ParcelException When capacity in this parcel is insufficient, + * exception message: {@link ParcelException#NO_CAPACITY_ERROR}. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ writeFloat(val: number): boolean; + + /** + * Writes a double-precision floating point value into the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param val Indicates the double-precision floating point value to write. + * @return Returns {@code true} if the value has been written into the {@link MessageParcel}; + * returns {@code false} otherwise. + * @throws ParcelException When capacity in this parcel is insufficient, + * exception message: {@link ParcelException#NO_CAPACITY_ERROR}. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ writeDouble(val: number): boolean; + + /** + * Writes a boolean value into the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param val Indicates the boolean value to write. + * @return Returns {@code true} if the value has been written into the {@link MessageParcel}; + * returns {@code false} otherwise. + * @throws ParcelException When capacity in this parcel is insufficient, + * exception message: {@link ParcelException#NO_CAPACITY_ERROR}. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ writeBoolean(val: boolean): boolean; + + /** + * Writes a single character value into the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param val Indicates the single character value to write. + * @return Returns {@code true} if the value has been written into the {@link MessageParcel}; + * returns {@code false} otherwise. + * @throws ParcelException When capacity in this parcel is insufficient, + * exception message: {@link ParcelException#NO_CAPACITY_ERROR}. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ writeChar(val: number): boolean; + + /** + * Writes a string value into the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param val Indicates the string value to write. + * @return Returns {@code true} if the value has been written into the {@link MessageParcel}; + * returns {@code false} otherwise. + * @throws ParcelException When capacity in this parcel is insufficient, + * exception message: {@link ParcelException#NO_CAPACITY_ERROR}. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ writeString(val: string): boolean; + + /** + * Writes a {@link Sequenceable} object into the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param val Indicates the {@link Sequenceable} object to write. + * @throws ParcelException When capacity in this parcel is insufficient, + * exception message: {@link ParcelException#NO_CAPACITY_ERROR}. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ writeSequenceable(val: Sequenceable): boolean; + + /** + * Writes a byte array into the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param byteArray Indicates the byte array to write. + * @return Returns {@code true} if the array has been written into the {@link MessageParcel}; + * returns {@code false} otherwise. + * @throws ParcelException When capacity in this parcel is insufficient, + * exception message: {@link ParcelException#NO_CAPACITY_ERROR}. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ writeByteArray(byteArray: number[]): boolean; + + /** + * Writes a short integer array into the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param shortArray Indicates the short integer array to write. + * @return Returns {@code true} if the array has been written into the {@link MessageParcel}; + * returns {@code false} otherwise. + * @throws ParcelException When capacity in this parcel is insufficient, + * exception message: {@link ParcelException#NO_CAPACITY_ERROR}. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ writeShortArray(shortArray: number[]): boolean; + + /** + * Writes an integer array into the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param intArray Indicates the integer array to write. + * @return Returns {@code true} if the array has been written into the {@link MessageParcel}; + * returns {@code false} otherwise. + * @throws ParcelException When capacity in this parcel is insufficient, + * exception message: {@link ParcelException#NO_CAPACITY_ERROR}. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ writeIntArray(intArray: number[]): boolean; + + /** + * Writes a long integer array into the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param longArray Indicates the long integer array to write. + * @return Returns {@code true} if the array has been written into the {@link MessageParcel}; + * returns {@code false} otherwise. + * @throws ParcelException When capacity in this parcel is insufficient, + * exception message: {@link ParcelException#NO_CAPACITY_ERROR}. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ writeLongArray(longArray: number[]): boolean; + + /** + * Writes a floating point array into the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param floatArray Indicates the floating point array to write. + * @return Returns {@code true} if the array has been written into the {@link MessageParcel}; + * returns {@code false} otherwise. + * @throws ParcelException When capacity in this parcel is insufficient, + * exception message: {@link ParcelException#NO_CAPACITY_ERROR}. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ writeFloatArray(floatArray: number[]): boolean; + + /** + * Writes a double-precision floating point array into the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param doubleArray Indicates the double-precision floating point array to write. + * @return Returns {@code true} if the array has been written into the {@link MessageParcel}; + * returns {@code false} otherwise. + * @throws ParcelException When capacity in this parcel is insufficient, + * exception message: {@link ParcelException#NO_CAPACITY_ERROR}. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ writeDoubleArray(doubleArray: number[]): boolean; + + /** + * Writes a boolean array into the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param booleanArray Indicates the boolean array to write. + * @return Returns {@code true} if the array has been written into the {@link MessageParcel}; + * returns {@code false} otherwise. + * @throws ParcelException When capacity in this parcel is insufficient, + * exception message: {@link ParcelException#NO_CAPACITY_ERROR}. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ writeBooleanArray(booleanArray: boolean[]): boolean; + + /** + * Writes a single character array into the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param charArray Indicates the single character array to write. + * @return Returns {@code true} if the array has been written into the {@link MessageParcel}; + * returns {@code false} otherwise. + * @throws ParcelException When capacity in this parcel is insufficient, + * exception message: {@link ParcelException#NO_CAPACITY_ERROR}. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ writeCharArray(charArray: number[]): boolean; + + /** + * Writes a string array into the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param stringArray Indicates the string array to write. + * @return Returns {@code true} if the array has been written into the {@link MessageParcel}; + * returns {@code false} otherwise. + * @throws ParcelException When capacity in this parcel is insufficient, + * exception message: {@link ParcelException#NO_CAPACITY_ERROR}. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ writeStringArray(stringArray: string[]): boolean; + + /** + * Writes a {@link Sequenceable} object array into the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param sequenceableArray Indicates the {@link Sequenceable} object array to write. + * @return Returns {@code true} if the array has been written into the {@link MessageParcel}; + * returns {@code false} otherwise. + * @throws ParcelException When capacity in this parcel is insufficient, + * exception message: {@link ParcelException#NO_CAPACITY_ERROR}. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ writeSequenceableArray(sequenceableArray: Sequenceable[]): boolean; + + /** + * Reads a byte value from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns a byte value. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ readByte(): number; + + /** + * Reads a short integer value from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns a short integer value. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ readShort(): number; + + /** + * Reads an integer value from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns an integer value. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ readInt(): number; + + /** + * Reads a long integer value from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns a long integer value. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ readLong(): number; + + /** + * Reads a floating point value from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns a floating point value. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ readFloat(): number; + + /** + * Reads a double-precision floating point value from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns a double-precision floating point value. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ readDouble(): number; + + /** + * Reads a boolean value from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns a boolean value. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ readBoolean(): boolean; + + /** + * Reads a single character value from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns a single character value. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ readChar(): number; + + /** + * Reads a string value from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns a string value. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ readString(): string; + + /** + * Reads a short string value from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns a short string value. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ readSequenceable(dataIn: Sequenceable) : boolean; + + /** + * Writes a byte array into the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param dataIn Indicates the byte array to write. + * @return Returns {@code true} if the array has been written into the {@link MessageParcel}; + * returns {@code false} otherwise. + * @throws ParcelException When capacity in this MessageParcel is insufficient, + * exception message: {@link MessageParcelException#NO_CAPACITY_ERROR}. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ readByteArray(dataIn: number[]) : void; + + /** + * Reads a byte array from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns a byte array. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ readByteArray(): number[]; + + /** + * Reads all bytes from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + *

This method is different from the {@code readByteArray} method. In this method, + * the {@code MessageParcel} cannot call other methods to read data, and this method can only + * read data written by using {@link #writeBytes}. + * @return Returns the bytes. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ readShortArray(dataIn: number[]) : void; + + /** + * Reads a short integer array from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns a short integer array. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ readShortArray(): number[]; + + /** + * Reads an integer array from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param dataIn Indicates the integer array to read. + * @throws ParcelException Throws this exception if reading the integer array fails. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ readIntArray(dataIn: number[]) : void; + + /** + * Reads an integer array from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns an integer array. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ readIntArray(): number[]; + + /** + * Reads a long integer array from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param dataIn Indicates the long integer array to read. + * @throws ParcelException Throws this exception if reading the long array fails. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ readLongArray(dataIn: number[]) : void; + + /** + * Reads a long integer array from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns a long integer array. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ readLongArray(): number[]; + + /** + * Reads a floating point array from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param dataIn Indicates the floating point array to read. + * @throws ParcelException Throws this exception if reading the float array fails. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ readFloatArray(dataIn: number[]) : void; + + /** + * Reads a floating point array from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns a floating point array. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ readFloatArray(): number[]; + + /** + * Reads a double-precision floating point array from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param dataIn Indicates the double-precision floating point array to read. + * @throws ParcelException Throws this exception if reading the double array fails. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ readDoubleArray(dataIn: number[]) : void; + + /** + * Reads a double-precision floating point array from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns a double-precision floating point array. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ readDoubleArray(): number[]; - readBooleanArray(dataIn: boolean[]) : void; - readBooleanArray(): boolean[]; - readCharArray(dataIn: boolean[]) : void; - readCharArray(): boolean[]; - readStringArray(dataIn: string[]) : void; - readStringArray(): string[]; - } - interface Sequenceable { - hasFileDescriptor(): boolean; - marshalling(dataOut: MessageParcel): boolean; - unmarshalling(dataIn: MessageParcel) : boolean; - } + /** + * Reads a boolean array from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param dataIn Indicates the boolean array to read. + * @throws ParcelException Throws this exception if reading the boolean array fails. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ + readBooleanArray(dataIn: boolean[]) : void; - enum IRemoteObject { /** - * Indicates the message code for a Ping operation. + * Reads a boolean array from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns a boolean array. + * @devices phone, tablet, tv, wearable, car + * @since 7 */ - PING_TRANSACTION = ('_' << 24) | ('P' << 16) | ('N' << 8) | 'G', + readBooleanArray(): boolean[]; /** - * Indicates the message code for a dump operation. + * Reads a single character array from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param dataIn Indicates the single character array to read. + * @throws ParcelException Throws this exception if reading the char array fails. + * @devices phone, tablet, tv, wearable, car + * @since 7 */ - DUMP_TRANSACTION = ('_' << 24) | ('D' << 16) | ('M' << 8) | 'P', + readCharArray(dataIn: boolean[]) : void; /** - * Indicates the message code for a transmission. + * Reads a single character array from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns a single character array. + * @devices phone, tablet, tv, wearable, car + * @since 7 */ - INTERFACE_TRANSACTION = ('_' << 24) | ('N' << 16) | ('T' << 8) | 'F', + readCharArray(): boolean[]; /** - * Indicates the minimum value of a valid message code. - * - *

This constant is used to check the validity of an operation. + * Reads a string array from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @param dataIn Indicates the string array to read. + * @throws ParcelException Throws this exception if reading the string array fails. + * @devices phone, tablet, tv, wearable, car + * @since 7 */ - MIN_TRANSACTION_ID = 0x1, + readStringArray(dataIn: string[]) : void; /** - * Indicates the maximum value of a valid message code. - * - *

This constant is used to check the validity of an operation. + * Reads a string array from the {@link MessageParcel} object. + * @sysCap SystemCapability.RPC_MessageParcel + * @return Returns a string array. + * @devices phone, tablet, tv, wearable, car + * @since 7 */ - MAX_TRANSACTION_ID = 0x00FFFFFF, + readStringArray(): string[]; + } + + interface Sequenceable { + /** + * Marshals this {@code Sequenceable} object into a {@link MessageParcel}. + * + * @sysCap SystemCapability.RPC_Sequenceable + * @param dataOut Indicates the {@link MessageParcel} object to which the {@code Sequenceable} + * object will be marshaled.. + * @return Returns {@code true} if the marshalling is successful; returns {@code false} otherwise. + * @throws ParcelException Throws this exception if the operation fails. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ + marshalling(dataOut: MessageParcel): boolean; + + /** + * Unmarshals this {@code Sequenceable} object from a {@link MessageParcel}. + * + * @sysCap SystemCapability.RPC_Sequenceable + * @param dataIn Indicates the {@link MessageParcel} object into which the {@code Sequenceable} + * object has been marshaled.. + * @return Returns {@code true} if the unmarshalling is successful; returns {@code false} otherwise. + * @throws ParcelException Throws this exception if the operation fails. + * @devices phone, tablet, tv, wearable, car + * @since 7 + */ + unmarshalling(dataIn: MessageParcel) : boolean; } interface IRemoteObject { @@ -145,11 +778,11 @@ declare namespace rpc { * @param data Indicates the {@link MessageParcel} object sent to the peer process. * @param reply Indicates the {@link MessageParcel} object returned by the peer process. * @param options Indicates the synchronous or asynchronous mode to send messages. - * @return Returns {@code true} if the method is called successfully; returns {@code false} otherwise. + * @return Returns a promise. * @throws RemoteException Throws this exception if the method fails to be called. * @since 7 */ - sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): boolean; + sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): Promise; /** * Registers a callback used to receive notifications of the death of a remote object. @@ -193,29 +826,96 @@ declare namespace rpc { } interface IRemoteBroker { + /** + * Obtains a proxy or remote object. This method must be implemented by its derived classes. + * + * @return Returns the RemoteObject if the caller is a RemoteObject; returns the IRemoteObject, + * that is, the holder of this RemoteProxy object, if the caller is a RemoteProxy object. + * @since 7 + */ asObject(): IRemoteObject; } interface DeathRecipient { + /** + * Called to perform subsequent operations when a death notification of the remote object is received. + * + * @since 7 + */ onRemoteDied(): void; } - enum MessageOption { + class MessageOption { + /** + * Indicates synchronous call. + */ TF_SYNC = 0, + + /** + * Indicates asynchronous call. + */ TF_ASYNC = 1, + + /** + * Indicates the sendRequest API for returning the file descriptor. + */ TF_ACCEPT_FDS = 0x10, - TF_WAIT_TIME = 4, - MAX_WAIT_TIME = 3000, - } - interface MessageOption { - syncflags: number; - waitTime: number; + /** + * Indicates the wait time for RPC, in seconds. + */ + TF_WAIT_TIME = 8, + + /** + * A constructor used to create a MessageOption instance. + * + * @param syncFlags Specifies whether the SendRequest is called synchronously (default) or asynchronously. + * @param waitTime Maximum wait time for a RPC call. The default value is TF_WAIT_TIME. + * @since 7 + */ + constructor(syncFlags?: number, waitTime = TF_WAIT_TIME); + + /** + * Obtains the SendRequest call flag, which can be synchronous or asynchronous. + * + * @return Returns whether the SendRequest is called synchronously or asynchronously. + * @since 7 + */ + getFlags(): number; + + /** + * Sets the SendRequest call flag, which can be synchronous or asynchronous. + * + * @param flags Indicates the call flag, which can be synchronous or asynchronous. + * @since 7 + */ + setFlags(flags: number): void; + + /** + * Obtains the maximum wait time for this RPC call. + * + * @return Returns maximum wait time obtained. + * @since 7 + */ + getWaitTime(): number; + + /** + * Sets the maximum wait time for this RPC call. + * + * @param waitTime Indicates maximum wait time to set. + * @since 7 + */ + setWaitTime(waitTime: number): void; } class RemoteObject implements IRemoteObject { - descriptor: string; - interface: IRemoteObject; + /** + * A constructor to create a RemoteObject instance. + * + * @param descriptor Specifies interface descriptor. + * @since 7 + */ + constructor(descriptor: string); /** * Queries a remote object using an interface descriptor. @@ -262,10 +962,10 @@ declare namespace rpc { * @param data Indicates the {@link MessageParcel} object storing the data to be sent. * @param reply Indicates the {@link MessageParcel} object receiving the response data. * @param options Indicates a synchronous (default) or asynchronous request. - * @return Returns {@code true} if the operation succeeds; returns {@code false} otherwise. + * @return Returns a promise. * @since 7 */ - sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): boolean; + sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): Promise; /** * Obtains the PID of the {@link RemoteProxy} object. @@ -296,6 +996,35 @@ declare namespace rpc { } class RemoteProxy implements IRemoteObject { + /** + * Indicates the message code for a Ping operation. + */ + PING_TRANSACTION = ('_' << 24) | ('P' << 16) | ('N' << 8) | 'G', + + /** + * Indicates the message code for a dump operation. + */ + DUMP_TRANSACTION = ('_' << 24) | ('D' << 16) | ('M' << 8) | 'P', + + /** + * Indicates the message code for a transmission. + */ + INTERFACE_TRANSACTION = ('_' << 24) | ('N' << 16) | ('T' << 8) | 'F', + + /** + * Indicates the minimum value of a valid message code. + * + *

This constant is used to check the validity of an operation. + */ + MIN_TRANSACTION_ID = 0x1, + + /** + * Indicates the maximum value of a valid message code. + * + *

This constant is used to check the validity of an operation. + */ + MAX_TRANSACTION_ID = 0x00FFFFFF, + /** * Queries a local interface with a specified descriptor. * @@ -343,11 +1072,11 @@ declare namespace rpc { * @param data Indicates the {@link MessageParcel} object storing the data to be sent. * @param reply Indicates the {@link MessageParcel} object receiving the response data. * @param options Indicates a synchronous (default) or asynchronous request. - * @return Returns {@code true} if the operation succeeds; returns {@code false} otherwise. + * @return Returns a promise. * @throws RemoteException Throws this exception if a remote object exception occurs. * @since 7 */ - sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): boolean; + sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): Promise; /** * Checks whether the {@code RemoteObject} corresponding to a {@code RemoteProxy} is dead. -- Gitee