/*
* Copyright (c) 2025 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef OVERLOAD_IFOO_H
#define OVERLOAD_IFOO_H
#include <cstdint>
#include <unordered_map>
#include <vector>
#include <iremote_broker.h>
#include <string_ex.h>
#include "myrawdata.h"
#include "test.h"
using test::myrawdata;
namespace overload {
enum class IFooIpcCode {
COMMAND_OVERLOADFUN = MIN_TRANSACTION_ID,
COMMAND_OVERLOADFUN_IN_UNSIGNED_CHAR,
COMMAND_OVERLOADFUN_OUT_UNSIGNED_INT,
COMMAND_OVERLOADFUN_OUT_MAP_INT_STRING,
COMMAND_OVERLOADFUN_OUT_MAP_INT_U16STRING,
COMMAND_OVERLOADFUN_IN_UNSIGNED_INT_VECTOR,
COMMAND_OVERLOADFUN_OUT_LIST_MAP_INT_STRING,
COMMAND_OVERLOADFUN_OUT_FILEDESCRIPTOR_OUT_STRING,
COMMAND_OVERLOADFUN_OUT_LIST_MAP_INT_U16STRING,
COMMAND_OVERLOADFUN_OUT_FILEDESCRIPTOR_OUT_U16STRING,
COMMAND_OVERLOADFUN_IN_U16STRING_OUT_U16STRING_INOUT_U16STRING_OUT_U16STRING,
COMMAND_OVERLOADFUN_IN_MYRAWDATA_OUT_MYRAWDATA_INOUT_MYRAWDATA_OUT_MYRAWDATA,
COMMAND_OVERLOADFUN_IN_LIST_MYRAWDATA_OUT_LIST_MYRAWDATA_INOUT_LIST_MYRAWDATA_OUT_LIST_MYRAWDATA,
COMMAND_OVERLOADFUN_IN_MAP_MYRAWDATA_MYRAWDATA_OUT_MAP_MYRAWDATA_MYRAWDATA_INOUT_MAP_MYRAWDATA_MYRAWDATA_OUT_MAP_MYRAWDATA_MYRAWDATA,
COMMAND_OVERLOADFUN_IN_SHARED_PTR_PICTURE_OUT_UNIQUE_PTR_PICTURE_INOUT_SPTR_PICTURE,
};
class IFoo : public IRemoteBroker {
public:
DECLARE_INTERFACE_DESCRIPTOR(u"overload.IFoo");
#ifndef WATCHER
virtual ErrCode overloadfun() = 0;
#endif
#ifdef DEVICE
virtual ErrCode overloadfun(
uint8_t inParam) = 0;
#endif
virtual ErrCode overloadfun(
uint32_t& outParam) = 0;
virtual ErrCode overloadfun(
std::unordered_map<int32_t, std::string>& outParam) = 0;
virtual ErrCode overloadfun(
std::unordered_map<int32_t, std::u16string>& outParam) = 0;
virtual ErrCode overloadfun(
const std::vector<uint32_t>& outParam) = 0;
virtual ErrCode overloadfun(
std::vector<std::unordered_map<int32_t, std::string>>& outParam) = 0;
virtual ErrCode overloadfun(
int& outParam,
std::string& funcResult) = 0;
virtual ErrCode overloadfun(
std::vector<std::unordered_map<int32_t, std::u16string>>& outParam) = 0;
virtual ErrCode overloadfun(
int& outParam,
std::u16string& funcResult) = 0;
virtual ErrCode overloadfun(
const std::u16string& inParam,
std::u16string& outParam,
std::u16string& inoutParam,
std::u16string& funcResult) = 0;
virtual ErrCode overloadfun(
const myrawdata& inParam,
myrawdata& outParam,
myrawdata& inoutParam,
myrawdata& funcResult) = 0;
virtual ErrCode overloadfun(
const std::vector<myrawdata>& inParam,
std::vector<myrawdata>& outParam,
std::vector<myrawdata>& inoutParam,
std::vector<myrawdata>& funcResult) = 0;
virtual ErrCode overloadfun(
const std::unordered_map<myrawdata, myrawdata>& inParam,
std::unordered_map<myrawdata, myrawdata>& outParam,
std::unordered_map<myrawdata, myrawdata>& inoutParam,
std::unordered_map<myrawdata, myrawdata>& funcResult) = 0;
virtual ErrCode overloadfun(
const std::shared_ptr<picture>& sharedParam,
std::unique_ptr<picture>& uniqueParam,
sptr<picture>& sParam) = 0;
protected:
const int VECTOR_MAX_SIZE = 102400;
const int LIST_MAX_SIZE = 102400;
const int SET_MAX_SIZE = 102400;
const int MAP_MAX_SIZE = 102400;
};
} // namespace overload
#endif // OVERLOAD_IFOO_H