00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _ISUBSYSTEMS_ALLOCATOR_H_
00022 #define _ISUBSYSTEMS_ALLOCATOR_H_
00023
00024 #include <boost/utility.hpp>
00025
00026 #include "IThreadCallable.h"
00027 #include "ILogicCallable.h"
00028 #include "IRenderCallable.h"
00029 #include "Scene.h"
00030 #include "ITab.h"
00031 #include "UserEventQueue.h"
00032
00033 namespace TestFrameWork
00034 {
00035
00036 class ISubsystemsAllocator :
00037 boost::noncopyable
00038 {
00039 public:
00040 virtual IRenderCallablePtr AllocateRender(ScenePtr scene, HDC canvasContext, size_t width, size_t height) const = 0;
00041
00042 virtual ILogicCallablePtr AllocateLogic(ScenePtr scene) const = 0;
00043
00044 virtual ScenePtr AllocateScene(void) const = 0;
00045
00046 virtual ITabVector AllocateSettingsTabs(UserEventQueue& eventQueue) const = 0;
00047
00048 protected:
00049 ISubsystemsAllocator(void){};
00050 virtual ~ISubsystemsAllocator(void) = 0{};
00051 };
00052
00053 }
00054
00055 #endif