blob: af0f4163ded96f0cea2313986d702012e2f2bc15 [file] [log] [blame]
{{> header}}
{{#if (chip_has_client_clusters)}}
#include "CHIPCallbackTypes.h"
#include <jni.h>
#include <zap-generated/CHIPClientCallbacks.h>
{{#chip_server_global_responses}}
{{#unless (isStrEqual chipCallback.name "Unsupported")}}
class CHIP{{chipCallback.name}}AttributeCallback : public chip::Callback::Callback<{{chipCallback.name}}AttributeCallback> {
public:
CHIP{{chipCallback.name}}AttributeCallback(jobject javaCallback, bool keepAlive = false);
~CHIP{{chipCallback.name}}AttributeCallback();
static void maybeDestroy(CHIP{{chipCallback.name}}AttributeCallback * callback) {
if (!callback->keepAlive) {
callback->Cancel();
chip::Platform::Delete<CHIP{{chipCallback.name}}AttributeCallback>(callback);
}
}
static void CallbackFn(void * context, {{chipCallback.type}} value);
private:
jobject javaCallbackRef;
bool keepAlive;
};
{{/unless}}
{{/chip_server_global_responses}}
{{#chip_client_clusters}}
{{#chip_server_cluster_attributes}}
{{#unless (isStrEqual chipCallback.name "Unsupported")}}
{{#if_in_global_responses}}
{{else}}
class CHIP{{asUpperCamelCase parent.name}}{{asUpperCamelCase name}}AttributeCallback : public chip::Callback::Callback<CHIP{{asUpperCamelCase parent.name}}Cluster{{asUpperCamelCase name}}AttributeCallbackType>
{
public:
CHIP{{asUpperCamelCase parent.name}}{{asUpperCamelCase name}}AttributeCallback(jobject javaCallback, bool keepAlive = false);
~CHIP{{asUpperCamelCase parent.name}}{{asUpperCamelCase name}}AttributeCallback();
static void maybeDestroy(CHIP{{asUpperCamelCase parent.name}}{{asUpperCamelCase name}}AttributeCallback * callback) {
if (!callback->keepAlive) {
callback->Cancel();
chip::Platform::Delete<CHIP{{asUpperCamelCase parent.name}}{{asUpperCamelCase name}}AttributeCallback>(callback);
}
}
static void CallbackFn(void * context, {{zapTypeToDecodableClusterObjectType type ns=parent.name isArgument=true}} {{#if isList}}list{{else}}value{{/if}});
private:
jobject javaCallbackRef;
bool keepAlive;
};
{{/if_in_global_responses}}
{{/unless}}
{{/chip_server_cluster_attributes}}
{{/chip_client_clusters}}
{{/if}}