34 lines
771 B
C++
34 lines
771 B
C++
#ifndef CODE_PROVIDER
|
|
#define CODE_PROVIDER
|
|
#include "allocate/factory.h"
|
|
#include "code/return.h"
|
|
#include "inform/text_service.h"
|
|
#include "draw/window_service.h"
|
|
class provider_t {
|
|
friend class provider_factory_t;
|
|
public:
|
|
enum error_t {
|
|
none,
|
|
unknown
|
|
};
|
|
struct configuration_t {
|
|
text_service_t* text_service_m;
|
|
window_service_t* window_service_m;
|
|
};
|
|
configuration_t* configuration_m;
|
|
private:
|
|
provider_t(
|
|
configuration_t* configuration_p
|
|
);
|
|
};
|
|
class provider_factory_t : public factory_t<provider_t::configuration_t, provider_t, provider_t::error_t> {
|
|
public:
|
|
return_t<provider_t::error_t, provider_t*> create(
|
|
provider_t::configuration_t* configuration_p
|
|
);
|
|
void_t<provider_t::error_t> dispose(
|
|
provider_t* root_controller_p
|
|
);
|
|
};
|
|
#endif
|