12345678910111213141516171819202122232425262728293031323334353637383940 |
- #pragma once
- #ifndef NULLSOFT_UTILITY_SERVICE_BUILDER_H
- #define NULLSOFT_UTILITY_SERVICE_BUILDER_H
- #include <api/service/waservicefactoryi.h>
- #include <api/service/services.h>
- #ifndef WASABI_API_SVC
- #define WASABI_API_SVC serviceManager
- #endif
- template <class api_T>
- static void ServiceBuild(api_service *service, api_T *&api_t, GUID factoryGUID_t)
- {
- if (service)
- {
- waServiceFactory *factory = service->service_getServiceByGuid(factoryGUID_t);
- if (factory)
- {
- api_t = reinterpret_cast<api_T *>( factory->getInterface() );
- }
- }
- }
- template <class api_T>
- static void ServiceRelease(api_service *service, api_T *&api_t, GUID factoryGUID_t)
- {
- if (service && api_t)
- {
- waServiceFactory *factory = service->service_getServiceByGuid(factoryGUID_t);
- if (factory)
- {
- factory->releaseInterface(api_t);
- }
- }
- api_t = NULL;
- }
- #endif
|