10704ebd2Sopenharmony_ci/*
20704ebd2Sopenharmony_ci * Copyright (C) 2024 Huawei Device Co., Ltd.
30704ebd2Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
40704ebd2Sopenharmony_ci * you may not use this file except in compliance with the License.
50704ebd2Sopenharmony_ci * You may obtain a copy of the License at
60704ebd2Sopenharmony_ci *
70704ebd2Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
80704ebd2Sopenharmony_ci *
90704ebd2Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
100704ebd2Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
110704ebd2Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
120704ebd2Sopenharmony_ci * See the License for the specific language governing permissions and
130704ebd2Sopenharmony_ci * limitations under the License.
140704ebd2Sopenharmony_ci */
150704ebd2Sopenharmony_ci
160704ebd2Sopenharmony_cilet logTag = 'RpcServer_ApiMessage:  ';
170704ebd2Sopenharmony_ciexport default class ApiMessage {
180704ebd2Sopenharmony_ci    _deviceName = null;
190704ebd2Sopenharmony_ci    _className = null;
200704ebd2Sopenharmony_ci    _methodName = null;
210704ebd2Sopenharmony_ci    _apiSession = null;
220704ebd2Sopenharmony_ci    _parameterTypes = null;
230704ebd2Sopenharmony_ci    _parameters = null;
240704ebd2Sopenharmony_ci    _apiResult = null;
250704ebd2Sopenharmony_ci
260704ebd2Sopenharmony_ci    constructor(deviceName, className, methodName, apiSession, parameterTypes, parameters, apiResult) {
270704ebd2Sopenharmony_ci        this._deviceName = deviceName;
280704ebd2Sopenharmony_ci        this._className = className;
290704ebd2Sopenharmony_ci        this._methodName = methodName;
300704ebd2Sopenharmony_ci        this._apiSession = apiSession;
310704ebd2Sopenharmony_ci        this._parameterTypes = parameterTypes;
320704ebd2Sopenharmony_ci        this._parameters = parameters;
330704ebd2Sopenharmony_ci        this._apiResult = apiResult;
340704ebd2Sopenharmony_ci
350704ebd2Sopenharmony_ci    }
360704ebd2Sopenharmony_ci    marshalling(messageSequence: rpc.MessageSequence) {
370704ebd2Sopenharmony_ci        console.log(logTag + "into marshalling.");
380704ebd2Sopenharmony_ci        messageSequence.writeString(this._deviceName);
390704ebd2Sopenharmony_ci        messageSequence.writeString(this._className);
400704ebd2Sopenharmony_ci        messageSequence.writeString(this._methodName);
410704ebd2Sopenharmony_ci        messageSequence.writeString(this._apiSession);
420704ebd2Sopenharmony_ci        console.log(logTag + "writeString successfully.");
430704ebd2Sopenharmony_ci        messageSequence.writeStringArray(this._parameterTypes);
440704ebd2Sopenharmony_ci        messageSequence.writeStringArray(this._parameters);
450704ebd2Sopenharmony_ci        messageSequence.writeString(this._apiResult);
460704ebd2Sopenharmony_ci        console.log(logTag + "marshalling successfully.");
470704ebd2Sopenharmony_ci        return true;
480704ebd2Sopenharmony_ci    }
490704ebd2Sopenharmony_ci
500704ebd2Sopenharmony_ci    unmarshalling(messageSequence: rpc.MessageSequence) {
510704ebd2Sopenharmony_ci        console.log(logTag + "into unmarshalling.");
520704ebd2Sopenharmony_ci        this._deviceName = messageSequence.readString();
530704ebd2Sopenharmony_ci        this._className = messageSequence.readString();
540704ebd2Sopenharmony_ci        this._methodName = messageSequence.readString();
550704ebd2Sopenharmony_ci        this._apiSession = messageSequence.readString();
560704ebd2Sopenharmony_ci        this._parameterTypes = messageSequence.readStringArray();
570704ebd2Sopenharmony_ci        this._parameters = messageSequence.readStringArray();
580704ebd2Sopenharmony_ci        this._apiResult = messageSequence.readString();
590704ebd2Sopenharmony_ci        console.log(logTag + "unmarshalling successfully.");
600704ebd2Sopenharmony_ci        return true;
610704ebd2Sopenharmony_ci    }
620704ebd2Sopenharmony_ci}
63