| /* |
| * |
| * Copyright (c) 2023 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. |
| */ |
| |
| #include <app-common/zap-generated/cluster-objects.h> |
| #include <app/util/af-enums.h> |
| |
| typedef void (*CHIPDefaultSuccessCallbackType)(void *, const chip::app::DataModel::NullObjectType &); |
| typedef void (*CHIPDefaultWriteSuccessCallbackType)(void *); |
| typedef void (*CHIPDefaultFailureCallbackType)(void *, CHIP_ERROR); |
| |
| {% for cluster in clientClusters | sort(attribute='code') %} |
| {%- for response in cluster.structs | select('is_response_struct') -%} |
| typedef void (*CHIP{{cluster.name}}Cluster{{response.name}}CallbackType)(void *, const chip::app::Clusters::{{cluster.name}}::Commands::{{response.name}}::DecodableType &); |
| {%- endfor -%} |
| |
| {#- TODO: global response types? -#} |
| {%- for attribute in cluster.attributes | sort(attribute='name') %} |
| typedef void (*CHIP{{cluster.name}}Cluster{{attribute.definition.name | upfirst}}AttributeCallbackType)(void *, {##} |
| {%- if attribute.definition.is_list -%} |
| const chip::app::Clusters::{{cluster.name}}::Attributes::{{attribute.definition.name | upfirst}}::TypeInfo::DecodableType &); |
| {%- else -%} |
| chip::app::Clusters::{{cluster.name}}::Attributes::{{attribute.definition.name | upfirst}}::TypeInfo::DecodableArgType); |
| {%- endif -%} |
| {%- endfor -%} |
| {% endfor %} |
| |