-- Copyright (c) Huawei Technologies Co., Ltd. 2024. All rights reserved.
--
-- this file licensed under the Mulan PSL v2.
-- You can use this software according to the terms and conditions of the Mulan PSL v2.
-- You may obtain a copy of Mulan PSL v2 at: http://license.coscl.org.cn/MulanPSL2
--
-- THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
-- IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
-- PURPOSE.
-- See the Mulan PSL v2 for more details.
--
-- Author: auto generate
-- Create: 2024-11-22
-- Description: DO NOT EDIT; Code generated by "impl_feature.lua.mako"
local log = require 'mc.logging'
local libpid = require 'libpid'
local Feature1 = require'cooling.features.Feature1'.get_instance()

-- 实现私有方法的插件预处理方法
---@param ... 私有方法的入参
---@return ... 返回插件处理方法的入参，支持对插件预处理方法的入参做一些处理后传入插件处理方法
local function CustomPidCountValuePreprocess(...)
    return ...
end

-- 实现私有方法的插件处理方法
---@param ... 私有方法的入参
---@return response 私有方法的出参，作为插件后置处理方法的入参传入插件后置处理方法
local function CustomPidCountValueProcess(...)
    return libpid.PidCountValue(...)
end

-- 实现私有方法的插件后置处理方法
---@param ... 1、如果实现了插件处理方法，则使用插件处理方法的出参 2、未实现插件处理方法时，使用私有方法默认实现的出参
---@return ... 私有方法的出参
local function CustomPidCountValuePostprocess(...)
    log:info('Custom Pid Count Value Post process')
    return ...
end

-- 入参分别为插件预处理、插件处理、插件后置处理方法的回调，实现相关回调后请将方法名填入，nil表示不进行相应处理
Feature1:ImplCustomPidCountValue(
    CustomPidCountValuePreprocess, CustomPidCountValueProcess, CustomPidCountValuePostprocess
)

-- 实现私有方法的插件预处理方法
---@param ... 私有方法的入参
---@return ... 返回插件处理方法的入参，支持对插件预处理方法的入参做一些处理后传入插件处理方法
local function CustomPidUpdateSensorValuePreprocess(...)
    return ...
end

-- 实现私有方法的插件处理方法
---@param ... 私有方法的入参
---@return response 私有方法的出参，作为插件后置处理方法的入参传入插件后置处理方法
local function CustomPidUpdateSensorValueProcess(...)
    return libpid.PidUpdateSensorValue(...)
end

-- 实现私有方法的插件后置处理方法
---@param ... 1、如果实现了插件处理方法，则使用插件处理方法的出参 2、未实现插件处理方法时，使用私有方法默认实现的出参
---@return ... 私有方法的出参
local function CustomPidUpdateSensorValuePostprocess(...)
    log:info('Custom Pid Update Sensor Value Postprocess')
    return ...
end

-- 入参分别为插件预处理、插件处理、插件后置处理方法的回调，实现相关回调后请将方法名填入，nil表示不进行相应处理
Feature1:ImplCustomPidUpdateSensorValue(
    CustomPidUpdateSensorValuePreprocess, CustomPidUpdateSensorValueProcess, CustomPidUpdateSensorValuePostprocess
)

-- 实现私有方法的插件预处理方法
---@param ... 私有方法的入参
---@return ... 返回插件处理方法的入参，支持对插件预处理方法的入参做一些处理后传入插件处理方法
local function CustomReadInfoPreprocess(...)
    return ...
end

-- 实现私有方法的插件处理方法
---@param ... 私有方法的入参
---@return response 私有方法的出参，作为插件后置处理方法的入参传入插件后置处理方法
local function CustomReadInfoProcess(...)
    return libpid.ReadInfo(...)
end

-- 实现私有方法的插件后置处理方法
---@param ... 1、如果实现了插件处理方法，则使用插件处理方法的出参 2、未实现插件处理方法时，使用私有方法默认实现的出参
---@return ... 私有方法的出参
local function CustomReadInfoPostprocess(...)
    log:info('Custom ReadInfo Postprocess')
    return ...
