blob: 5d37300058cb47d66ea78f50c2b8b6d8342dcadb [file]
/*
*
* Copyright (c) 2021 Project CHIP Authors
*
* 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.
*/
// THIS FILE IS GENERATED BY ZAP
#include "CHIPClusters.h"
#include <app-common/zap-generated/cluster-objects.h>
#include <app-common/zap-generated/ids/Attributes.h>
namespace chip {
using namespace app::Clusters;
using namespace System;
using namespace Encoding::LittleEndian;
namespace Controller {
template CHIP_ERROR
ClusterBase::InvokeCommand<chip::app::Clusters::GeneralCommissioning::Commands::ArmFailSafe::Type,
chip::app::Clusters::GeneralCommissioning::Commands::ArmFailSafeResponse::DecodableType>(
const chip::app::Clusters::GeneralCommissioning::Commands::ArmFailSafe::Type &, void *,
CommandResponseSuccessCallback<chip::app::Clusters::GeneralCommissioning::Commands::ArmFailSafeResponse::DecodableType>,
CommandResponseFailureCallback);
template CHIP_ERROR
ClusterBase::InvokeCommand<chip::app::Clusters::GeneralCommissioning::Commands::CommissioningComplete::Type,
chip::app::Clusters::GeneralCommissioning::Commands::CommissioningCompleteResponse::DecodableType>(
const chip::app::Clusters::GeneralCommissioning::Commands::CommissioningComplete::Type &, void *,
CommandResponseSuccessCallback<
chip::app::Clusters::GeneralCommissioning::Commands::CommissioningCompleteResponse::DecodableType>,
CommandResponseFailureCallback);
template CHIP_ERROR
ClusterBase::InvokeCommand<chip::app::Clusters::GeneralCommissioning::Commands::SetRegulatoryConfig::Type,
chip::app::Clusters::GeneralCommissioning::Commands::SetRegulatoryConfigResponse::DecodableType>(
const chip::app::Clusters::GeneralCommissioning::Commands::SetRegulatoryConfig::Type &, void *,
CommandResponseSuccessCallback<chip::app::Clusters::GeneralCommissioning::Commands::SetRegulatoryConfigResponse::DecodableType>,
CommandResponseFailureCallback);
template CHIP_ERROR
ClusterBase::InvokeCommand<chip::app::Clusters::NetworkCommissioning::Commands::DisableNetwork::Type,
chip::app::Clusters::NetworkCommissioning::Commands::DisableNetworkResponse::DecodableType>(
const chip::app::Clusters::NetworkCommissioning::Commands::DisableNetwork::Type &, void *,
CommandResponseSuccessCallback<chip::app::Clusters::NetworkCommissioning::Commands::DisableNetworkResponse::DecodableType>,
CommandResponseFailureCallback);
template CHIP_ERROR
ClusterBase::InvokeCommand<chip::app::Clusters::NetworkCommissioning::Commands::EnableNetwork::Type,
chip::app::Clusters::NetworkCommissioning::Commands::EnableNetworkResponse::DecodableType>(
const chip::app::Clusters::NetworkCommissioning::Commands::EnableNetwork::Type &, void *,
CommandResponseSuccessCallback<chip::app::Clusters::NetworkCommissioning::Commands::EnableNetworkResponse::DecodableType>,
CommandResponseFailureCallback);
template CHIP_ERROR
ClusterBase::InvokeCommand<chip::app::Clusters::NetworkCommissioning::Commands::RemoveNetwork::Type,
chip::app::Clusters::NetworkCommissioning::Commands::RemoveNetworkResponse::DecodableType>(
const chip::app::Clusters::NetworkCommissioning::Commands::RemoveNetwork::Type &, void *,
CommandResponseSuccessCallback<chip::app::Clusters::NetworkCommissioning::Commands::RemoveNetworkResponse::DecodableType>,
CommandResponseFailureCallback);
template CHIP_ERROR
ClusterBase::InvokeCommand<chip::app::Clusters::NetworkCommissioning::Commands::ScanNetworks::Type,
chip::app::Clusters::NetworkCommissioning::Commands::ScanNetworksResponse::DecodableType>(
const chip::app::Clusters::NetworkCommissioning::Commands::ScanNetworks::Type &, void *,
CommandResponseSuccessCallback<chip::app::Clusters::NetworkCommissioning::Commands::ScanNetworksResponse::DecodableType>,
CommandResponseFailureCallback);
template CHIP_ERROR ClusterBase::InvokeCommand<chip::app::Clusters::OperationalCredentials::Commands::AddNOC::Type,
chip::app::Clusters::OperationalCredentials::Commands::NOCResponse::DecodableType>(
const chip::app::Clusters::OperationalCredentials::Commands::AddNOC::Type &, void *,
CommandResponseSuccessCallback<chip::app::Clusters::OperationalCredentials::Commands::NOCResponse::DecodableType>,
CommandResponseFailureCallback);
template CHIP_ERROR
ClusterBase::InvokeCommand<chip::app::Clusters::OperationalCredentials::Commands::AddTrustedRootCertificate::Type,
chip::app::DataModel::NullObjectType>(
const chip::app::Clusters::OperationalCredentials::Commands::AddTrustedRootCertificate::Type &, void *,
CommandResponseSuccessCallback<chip::app::DataModel::NullObjectType>, CommandResponseFailureCallback);
template CHIP_ERROR
ClusterBase::InvokeCommand<chip::app::Clusters::OperationalCredentials::Commands::AttestationRequest::Type,
chip::app::Clusters::OperationalCredentials::Commands::AttestationResponse::DecodableType>(
const chip::app::Clusters::OperationalCredentials::Commands::AttestationRequest::Type &, void *,
CommandResponseSuccessCallback<chip::app::Clusters::OperationalCredentials::Commands::AttestationResponse::DecodableType>,
CommandResponseFailureCallback);
template CHIP_ERROR
ClusterBase::InvokeCommand<chip::app::Clusters::OperationalCredentials::Commands::CertificateChainRequest::Type,
chip::app::Clusters::OperationalCredentials::Commands::CertificateChainResponse::DecodableType>(
const chip::app::Clusters::OperationalCredentials::Commands::CertificateChainRequest::Type &, void *,
CommandResponseSuccessCallback<chip::app::Clusters::OperationalCredentials::Commands::CertificateChainResponse::DecodableType>,
CommandResponseFailureCallback);
template CHIP_ERROR ClusterBase::InvokeCommand<chip::app::Clusters::OperationalCredentials::Commands::OpCSRRequest::Type,
chip::app::Clusters::OperationalCredentials::Commands::OpCSRResponse::DecodableType>(
const chip::app::Clusters::OperationalCredentials::Commands::OpCSRRequest::Type &, void *,
CommandResponseSuccessCallback<chip::app::Clusters::OperationalCredentials::Commands::OpCSRResponse::DecodableType>,
CommandResponseFailureCallback);
template CHIP_ERROR ClusterBase::InvokeCommand<chip::app::Clusters::OperationalCredentials::Commands::RemoveFabric::Type,
chip::app::Clusters::OperationalCredentials::Commands::NOCResponse::DecodableType>(
const chip::app::Clusters::OperationalCredentials::Commands::RemoveFabric::Type &, void *,
CommandResponseSuccessCallback<chip::app::Clusters::OperationalCredentials::Commands::NOCResponse::DecodableType>,
CommandResponseFailureCallback);
template CHIP_ERROR ClusterBase::InvokeCommand<chip::app::Clusters::OperationalCredentials::Commands::UpdateFabricLabel::Type,
chip::app::Clusters::OperationalCredentials::Commands::NOCResponse::DecodableType>(
const chip::app::Clusters::OperationalCredentials::Commands::UpdateFabricLabel::Type &, void *,
CommandResponseSuccessCallback<chip::app::Clusters::OperationalCredentials::Commands::NOCResponse::DecodableType>,
CommandResponseFailureCallback);
template <typename RequestDataT, typename ResponseDataT>
CHIP_ERROR ClusterBase::InvokeCommand(const RequestDataT & requestData, void * context,
CommandResponseSuccessCallback<ResponseDataT> successCb,
CommandResponseFailureCallback failureCb)
{
VerifyOrReturnError(mDevice != nullptr, CHIP_ERROR_INCORRECT_STATE);
ReturnErrorOnFailure(mDevice->LoadSecureSessionParametersIfNeeded());
auto onSuccessCb = [context, successCb](const app::ConcreteCommandPath & commandPath, const app::StatusIB & aStatus,
const ResponseDataT & responseData) { successCb(context, responseData); };
auto onFailureCb = [context, failureCb](const app::StatusIB & aStatus, CHIP_ERROR aError) {
failureCb(context, app::ToEmberAfStatus(aStatus.mStatus));
};
return InvokeCommandRequest<ResponseDataT>(mDevice->GetExchangeManager(), mDevice->GetSecureSession().Value(), mEndpoint,
requestData, onSuccessCb, onFailureCb);
};
} // namespace Controller
} // namespace chip