Cypress Bluetooth Mesh Gateway
Cloud Client base class and sub-classes, CloudClient Factory class

General Description

CloudClient defines a base class to enable Bluetooth Mesh Gateway with different Cloud clients.

Goal is to abstract the cloud-client properties from application flow of Bluetooth Mesh Gateway and allow application to choose and configure different Cloud services seamlessly with minimal application code change. For example, one may wish to use Bluetooth Mesh Gateway with different cloud services like AWS-IoT, IBM BlueMix, Azure etc. This selection may be hard-coded at compile time or in more complex applications can be run-time as well. It is also possible that a Bluetooth Mesh Gateway requires to be connected to two or more cloud services. Such a scenario is out-of-scope for now but these classes and data-structures are designed to handle such scenarios easily.

ClientSecurity aws_security_params;
ClientConnectionParams aws_conn_params;
CloudClient* c = f.getClient("my_client", CLIENT_MQTT_AWS, aws_security_params);
c.connect(aws_conn_params);
ClientSecurity bmix_security_params;
ClientConnectionParams bmix_conn_params;
c = f.getClient("my_client", CLIENT_MQTT_BLUEMIX, bmix_security_params);
c.connect(bmix_conn_params);

Data Structures

union  _ClientSecurity
 Defines a CloudClient base class. More...
 
class  ClientSecurity
 Defines Client Security object with security-params and methods. More...
 
struct  ClientConnectionParams
 Defines Cloud-Client Connection Parameters. More...
 
class  CloudClient
 Defines a CloudClient base class. More...
 
class  AWSMQTTClient
 Defines AWS MQTT Cloud Client class - Uses Cypress' AWS IoT library. More...
 
class  CloudClientFactory
 Defines Cloud-Client Factory class. More...