Skip to content

Commit

Permalink
Merge pull request #776 from RostakaGmfun/KAA-1147
Browse files Browse the repository at this point in the history
KAA-1147: Extend C++ page
  • Loading branch information
rasendubi committed Jun 21, 2016
2 parents 8e6cb29 + 80415f7 commit 73f0b68
Showing 1 changed file with 78 additions and 63 deletions.
141 changes: 78 additions & 63 deletions doc/Programming-guide/Using-Kaa-endpoint-SDKs/C++/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,134 +9,149 @@ sort_idx: 20
{% assign root_url = page.url | split: '/'%}
{% capture root_url %} /{{root_url[1]}}/{{root_url[2]}}/{% endcapture %}

## Introduction
Kaa C++ SDK is a cross-platform implementation of Kaa Endpoint.
It enables IoT functionality on any platform which provides C++ runtime.

Kaa C++ SDK is a cross-platform implementation of Kaa endpoints.
It enables high-performance IoT functionality on any platform which provides C++ runtime.
This means that you can deploy C++ clients on any hardware platform supported by Linux.
## Field of application

In case you need to run Kaa endpoints on more low-end hardware, consider using [Kaa C SDK]({{root_url}}/Programming-guide/Using-Kaa-endpoint-SDKs/C).
Kaa C++ SDK is a good choice for major operating systems and high-end embedded platforms.
It is good at building high-performance gateways and endpoints for you IoT infrastructure.

This page describes build configuration for Kaa C++ SDK.
For detailed installation instructions for different platforms, check the corresponding subpages.
In case you need to run Kaa endpoints on bare metal hardware, consider using [the C SDK]({{root_url}}/Programming-guide/Using-Kaa-endpoint-SDKs/C).

For in-depth architecture overview, refer to [C++ SDK architecture overview page]({{root_url}}/Customization-guide/Endpoint-SDKs/C++-SDK/Architecture-overview/).

## Environment setup

To build C++ SDK, you should install dependencies first:

* Avro C++
* Boost
* Botan
* SQLite3 (optional)

Installation may differ depending on the target platform.
For detailed platform-specific instructions, check the corresponding subpages.

Another way to setup required dependencies is by using [Nix package mananger]({{root_url}}/Customization-guide/Endpoint-SDKs/C-SDK/Environment-setup/Nix-guide).
However, this is more suitable for SDK development rather than development of applications based on SDK.

## Build configuration

The Kaa C++ SDK makes use of CMake build system. There is a number of configuration parameters which can be passed to CMake in order to tweak SDK build.
This section covers build configuration for Kaa C++ SDK.
The Kaa C++ SDK uses CMake build system. There are some configuration parameters which can be passed to CMake to tweak SDK build.
The complete summary of these parameters follows.


* `KAA_MAX_LOG_LEVEL` - specifies maximum log level the SDK should produce.
- `KAA_MAX_LOG_LEVEL` - maximum log level the SDK should produce.

Values:

* `0` - `NONE`
* `1` - `FATAL`
* `2` - `ERROR`
* `3` - `WARN`
* `4` - `INFO`
* `5` - `DEBUG`
* `6` - `TRACE`
- `0` - `NONE`
- `1` - `FATAL`
- `2` - `ERROR`
- `3` - `WARN`
- `4` - `INFO`
- `5` - `DEBUG`
- `6` - `TRACE`

Default: `4`.

* `KAA_WITHOUT_EVENTS` - disable Event feature.
- `KAA_WITHOUT_EVENTS` - disable Event feature.

Values:

* `1` - Event feature disabled
* `0` - Event feature enabled
- `1` - Event feature is disabled
- `0` - Event feature is enabled

Default: `0`.

* `KAA_WITHOUT_NOTIFICATION` - disable Notification feature.
- `KAA_WITHOUT_NOTIFICATION` - disable Notification feature.

Values:

* `1` - Notification feature disabled
* `0` - Notification feature enabled
- `1` - Notification feature is disabled
- `0` - Notification feature is enabled

Default: `0`.

* `KAA_WITHOUT_CONFIGURATION` - disable Configuration feature.
- `KAA_WITHOUT_CONFIGURATION` - disable Configuration feature.

Values:

