To create a basic TT Core SDK application, you need to:
-
Create a class that is derived from
ttsdk::IEventHandler and defines your SDK
event handler. You must provide implementations for:
- virtual void OnStatus(const Status status) = 0;
- Create an instance of the TTSDKOptions class. Define the TT environment to which your application will connect and specify your application key for this environment.
-
Initialize the TT Core SDK passing your
TTSDKOptions instance variable and your SDK
event handler instance variable.
- Once an application initializes the TT Core SDK shared library, all other applications will use the same instance. Any subsequent calls will be a no-op.
The following code snippet demonstrates an example of this process.
#include <iostream>
#include <iomanip>
#include <atomic>
#include <sstream>
#include <string.h>
#include <tt_cplus_sdk.h>
#include <condition_variable>
std::mutex mutex;
std::condition_variable sdkReadyCondition;
//
// SDK event handler class
//
class SDKEventHandler : public ttsdk::IEventHandler
{
public:
SDKEventHandler() : IEventHandler() {}
virtual ~SDKEventHandler() {}
// received on an SDK managed thread that can be used for processing.
// beware that time consuming tasks can delay the delivery of another status event.
virtual void OnStatus(const ttsdk::IEventHandler::Status status) override
{
if (status == ttsdk::IEventHandler::Status::INITIALIZED)
{
std::cout lock(mutex);
sdkReadyCondition.notify_one();
}
else
{
std::cout lock(mutex);
if (sdkReadyCondition.wait_for(lock, std::chrono::seconds(300)) == std::cv_status::timeout)
{
std::cout >>>>" > command)
{
if (command == "q")
{
std::cout