rtc_plugins/include/IMRTCEngineFactory.hpp

45 lines
791 B
C++

#ifndef __I_RTC_ENGINE_FACTORY_HPP__
#define __I_RTC_ENGINE_FACTORY_HPP__
#include "IMRTCEngine.hpp"
RTCENGINE_NAMESPACE_BEGIN
class RTCENGINE_API IMRTCEngineFactory
{
public:
DELETE_CTOR_COPY(IMRTCEngineFactory);
//
// Constructor.
//
IMRTCEngineFactory() = default;
//
// Destructor.
//
virtual ~IMRTCEngineFactory() = default;
public:
//
// Create MRTCEngine.
//
virtual IMRTCEngine* produceMRTCEngine() = 0;
//
// Release MRTCEngine.
//
virtual void releaseMRTCEngine() = 0;
};
//
// Get MRTCEngine Factory.
//
RTCENGINE_API IMRTCEngineFactory* getMRTCEngineFactory();
//
// Relase MRTCEngine Factory.
//
RTCENGINE_API void releaseMRTCEngineFactory(IMRTCEngineFactory*& factory);
RTCENGINE_NAMESPACE_END
#endif