• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2025 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
16#ifndef OVERLOAD_IFOO_H
17#define OVERLOAD_IFOO_H
18
19#include <cstdint>
20#include <unordered_map>
21#include <vector>
22#include <iremote_broker.h>
23#include <string_ex.h>
24#include "myrawdata.h"
25
26using test::myrawdata;
27
28namespace overload {
29
30enum class IFooIpcCode {
31    COMMAND_OVERLOADFUN = MIN_TRANSACTION_ID,
32    COMMAND_OVERLOADFUN_IN_UNSIGNED_CHAR,
33    COMMAND_OVERLOADFUN_OUT_UNSIGNED_INT,
34    COMMAND_OVERLOADFUN_OUT_MAP_INT_STRING,
35    COMMAND_OVERLOADFUN_IN_UNSIGNED_INT_VECTOR,
36    COMMAND_OVERLOADFUN_OUT_LIST_MAP_INT_STRING,
37    COMMAND_OVERLOADFUN_OUT_FILEDESCRIPTOR_OUT_STRING,
38    COMMAND_OVERLOADFUN_IN_MYRAWDATA_OUT_MYRAWDATA_INOUT_MYRAWDATA_OUT_MYRAWDATA,
39    COMMAND_OVERLOADFUN_IN_LIST_MYRAWDATA_OUT_LIST_MYRAWDATA_INOUT_LIST_MYRAWDATA_OUT_LIST_MYRAWDATA,
40    COMMAND_OVERLOADFUN_IN_MAP_MYRAWDATA_MYRAWDATA_OUT_MAP_MYRAWDATA_MYRAWDATA_INOUT_MAP_MYRAWDATA_MYRAWDATA_OUT_MAP_MYRAWDATA_MYRAWDATA,
41};
42
43class IFoo : public IRemoteBroker {
44public:
45    DECLARE_INTERFACE_DESCRIPTOR(u"overload.IFoo");
46
47#ifndef WATCHER
48    virtual ErrCode overloadfun() = 0;
49#endif
50
51#ifdef DEVICE
52    virtual ErrCode overloadfun(
53        uint8_t inParam) = 0;
54#endif
55
56    virtual ErrCode overloadfun(
57        uint32_t& outParam) = 0;
58
59    virtual ErrCode overloadfun(
60        std::unordered_map<int32_t, std::string>& outParam) = 0;
61
62    virtual ErrCode overloadfun(
63        const std::vector<uint32_t>& outParam) = 0;
64
65    virtual ErrCode overloadfun(
66        std::vector<std::unordered_map<int32_t, std::string>>& outParam) = 0;
67
68    virtual ErrCode overloadfun(
69        int& outParam,
70        std::string& funcResult) = 0;
71
72    virtual ErrCode overloadfun(
73        const myrawdata& inParam,
74        myrawdata& outParam,
75        myrawdata& inoutParam,
76        myrawdata& funcResult) = 0;
77
78    virtual ErrCode overloadfun(
79        const std::vector<myrawdata>& inParam,
80        std::vector<myrawdata>& outParam,
81        std::vector<myrawdata>& inoutParam,
82        std::vector<myrawdata>& funcResult) = 0;
83
84    virtual ErrCode overloadfun(
85        const std::unordered_map<myrawdata, myrawdata>& inParam,
86        std::unordered_map<myrawdata, myrawdata>& outParam,
87        std::unordered_map<myrawdata, myrawdata>& inoutParam,
88        std::unordered_map<myrawdata, myrawdata>& funcResult) = 0;
89protected:
90    const int VECTOR_MAX_SIZE = 102400;
91    const int LIST_MAX_SIZE = 102400;
92    const int MAP_MAX_SIZE = 102400;
93};
94} // namespace overload
95#endif // OVERLOAD_IFOO_H
96
97