123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- #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
|