12345678910111213141516171819202122232425262728293031 |
- #pragma once
- #include "nx/nxuri.h"
- #include "service/api_service.h"
- #include "component/ifc_component.h"
- #include "nu/PtrDeque.h"
- #include "component/ifc_component_sync.h"
- class ComponentManagerBase
- {
- public:
- void SetServiceAPI(api_service *service_api);
- int Load();
- protected:
- ComponentManagerBase();
- int LateLoad(ifc_component *mod);
- enum Phase
- {
- PHASE_INITIALIZE=0,
- PHASE_REGISTERED=1,
- PHASE_LOADING=2,
- PHASE_LOADED=3,
- };
- Phase phase;
- typedef nu::PtrDeque<ifc_component> ComponentList;
- ComponentList components;
- api_service *service_api;
- ifc_component_sync *component_sync;
- private:
-
- virtual void CloseComponent(ifc_component *component)=0;
- };
|