summaryrefslogtreecommitdiff
path: root/internal_rewrite/IAppSystem.hpp
blob: 61a6c8e81b1c94fd2d014f9dd06137d76531a479 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#pragma once

class AppSystemInfo_t;

enum InitReturnVal_t;

enum AppSystemTier_t {
	APP_SYSTEM_TIER0 = 0,
	APP_SYSTEM_TIER1,
	APP_SYSTEM_TIER2,
	APP_SYSTEM_TIER3,

	APP_SYSTEM_TIER_OTHER,
};


class IAppSystem {
public:
	virtual bool					Connect( void* factory ) = 0;
	virtual void					Disconnect( ) = 0;
	virtual void*					QueryInterface( const char* pInterfaceName ) = 0;
	virtual InitReturnVal_t			Init( ) = 0;
	virtual void					Shutdown( ) = 0;
	virtual const AppSystemInfo_t*	GetDependencies( ) = 0;
	virtual AppSystemTier_t			GetTier( ) = 0;
	virtual void					Reconnect( void* factory, const char* pInterfaceName ) = 0;
	virtual bool					IsSingleton( ) = 0;
};