• 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#include "test.h"
26
27using test::myrawdata;
28
29namespace overload {
30
31enum class IFooIpcCode {
32    COMMAND_OVERLOADFUN = MIN_TRANSACTION_ID,
33    COMMAND_OVERLOADFUN_IN_UNSIGNED_CHAR,
34    COMMAND_OVERLOADFUN_OUT_UNSIGNED_INT,
35    COMMAND_OVERLOADFUN_OUT_MAP_INT_STRING,
36    COMMAND_OVERLOADFUN_OUT_MAP_INT_U16STRING,
37    COMMAND_OVERLOADFUN_IN_UNSIGNED_INT_VECTOR,
38    COMMAND_OVERLOADFUN_OUT_LIST_MAP_INT_STRING,
39    COMMAND_OVERLOADFUN_OUT_FILEDESCRIPTOR_OUT_STRING,
40    COMMAND_OVERLOADFUN_OUT_LIST_MAP_INT_U16STRING,
41    COMMAND_OVERLOADFUN_OUT_FILEDESCRIPTOR_OUT_U16STRING,
42    COMMAND_OVERLOADFUN_IN_U16STRING_OUT_U16STRING_INOUT_U16STRING_OUT_U16STRING,
43    COMMAND_OVERLOADFUN_IN_MYRAWDATA_OUT_MYRAWDATA_INOUT_MYRAWDATA_OUT_MYRAWDATA,
44    COMMAND_OVERLOADFUN_IN_LIST_MYRAWDATA_OUT_LIST_MYRAWDATA_INOUT_LIST_MYRAWDATA_OUT_LIST_MYRAWDATA,
45    COMMAND_OVERLOADFUN_IN_MAP_MYRAWDATA_MYRAWDATA_OUT_MAP_MYRAWDATA_MYRAWDATA_INOUT_MAP_MYRAWDATA_MYRAWDATA_OUT_MAP_MYRAWDATA_MYRAWDATA,
46    COMMAND_OVERLOADFUN_IN_SHARED_PTR_PICTURE_OUT_UNIQUE_PTR_PICTURE_INOUT_SPTR_PICTURE,
47};
48
49class IFoo : public IRemoteBroker {
50public:
51    DECLARE_INTERFACE_DESCRIPTOR(u"overload.IFoo");
52
53#ifndef WATCHER
54    virtual ErrCode overloadfun() = 0;
55#endif
56
57#ifdef DEVICE
58    virtual ErrCode overloadfun(
59        uint8_t inParam) = 0;
60#endif
61
62    virtual ErrCode overloadfun(
63        uint32_t& outParam) = 0;
64
65    virtual ErrCode overloadfun(
66        std::unordered_map<int32_t, std::string>& outParam) = 0;
67
68    virtual ErrCode overloadfun(
69        std::unordered_map<int32_t, std::u16string>& outParam) = 0;
70
71    virtual ErrCode overloadfun(
72        const std::vector<uint32_t>& outParam) = 0;
73
74    virtual ErrCode overloadfun(
75        std::vector<std::unordered_map<int32_t, std::string>>& outParam) = 0;
76
77    virtual ErrCode overloadfun(
78        int& outParam,
79        std::string& funcResult) = 0;
80
81    virtual ErrCode overloadfun(
82        std::vector<std::unordered_map<int32_t, std::u16string>>& outParam) = 0;
83
84    virtual ErrCode overloadfun(
85        int& outParam,
86        std::u16string& funcResult) = 0;
87
88    virtual ErrCode overloadfun(
89        const std::u16string& inParam,
90        std::u16string& outParam,
91        std::u16string& inoutParam,
92        std::u16string& funcResult) = 0;
93
94    virtual ErrCode overloadfun(
95        const myrawdata& inParam,
96        myrawdata& outParam,
97        myrawdata& inoutParam,
98        myrawdata& funcResult) = 0;
99
100    virtual ErrCode overloadfun(
101        const std::vector<myrawdata>& inParam,
102        std::vector<myrawdata>& outParam,
103        std::vector<myrawdata>& inoutParam,
104        std::vector<myrawdata>& funcResult) = 0;
105
106    virtual ErrCode overloadfun(
107        const std::unordered_map<myrawdata, myrawdata>& inParam,
108        std::unordered_map<myrawdata, myrawdata>& outParam,
109        std::unordered_map<myrawdata, myrawdata>& inoutParam,
110        std::unordered_map<myrawdata, myrawdata>& funcResult) = 0;
111
112    virtual ErrCode overloadfun(
113        const std::shared_ptr<picture>& sharedParam,
114        std::unique_ptr<picture>& uniqueParam,
115        sptr<picture>& sParam) = 0;
116protected:
117    const int VECTOR_MAX_SIZE = 102400;
118    const int LIST_MAX_SIZE = 102400;
119    const int SET_MAX_SIZE = 102400;
120    const int MAP_MAX_SIZE = 102400;
121};
122} // namespace overload
123#endif // OVERLOAD_IFOO_H
124
125