• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2022 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16import rpc from '@ohos.rpc';
17import ApiMessage from '../common/apiMessage.js';
18import ApiResult from '../common/apiResult.js';
19import ReflectCallApi from './ReflectCallApi.js';
20import deviceinfo from '@ohos.deviceInfo'
21
22let CODE_INVOKE = 1;
23let CODE_INVOKE_TESTCASE = 99;
24let CODE_INVOKE_OSVERSION = 88;
25let logTag = "[RpcServer:  ]";
26
27export default class Stub extends rpc.RemoteObject {
28    constructor(descriptor) {
29        console.log(logTag +" Stub Create");
30        super(descriptor);
31    }
32
33    onRemoteRequest(code, data, reply, option) {
34        try {
35            console.log(logTag +" ===================  onRemoteRequest: code is " + code + "  ===================");
36            switch (code) {
37                case CODE_INVOKE:
38                {
39                    console.info(logTag +" case CODE_INVOKE start");
40                    let testBundle = new ApiMessage(null, null, null, null, null, null, null);
41                    var tmp = data.readSequenceable(testBundle);
42                    console.log( logTag +" read result is " + tmp + JSON.stringify(testBundle));
43
44                    let resultCall = new ApiResult();
45                    var resCallApi = -1;
46                    const reflectCallApi = new ReflectCallApi();
47                    resCallApi = reflectCallApi.call(testBundle);
48                    console.log(logTag+"_methodName  call success,result is "+resCallApi);
49                    if (resCallApi == 1)  {
50                        resultCall._resultCode = true;
51                        resultCall._result = 1;
52                    } else {
53                        resultCall._resultCode = false;
54                        resultCall._result = -1;
55                    }
56                    console.log(logTag + "The server's writeSequenceable result is " + JSON.stringify(resultCall));
57
58                    testBundle._apiResult=JSON.stringify(resultCall);
59		            console.log(logTag +" The testBundle is " + JSON.stringify(testBundle));
60                    let result = reply.writeSequenceable(testBundle);
61                    console.log(logTag +" writeSequenceable result is " + result);
62                    return true;
63                }
64                case CODE_INVOKE_TESTCASE:
65                {
66                    console.info(logTag +" ===================  case CODE_INVOKE_TESTCASE start ===================  ");
67                    let testBundle = new ApiMessage(null, null, null, null, null, null, null);
68                    var tmp = data.readSequenceable(testBundle);
69                    console.log( logTag +" read result is " + tmp + JSON.stringify(testBundle));
70
71                    let resultCall = new ApiResult();
72                    resultCall._resultCode = true;
73                    resultCall._result = 1;
74                    testBundle._apiResult=JSON.stringify(resultCall);
75                    let result = reply.writeSequenceable(testBundle);
76                    console.log(logTag +" writeSequenceable result is " + result);
77                    return true;
78                }
79                case CODE_INVOKE_OSVERSION:
80                {
81                    console.info(logTag +" ===================  case CODE_INVOKE_OSVERSION start ===================  ");
82                    let tmp = data.readString();
83                    console.log(logTag +" readString tmp is " + tmp);
84
85                    let osFullNameInfo = deviceinfo.osFullName;
86                    console.info('the value of the deviceinfo osFullName is :' + osFullNameInfo);
87
88                    reply.writeString(osFullNameInfo);
89                    console.log(logTag +" writeSequenceable result is " + tmp);
90                    return true;
91                }
92                default:
93                    console.error(logTag +" default case " + code);
94                    return super.onRemoteRequest(code, data, reply, option);
95            }
96        } catch (error) {
97            console.log(logTag +"ERROR: onRemoteRequest: " + error);
98        }
99        return false;
100    }
101}
102