end

-- 入参分别为插件预处理、插件处理、插件后置处理方法的回调，实现相关回调后请将方法名填入，nil表示不进行相应处理
Feature1:ImplCustomReadInfo(
    CustomReadInfoPreprocess, CustomReadInfoProcess, CustomReadInfoPostprocess
)

-- 实现私有方法的插件预处理方法
---@param ... 私有方法的入参
---@return ... 返回插件处理方法的入参，支持对插件预处理方法的入参做一些处理后传入插件处理方法
local function CustomSetEnvTempConfigPreprocess(...)
    return ...
end

-- 实现私有方法的插件处理方法
---@param ... 私有方法的入参
---@return response 私有方法的出参，作为插件后置处理方法的入参传入插件后置处理方法
local function CustomSetEnvTempConfigProcess(...)
    return libpid.WriteInfo(...)
end

-- 实现私有方法的插件后置处理方法
---@param ... 1、如果实现了插件处理方法，则使用插件处理方法的出参 2、未实现插件处理方法时，使用私有方法默认实现的出参
---@return ... 私有方法的出参
local function CustomSetEnvTempConfigPostprocess(...)
    log:info('Custom Set Env Temp Config Postprocess')
    return ...
end

-- 入参分别为插件预处理、插件处理、插件后置处理方法的回调，实现相关回调后请将方法名填入，nil表示不进行相应处理
Feature1:ImplCustomSetEnvTempConfig(
    CustomSetEnvTempConfigPreprocess, CustomSetEnvTempConfigProcess, CustomSetEnvTempConfigPostprocess
)

-- 实现私有方法的插件预处理方法
---@param ... 私有方法的入参
---@return ... 返回插件处理方法的入参，支持对插件预处理方法的入参做一些处理后传入插件处理方法
local function CustomSetFanConfigPreprocess(...)
    return ...
end

-- 实现私有方法的插件处理方法
---@param ... 私有方法的入参
---@return response 私有方法的出参，作为插件后置处理方法的入参传入插件后置处理方法
local function CustomSetFanConfigProcess(...)
    return libpid.WriteInfo(...)
end

-- 实现私有方法的插件后置处理方法
---@param ... 1、如果实现了插件处理方法，则使用插件处理方法的出参 2、未实现插件处理方法时，使用私有方法默认实现的出参
---@return ... 私有方法的出参
local function CustomSetFanConfigPostprocess(...)
    log:info('Custom Set Fan Config Postprocess')
    return ...
end

-- 入参分别为插件预处理、插件处理、插件后置处理方法的回调，实现相关回调后请将方法名填入，nil表示不进行相应处理
Feature1:ImplCustomSetFanConfig(
    CustomSetFanConfigPreprocess, CustomSetFanConfigProcess, CustomSetFanConfigPostprocess
)

-- 实现私有方法的插件预处理方法
---@param ... 私有方法的入参
---@return ... 返回插件处理方法的入参，支持对插件预处理方法的入参做一些处理后传入插件处理方法
local function CustomSetRealTimeTempPreprocess(...)
    return ...
end

-- 实现私有方法的插件处理方法
---@param ... 私有方法的入参
---@return response 私有方法的出参，作为插件后置处理方法的入参传入插件后置处理方法
local function CustomSetRealTimeTempProcess(...)
    return libpid.WriteInfo(...)
end

-- 实现私有方法的插件后置处理方法
---@param ... 1、如果实现了插件处理方法，则使用插件处理方法的出参 2、未实现插件处理方法时，使用私有方法默认实现的出参
---@return ... 私有方法的出参
local function CustomSetRealTimeTempPostprocess(...)
    log:debug('Custom Set Real Time Temp Post process')
    return ...
end

-- 入参分别为插件预处理、插件处理、插件后置处理方法的回调，实现相关回调后请将方法名填入，nil表示不进行相应处理
Feature1:ImplCustomSetRealTimeTemp(
    CustomSetRealTimeTempPreprocess, CustomSetRealTimeTempProcess, CustomSetRealTimeTempPostprocess
)

