Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
135
Src/Agave/Config/api_config.h
Normal file
135
Src/Agave/Config/api_config.h
Normal file
|
@ -0,0 +1,135 @@
|
|||
#ifndef NULLSOFT_AGAVE_API_CONFIG_H
|
||||
#define NULLSOFT_AGAVE_API_CONFIG_H
|
||||
|
||||
#include "bfc/dispatch.h"
|
||||
|
||||
#include "ifc_configgroup.h"
|
||||
|
||||
enum
|
||||
{
|
||||
CONFIG_SUCCESS = 0,
|
||||
CONFIG_FAILURE = 1,
|
||||
CONFIG_GROUPNOTFOUND = 2,
|
||||
CONFIG_ITEMNOTFOUND = 3,
|
||||
};
|
||||
|
||||
class api_config : public Dispatchable
|
||||
{
|
||||
protected:
|
||||
api_config() {}
|
||||
~api_config() {}
|
||||
|
||||
public:
|
||||
ifc_configgroup *GetGroup( GUID groupGUID );
|
||||
void RegisterGroup( ifc_configgroup *newGroup );
|
||||
|
||||
/* Shortcut methods */
|
||||
bool GetBool( GUID groupGUID, const wchar_t *configItem, bool defaultValue );
|
||||
uintptr_t GetUnsigned( GUID groupGUID, const wchar_t *configItem, uintptr_t defaultValue );
|
||||
intptr_t GetInt( GUID groupGUID, const wchar_t *configItem, intptr_t defaultValue );
|
||||
float GetFloat( GUID groupGUID, const wchar_t *configItem, float defaultValue );
|
||||
const wchar_t *GetString( GUID groupGUID, const wchar_t *configItem, const wchar_t *defaultValue );
|
||||
ifc_configitem *GetItem( GUID groupGUID, const wchar_t *configItem );
|
||||
|
||||
DISPATCH_CODES
|
||||
{
|
||||
API_CONFIG_GETGROUP = 10,
|
||||
API_CONFIG_REGISTERGROUP = 20,
|
||||
};
|
||||
};
|
||||
|
||||
inline ifc_configgroup *api_config::GetGroup( GUID groupGUID )
|
||||
{
|
||||
return _call( API_CONFIG_GETGROUP, (ifc_configgroup *)0, groupGUID );
|
||||
}
|
||||
|
||||
inline void api_config::RegisterGroup( ifc_configgroup *newGroup )
|
||||
{
|
||||
_voidcall( API_CONFIG_REGISTERGROUP, newGroup );
|
||||
}
|
||||
|
||||
inline bool api_config::GetBool( GUID groupGUID, const wchar_t *configItem, bool defaultValue )
|
||||
{
|
||||
ifc_configgroup *group = GetGroup( groupGUID );
|
||||
if ( group )
|
||||
{
|
||||
ifc_configitem *item = group->GetItem( configItem );
|
||||
if ( item )
|
||||
return item->GetBool();
|
||||
}
|
||||
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
inline uintptr_t api_config::GetUnsigned( GUID groupGUID, const wchar_t *configItem, uintptr_t defaultValue )
|
||||
{
|
||||
ifc_configgroup *group = GetGroup( groupGUID );
|
||||
if ( group )
|
||||
{
|
||||
ifc_configitem *item = group->GetItem( configItem );
|
||||
if ( item )
|
||||
return item->GetUnsigned();
|
||||
}
|
||||
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
inline intptr_t api_config::GetInt( GUID groupGUID, const wchar_t *configItem, intptr_t defaultValue )
|
||||
{
|
||||
ifc_configgroup *group = GetGroup( groupGUID );
|
||||
if ( group )
|
||||
{
|
||||
ifc_configitem *item = group->GetItem( configItem );
|
||||
if ( item )
|
||||
return item->GetInt();
|
||||
}
|
||||
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
inline float api_config::GetFloat( GUID groupGUID, const wchar_t *configItem, float defaultValue )
|
||||
{
|
||||
ifc_configgroup *group = GetGroup( groupGUID );
|
||||
if ( group )
|
||||
{
|
||||
ifc_configitem *item = group->GetItem( configItem );
|
||||
if ( item )
|
||||
return item->GetFloat();
|
||||
}
|
||||
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
inline const wchar_t *api_config::GetString( GUID groupGUID, const wchar_t *configItem, const wchar_t *defaultValue )
|
||||
{
|
||||
ifc_configgroup *group = GetGroup( groupGUID );
|
||||
if ( group )
|
||||
{
|
||||
ifc_configitem *item = group->GetItem( configItem );
|
||||
if ( item )
|
||||
return item->GetString();
|
||||
}
|
||||
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
inline ifc_configitem *api_config::GetItem( GUID groupGUID, const wchar_t *configItem )
|
||||
{
|
||||
ifc_configgroup *group = GetGroup( groupGUID );
|
||||
if ( group )
|
||||
return group->GetItem( configItem );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// {AEFBF8BE-E0AA-4318-8CC1-4353410B64DC}
|
||||
static const GUID AgaveConfigGUID =
|
||||
{ 0xaefbf8be, 0xe0aa, 0x4318, { 0x8c, 0xc1, 0x43, 0x53, 0x41, 0xb, 0x64, 0xdc } };
|
||||
|
||||
extern api_config *configApi;
|
||||
|
||||
#ifndef AGAVE_API_CONFIG
|
||||
#define AGAVE_API_CONFIG configApi
|
||||
#endif // !AGAVE_API_CONFIG
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue