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