cpp_launchpad/compile/code/provider.h

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