Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
43
Src/replicant/component/ComponentManagerBase.h
Normal file
43
Src/replicant/component/ComponentManagerBase.h
Normal file
|
@ -0,0 +1,43 @@
|
|||
#pragma once
|
||||
#include "nx/nxuri.h"
|
||||
#include "service/api_service.h"
|
||||
#include "component/ifc_component.h"
|
||||
#include <deque>
|
||||
#include "component/ifc_component_sync.h"
|
||||
|
||||
class ComponentManagerBase
|
||||
{
|
||||
public:
|
||||
void SetServiceAPI(api_service *service_api);
|
||||
int Load();
|
||||
|
||||
void SetFrameworkGUID(GUID guid);
|
||||
GUID GetFrameworkGUID();
|
||||
void SetApplicationGUID(GUID guid);
|
||||
GUID GetApplicationGUID();
|
||||
|
||||
virtual int AddComponent(ifc_component *component);
|
||||
|
||||
protected:
|
||||
ComponentManagerBase();
|
||||
int LateLoad(ifc_component *mod);
|
||||
enum Phase
|
||||
{
|
||||
PHASE_INITIALIZE=0, /* components are still being added */
|
||||
PHASE_REGISTERED=1, /* RegisterServices() has been called on all components */
|
||||
PHASE_LOADING=2, /* OnLoading() has been called on all components */
|
||||
PHASE_LOADED=3, /* OnLoaded() has been called on all components */
|
||||
};
|
||||
Phase phase;
|
||||
typedef std::deque<ifc_component*> ComponentList;
|
||||
ComponentList components;
|
||||
api_service *service_api;
|
||||
ifc_component_sync *component_sync;
|
||||
|
||||
GUID framework_guid;
|
||||
GUID application_guid;
|
||||
|
||||
private:
|
||||
/* your implementation needs to override this. You should call FreeLibrary(component->component_info.hModule); or dlclose(component->component_info.dl_handle); or similar */
|
||||
virtual void CloseComponent(ifc_component *component)=0;
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue