Initial idea
This commit is contained in:
57
anscloud-gateway/include/anscloud/gateway/gateway_agent_c.h
Normal file
57
anscloud-gateway/include/anscloud/gateway/gateway_agent_c.h
Normal file
@@ -0,0 +1,57 @@
|
||||
#pragma once
|
||||
#ifndef ANSCLOUD_GATEWAY_AGENT_C_H
|
||||
#define ANSCLOUD_GATEWAY_AGENT_C_H
|
||||
|
||||
#ifdef ANSCLOUD_GATEWAY_EXPORTS
|
||||
#define ANSCLOUD_GATEWAY_CAPI __declspec(dllexport)
|
||||
#else
|
||||
#define ANSCLOUD_GATEWAY_CAPI __declspec(dllimport)
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct AnsGatewayAgent* AnsGatewayAgentHandle;
|
||||
|
||||
typedef struct {
|
||||
const char* host;
|
||||
int port;
|
||||
const char* username;
|
||||
const char* password;
|
||||
const char* vhost;
|
||||
int use_tls;
|
||||
} AnsGatewayBrokerConfig;
|
||||
|
||||
typedef struct {
|
||||
const char* username;
|
||||
const char* password;
|
||||
const char* vhost;
|
||||
} AnsGatewayCredentials;
|
||||
|
||||
typedef struct {
|
||||
AnsGatewayBrokerConfig broker;
|
||||
AnsGatewayCredentials credentials;
|
||||
int device_timeout_seconds;
|
||||
int default_command_timeout_seconds;
|
||||
int max_pending_commands;
|
||||
} AnsGatewayConfig;
|
||||
|
||||
// Callbacks - all receive JSON strings
|
||||
typedef void (*AnsGatewayTelemetryCallbackFn)(const char* telemetry_json, void* user_data);
|
||||
typedef void (*AnsGatewayHeartbeatCallbackFn)(const char* heartbeat_json, void* user_data);
|
||||
typedef void (*AnsGatewayEventCallbackFn)(const char* event_json, void* user_data);
|
||||
typedef void (*AnsGatewayDeviceStatusCallbackFn)(const char* device_id, const char* status, void* user_data);
|
||||
typedef void (*AnsGatewayConnectionCallbackFn)(int connected, void* user_data);
|
||||
typedef void (*AnsGatewayErrorCallbackFn)(const char* error, void* user_data);
|
||||
|
||||
//=============================================================================
|
||||
// Lifecycle
|
||||
//=============================================================================
|
||||
ANSCLOUD_GATEWAY_CAPI AnsGatewayAgentHandle ansgateway_create(void);
|
||||
ANSCLOUD_GATEWAY_CAPI void ansgateway_destroy(AnsGatewayAgentHandle handle);
|
||||
ANSCLOUD_GATEWAY_CAPI int ansgateway_configure(AnsGatewayAgentHandle handle, const AnsGatewayConfig* config);
|
||||
ANSCLOUD_GATEWAY_CAPI int ansgateway_start(AnsGatewayAgentHandle handle);
|
||||
ANSCLOUD_GATEWAY_CAPI void ansgateway_stop(AnsGatewayAgentHandle handle);
|
||||
ANSCLOUD_GATEWAY_CAPI int ansgateway_is_running(AnsGatewayAgentHandle handle);
|
||||
ANSCLOUD_GATEWAY_CAPI int ansgateway_is_connected(AnsGatewayAgentHandle handle);
|
||||
Reference in New Issue
Block a user