123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #include "main.h"
- #include "./component.h"
- #include "./deviceManagerFactory.h"
- static DeviceManagerFactory deviceManagerFactory;
- DevicesComponent::DevicesComponent()
- {
- InitializeCriticalSection(&lock);
- }
- DevicesComponent::~DevicesComponent()
- {
- EnterCriticalSection(&lock);
-
- ReleaseServices();
- LeaveCriticalSection(&lock);
- DeleteCriticalSection(&lock);
- }
- size_t DevicesComponent::AddRef()
- {
- return 1;
- }
- size_t DevicesComponent::Release()
- {
- return 1;
- }
- int DevicesComponent::QueryInterface(GUID interface_guid, void **object)
- {
- if (NULL == object)
- return E_POINTER;
- *object = NULL;
- return E_NOINTERFACE;
- }
- void DevicesComponent::RegisterServices(api_service *service)
- {
- EnterCriticalSection(&lock);
- deviceManagerFactory.Register(service);
- LeaveCriticalSection(&lock);
- aTRACE_LINE("Devices Service Registered");
- }
- int DevicesComponent::RegisterServicesSafeModeOk()
- {
- return 1;
- }
- void DevicesComponent::DeregisterServices(api_service *service)
- {
- EnterCriticalSection(&lock);
- deviceManagerFactory.Unregister(service);
- ReleaseServices();
- LeaveCriticalSection(&lock);
- aTRACE_LINE("Devices Service Unregistered");
- }
- void DevicesComponent::ReleaseServices()
- {
- }
- #define CBCLASS DevicesComponent
- START_DISPATCH;
- CB(ADDREF, AddRef)
- CB(RELEASE, Release)
- CB(QUERYINTERFACE, QueryInterface)
- VCB(API_WA5COMPONENT_REGISTERSERVICES, RegisterServices)
- CB(15, RegisterServicesSafeModeOk)
- VCB(API_WA5COMPONENT_DEREEGISTERSERVICES, DeregisterServices)
- END_DISPATCH;
- #undef CBCLASS
|