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