Starting the SDK

The RUISDK.StartSDK function starts the SDK. RUISDK.StartSDK must be paired with a call to RUISDK.StopSDK.

After the SDK is started, the various event tracking APIs are available to be used. If RUISDK.CreateConfig did not detect a configuration file, RUISDK.StartSDK will perform a New Registration with the Server. Until a New Registration is complete, the SDK will not be able to save event data to a log file or perform synchronization with the Server. A successful New Registration (or presence of a configuration file) will put the SDK into a normal running state, whereby events are saved to a log file, automatic and manual synchronizations with the Server are possible, and getting ReachOut campaigns from the Server are possible. A failed New Registration will put the SDK into an aborted state, not allowing further activity.

RUISDK.StartSDK must be called after RUISDK.CreateConfig, and must be called only once.

RUISDK.StartSDK is an asynchronous function, returning immediately with further functionality executed on separate thread(s).

If RUISDK.OptOut is called before a new registration has been done for a user, the SDK will not sync any system and product information and no data is recorded for the user. The SDK will inform the server once that there is an opted out user for reporting opt-out statistics only.

RUISDK.StartSDK

RUIResult RUISDK.StartSDK ()

Returns

The RUISDK.StartSDK function returns a RUIResult enum value with the following possible values.

RUISDK.StartSDK Returns

Return

Description

ok

Synchronous functionality successful.

sdkInternalErrorFatal

Irrecoverable internal fatal error. No further API calls should be made.

sdkAborted

A required New Registration has failed, and hence the SDK is aborted. RUISDK.StopSDK and RUISDK destructor are possible.

sdkPermanentlyDisabled

The Server has instructed a permanent disable.

configNotCreated

Configuration has not been successfully created.

sdkAlreadyStarted

SDK has already been successfully started.

sdkAlreadyStopped

SDK has already been successfully stopped.