123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- // ----------------------------------------------------------------------------
- // 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;
- #endif // __API_SERVICE_H
|