123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- // ----------------------------------------------------------------------------
- // Generated by InterfaceFactory [Wed May 07 00:56:11 2003]
- //
- // File : api_service.h
- // Class : api_service
- // class layer : Dispatchable Interface
- // ----------------------------------------------------------------------------
- #ifndef __API_SERVICE_H
- #define __API_SERVICE_H
- #include "bfc/dispatch.h"
- #include "bfc/platform/types.h"
- namespace SvcNotify
- {
- enum
- {
- ONREGISTERED = 100, // init yourself here -- not all other services are registered yet
- ONSTARTUP = 200, // everyone is initialized, safe to talk to other services
- ONAPPRUNNING = 210, // app is showing and processing events
- ONSHUTDOWN = 300, // studio is shutting down, release resources from other services
- ONDEREGISTERED = 400, // bye bye
- ONDBREADCOMPLETE = 500, // after db is read in (happens asynchronously after ONSTARTUP)
- ONBEFORESHUTDOWN = 600, // system is about to shutdown, call WASABI_API_APP->main_cancelShutdown() to cancel
- };
- }
- class waServiceFactory;
- // ----------------------------------------------------------------------------
- class NOVTABLE api_service : public Dispatchable
- {
- protected:
- api_service() {}
- ~api_service() {}
- public:
- int service_register( waServiceFactory *svc );
- int service_deregister( waServiceFactory *svc );
- size_t service_getNumServices( FOURCC svc_type );
- waServiceFactory *service_enumService( FOURCC svc_type, size_t n );
- waServiceFactory *service_getServiceByGuid( GUID guid );
- int service_lock( waServiceFactory *owner, void *svcptr );
- int service_clientLock( void *svcptr );
- int service_release( void *svcptr );
- const char *service_getTypeName( FOURCC svc_type );
- #ifdef WASABI_COMPILE_COMPONENTS
- GUID service_getOwningComponent( void *svcptr );
- GUID service_getLockingComponent( void *svcptr );
- #endif // WASABI_COMPILE_COMPONENTS
- int service_unlock( void *svcptr );
- int service_isvalid( FOURCC svctype, waServiceFactory *service );
- // removes "me" from the services list and finds a second service with the same GUID and puts it in the same position
- // this is used by the lazy loader service factory - you shouldn't need it for any other purposes.
- // returns 0 if compaction actually happened
- int service_compactDuplicates( waServiceFactory *me );
- protected:
- enum
- {
- API_SERVICE_SERVICE_REGISTER = 10,
- API_SERVICE_SERVICE_DEREGISTER = 20,
- API_SERVICE_SERVICE_GETNUMSERVICES = 30,
- API_SERVICE_SERVICE_ENUMSERVICE = 40,
- API_SERVICE_SERVICE_GETSERVICEBYGUID = 50,
- API_SERVICE_SERVICE_LOCK = 60,
- API_SERVICE_SERVICE_CLIENTLOCK = 70,
- API_SERVICE_SERVICE_RELEASE = 80,
- API_SERVICE_SERVICE_GETTYPENAME = 90,
- #ifdef WASABI_COMPILE_COMPONENTS
- API_SERVICE_SERVICE_GETOWNINGCOMPONENT = 100,
- API_SERVICE_SERVICE_GETLOCKINGCOMPONENT = 110,
- #endif // WASABI_COMPILE_COMPONENTS
- API_SERVICE_SERVICE_UNLOCK = 120,
- API_SERVICE_ISVALID = 130,
- API_SERVICE_COMPACT_DUPLICATES = 140,
- };
- };
- // ----------------------------------------------------------------------------
- inline int api_service::service_register( waServiceFactory *svc )
- {
- int __retval = _call( API_SERVICE_SERVICE_REGISTER, (int)0, svc );
- return __retval;
- }
- inline int api_service::service_deregister( waServiceFactory *svc )
- {
- int __retval = _call( API_SERVICE_SERVICE_DEREGISTER, (int)0, svc );
- return __retval;
- }
- inline size_t api_service::service_getNumServices( FOURCC svc_type )
- {
- int __retval = _call( API_SERVICE_SERVICE_GETNUMSERVICES, (int)0, svc_type );
- return __retval;
- }
- inline waServiceFactory *api_service::service_enumService( FOURCC svc_type, size_t n )
- {
- waServiceFactory *__retval = _call( API_SERVICE_SERVICE_ENUMSERVICE, (waServiceFactory *)0, svc_type, n );
- return __retval;
- }
- inline waServiceFactory *api_service::service_getServiceByGuid( GUID guid )
- {
- waServiceFactory *__retval = _call( API_SERVICE_SERVICE_GETSERVICEBYGUID, (waServiceFactory *)0, guid );
- return __retval;
- }
- inline int api_service::service_lock( waServiceFactory *owner, void *svcptr )
- {
- int __retval = _call( API_SERVICE_SERVICE_LOCK, (int)0, owner, svcptr );
- return __retval;
- }
- inline int api_service::service_clientLock( void *svcptr )
- {
- int __retval = _call( API_SERVICE_SERVICE_CLIENTLOCK, (int)0, svcptr );
- return __retval;
- }
- inline int api_service::service_release( void *svcptr )
- {
- int __retval = _call( API_SERVICE_SERVICE_RELEASE, (int)0, svcptr );
- return __retval;
- }
- inline const char *api_service::service_getTypeName( FOURCC svc_type )
- {
- const char *__retval = _call( API_SERVICE_SERVICE_GETTYPENAME, (const char *)0, svc_type );
- return __retval;
- }
- #ifdef WASABI_COMPILE_COMPONENTS
- inline GUID api_service::service_getOwningComponent( void *svcptr )
- {
- GUID __retval = _call( API_SERVICE_SERVICE_GETOWNINGCOMPONENT, INVALID_GUID, svcptr );
- return __retval;
- }
- inline GUID api_service::service_getLockingComponent( void *svcptr )
- {
- GUID __retval = _call( API_SERVICE_SERVICE_GETLOCKINGCOMPONENT, INVALID_GUID, svcptr );
- return __retval;
- }
- #endif // WASABI_COMPILE_COMPONENTS
- inline int api_service::service_unlock( void *svcptr )
- {
- int __retval = _call( API_SERVICE_SERVICE_UNLOCK, (int)0, svcptr );
- return __retval;
- }
- inline int api_service::service_isvalid( FOURCC svctype, waServiceFactory *service )
- {
- int __retval = _call( API_SERVICE_ISVALID, (int)0, svctype, service );
- return __retval;
- }
- inline int api_service::service_compactDuplicates( waServiceFactory *me )
- {
- return _call( API_SERVICE_COMPACT_DUPLICATES, (int)1, me );
- }
- // ----------------------------------------------------------------------------
- extern api_service *serviceApi;
- #ifndef WASABI_API_SVC
- #define WASABI_API_SVC serviceApi
- #endif // !WASABI_API_SVC
- #endif // __API_SERVICE_H
|