Files
peko-android/core/libs/include/IAgoraService.h

74 lines
1.5 KiB
C++

// Agora SDK
//
// Copyright (c) 2019 Agora.io. All rights reserved.
//
#ifndef AGORA_SERVICE_H
#define AGORA_SERVICE_H
#include "AgoraBase.h"
namespace agora {
namespace rtc {
class IRtcEngine;
}
namespace rtm {
class IRtmService;
}
namespace base {
struct AgoraServiceContext {};
class IAgoraService {
protected:
virtual ~IAgoraService() {}
public:
AGORA_CPP_API static void release();
/** Initializes the engine.
@param context RtcEngine context.
@return
- 0: Success.
- < 0: Failure.
*/
virtual int initialize(const AgoraServiceContext& context) = 0;
/** Gets 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 agora
/** Gets the SDK version number.
@param build Build number of the Agora SDK.
@return
- 0: Success.
- < 0: Failure.
*/
AGORA_API const char* AGORA_CALL getAgoraSdkVersion(int* build);
/**
* Creates the RtcEngine object and returns the pointer.
* @param err Error code
* @return returns Description of the error code
*/
AGORA_API const char* AGORA_CALL getAgoraSdkErrorDescription(int err);
/**
* Creates the Agora Service object and returns the pointer.
* @return returns Pointer of the Agora Service object
*/
AGORA_API agora::base::IAgoraService* AGORA_CALL createAgoraService();
AGORA_API int AGORA_CALL setAgoraSdkExternalSymbolLoader(void* (*func)(const char* symname));
#endif