// AR SDK
|
//
|
// Copyright (c) 2019 AR.io. All rights reserved.
|
//
|
|
#ifndef __I_AR_SERVICE_H__
|
#define __I_AR_SERVICE_H__
|
#include "ArBase.h"
|
|
namespace ar {
|
namespace rtc {
|
class IRtcEngine;
|
}
|
namespace rtm {
|
class IRtmService;
|
}
|
namespace base {
|
|
struct ARServiceContext
|
{
|
};
|
|
|
class IARService
|
{
|
protected:
|
virtual ~IARService(){}
|
public:
|
virtual void release() = 0;
|
|
/** Initializes the engine.
|
|
@param context RtcEngine context.
|
@return
|
- 0: Success.
|
- < 0: Failure.
|
*/
|
virtual int initialize(const ARServiceContext& context) = 0;
|
|
/** Retrieves the SDK version number.
|
* @param build Build number.
|
* @return The current SDK version in the string format. For example, 2.4.0
|
*/
|
virtual const char* getVersion(int* build) = 0;
|
|
virtual rtm::IRtmService* createRtmService() = 0;
|
};
|
|
} //namespace base
|
} // namespace ar
|
|
/** Gets the SDK version number.
|
|
@param build Build number of the AR SDK.
|
@return
|
- 0: Success.
|
- < 0: Failure.
|
*/
|
AR_API const char* AR_CALL getARSdkVersion(int* build);
|
|
/**
|
* Creates the RtcEngine object and returns the pointer.
|
* @param err Error code
|
* @return returns Description of the error code
|
*/
|
AR_API const char* AR_CALL getARSdkErrorDescription(int err);
|
|
/**
|
* Creates the AR Service object and returns the pointer.
|
* @return returns Pointer of the AR Service object
|
*/
|
AR_API ar::base::IARService* AR_CALL createARService();
|
|
AR_API int AR_CALL setARSdkExternalSymbolLoader(void* (*func)(const char* symname));
|
|
#endif
|