-- 实现私有方法的插件预处理方法
---@param ... 私有方法的入参
---@return ... 返回插件处理方法的入参，支持对插件预处理方法的入参做一些处理后传入插件处理方法
local function CustomSetTargetTempConfigPreprocess(...)
    return ...
end

-- 实现私有方法的插件处理方法
---@param ... 私有方法的入参
---@return response 私有方法的出参，作为插件后置处理方法的入参传入插件后置处理方法
local function CustomSetTargetTempConfigProcess(...)
    return libpid.WriteInfo(...)
end

-- 实现私有方法的插件后置处理方法
---@param ... 1、如果实现了插件处理方法，则使用插件处理方法的出参 2、未实现插件处理方法时，使用私有方法默认实现的出参
---@return ... 私有方法的出参
local function CustomSetTargetTempConfigPostprocess(...)
    log:info('Custom Set Target Temp Config Post process')
    return ...
end

-- 入参分别为插件预处理、插件处理、插件后置处理方法的回调，实现相关回调后请将方法名填入，nil表示不进行相应处理
Feature1:ImplCustomSetTargetTempConfig(
    CustomSetTargetTempConfigPreprocess, CustomSetTargetTempConfigProcess, CustomSetTargetTempConfigPostprocess
)

-- 实现私有方法的插件预处理方法
---@param ... 私有方法的入参
---@return ... 返回插件处理方法的入参，支持对插件预处理方法的入参做一些处理后传入插件处理方法
local function CustomTarTempCtrInitPreprocess(...)
    return ...
end

-- 实现私有方法的插件处理方法
---@param ... 私有方法的入参
---@return response 私有方法的出参，作为插件后置处理方法的入参传入插件后置处理方法
local function CustomTarTempCtrInitProcess(...)
    return libpid.TarTempCtrInit(...)
end

-- 实现私有方法的插件后置处理方法
---@param ... 1、如果实现了插件处理方法，则使用插件处理方法的出参 2、未实现插件处理方法时，使用私有方法默认实现的出参
---@return ... 私有方法的出参
local function CustomTarTempCtrInitPostprocess(...)
    log:info('Custom TarTemp CtrInit Post process')
    return ...
end

-- 入参分别为插件预处理、插件处理、插件后置处理方法的回调，实现相关回调后请将方法名填入，nil表示不进行相应处理
Feature1:ImplCustomTarTempCtrInit(
    CustomTarTempCtrInitPreprocess, CustomTarTempCtrInitProcess, CustomTarTempCtrInitPostprocess
)

-- 实现私有方法的插件预处理方法
---@param ... 私有方法的入参
---@return ... 返回插件处理方法的入参，支持对插件预处理方法的入参做一些处理后传入插件处理方法
local function CustomSetFanAlarmSpeedPreprocess(...)
    return ...
end

-- 实现私有方法的插件处理方法
---@param ... 私有方法的入参
---@return response 私有方法的出参，作为插件后置处理方法的入参传入插件后置处理方法
local function CustomSetFanAlarmSpeedProcess(...)
    return libpid.WriteInfo(...)
end

-- 实现私有方法的插件后置处理方法
---@param ... 1、如果实现了插件处理方法，则使用插件处理方法的出参 2、未实现插件处理方法时，使用私有方法默认实现的出参
---@return ... 私有方法的出参
local function CustomSetFanAlarmSpeedPostprocess(...)
    log:info('Custom Set Fan Alarm Speed Post process')
    return ...
end

-- 入参分别为插件预处理、插件处理、插件后置处理方法的回调，实现相关回调后请将方法名填入，nil表示不进行相应处理
Feature1:ImplCustomSetFanAlarmSpeed(
    CustomSetFanAlarmSpeedPreprocess, CustomSetFanAlarmSpeedProcess, CustomSetFanAlarmSpeedPostprocess
)