* `1` - Configuration feature disabled
* `0` - Configuration feature enabled
- `1` - Configuration feature is disabled
- `0` - Configuration feature is enabled

Default: `0`.

* `KAA_WITHOUT_LOGGING` - disable Logging feature.
- `KAA_WITHOUT_LOGGING` - disable Logging feature.

Values:

* `1` - Logging feature disabled
* `0` - Logging feature enabled
- `1` - Logging feature is disabled
- `0` - Logging feature is enabled

Default: `0`.

* `KAA_WITH_SQLITE_STORAGE` - enables SQLite storage for Logging feature.
This requires SQLite3 headers present on system.
- `KAA_WITH_SQLITE_STORAGE` - enables SQLite storage for Logging feature.
That requires SQLite3 headers present on the system.

Values:

* `0` - SQLite storage disabled
* `1` - SQLite storage enabled
- `0` - SQLite storage is disabled
- `1` - SQLite storage is enabled

Default: `0`.

* `KAA_WITHOUT_THREADSAFE` - disable thread safe mode. Otherwise, Kaa SDK will maintain a thread pool.
- `KAA_WITHOUT_THREADSAFE` - disable thread safe mode. Otherwise, Kaa SDK will maintain a thread pool.

Values:

* `0` - Threadsafe mode enabled
* `1` - Threadsafe mode disabled
- `0` - Threadsafe mode is enabled
- `1` - Threadsafe mode is disabled

Default: `0`.

* `KAA_WITHOUT_CONNECTIVITY_CHECKER` - disable connectivity checking. Should be used if you implement custom connectivity checker.
- `KAA_WITHOUT_CONNECTIVITY_CHECKER` - disable connectivity checking. Should be used if you implement custom connectivity checker.

Values:

* `0` - Default connectivity checking enabled
* `1` - Default connectivity checking disabled
- `0` - Default connectivity checking is enabled
- `1` - Default connectivity checking is disabled

Default: `0`.

* `KAA_WITHOUT_OPERATION_HTTP_CHANNEL` - disable default Operation HTTP channel. Should be used if you implement custom Opearation channel.
- `KAA_WITHOUT_OPERATION_HTTP_CHANNEL` - disable default Operation HTTP channel. Should be used if you implement custom Operation channel.

Values:

* `0` - Default Operation HTTP channel enabled
* `1` - Default Operation HTTP channel disabled
- `0` - Default Operation HTTP channel is enabled
- `1` - Default Operation HTTP channel is disabled

Default: `0`.

* `KAA_WITHOUT_OPERATION_TCP_CHANNEL` - disable default Operation TCP channel. Should be used if you implement custom Opearation channel.
- `KAA_WITHOUT_OPERATION_TCP_CHANNEL` - disable default Operation TCP channel. Should be used if you implement custom Operation channel.

Values:

* `0` - Default Operation TCP channel enabled
* `1` - Default Operation TCP channel disabled
- `0` - Default Operation TCP channel is enabled
- `1` - Default Operation TCP channel is disabled

Default: `0`.

* `KAA_WITHOUT_OPERATION_LONG_POLL_CHANNEL` - disable default Operation long poll channel. Should be used if you implement custom Opearation channel.
- `KAA_WITHOUT_OPERATION_LONG_POLL_CHANNEL` - disable default Operation long poll channel. Should be used if you implement custom Operation channel.

Values:

* `0` - Default Operation long poll channel enabled
* `1` - Default Operation long poll channel disabled
- `0` - Default Operation long poll channel is enabled
- `1` - Default Operation long poll channel is disabled

Default: `0`.

* `KAA_WITHOUT_BOOTSTRAP_HTTP_CHANNEL` - disable default Bootstrap HTTP channel. Should be used if you implement custom Bootstrap channel.
- `KAA_WITHOUT_BOOTSTRAP_HTTP_CHANNEL` - disable default Bootstrap HTTP channel. Should be used if you implement custom Bootstrap channel.

Values:

* `0` - Default Bootstrap HTTP channel enabled
* `1` - Default Bootstrap HTTP channel disabled

Default: `0`.
- `0` - Default Bootstrap HTTP channel is enabled
- `1` - Default Bootstrap HTTP channel is disabled

Default: `0`.

0 comments on commit 73f0b68

Please sign in to comment.