Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
60
Src/nu/ServiceWatcher.h
Normal file
60
Src/nu/ServiceWatcher.h
Normal file
|
@ -0,0 +1,60 @@
|
|||
#pragma once
|
||||
#include <api/service/api_service.h>
|
||||
#include <api/syscb/callbacks/svccb.h>
|
||||
#include <map>
|
||||
#include <api/syscb/api_syscb.h>
|
||||
|
||||
class ServiceWatcher : public SysCallback
|
||||
{
|
||||
public:
|
||||
ServiceWatcher() : serviceManager(0),systemCallbacks(0) {}
|
||||
~ServiceWatcher();
|
||||
|
||||
void WatchWith(api_service *_serviceApi);
|
||||
|
||||
template <class T>
|
||||
void WatchFor(T **ptr, GUID watchGUID)
|
||||
{
|
||||
WatchForT((void **)ptr, watchGUID);
|
||||
}
|
||||
void StopWatching();
|
||||
void Clear();
|
||||
private:
|
||||
void WatchForT(void **ptr, GUID watchGUID);
|
||||
typedef std::map<GUID, void **> WatchList;
|
||||
WatchList watchList;
|
||||
FOURCC GetEventType() { return SysCallback::SERVICE; }
|
||||
int Notify(int msg, intptr_t param1, intptr_t param2);
|
||||
api_service *serviceManager;
|
||||
api_syscb *systemCallbacks;
|
||||
protected:
|
||||
RECVS_DISPATCH;
|
||||
};
|
||||
|
||||
class ServiceWatcherSingle : public SysCallback
|
||||
{
|
||||
public:
|
||||
ServiceWatcherSingle() : serviceManager(0),systemCallbacks(0),service(0) {}
|
||||
virtual ~ServiceWatcherSingle();
|
||||
void WatchWith(api_service *_serviceApi);
|
||||
|
||||
template <class T>
|
||||
void WatchFor(T **ptr, GUID watchGUID)
|
||||
{
|
||||
WatchForT((void **)ptr, watchGUID);
|
||||
}
|
||||
|
||||
virtual void OnRegister() {}
|
||||
virtual void OnDeregister()=0;
|
||||
void StopWatching();
|
||||
private:
|
||||
void WatchForT(void **ptr, GUID watchGUID);
|
||||
FOURCC GetEventType() { return SysCallback::SERVICE; }
|
||||
int Notify(int msg, intptr_t param1, intptr_t param2);
|
||||
api_service *serviceManager;
|
||||
api_syscb *systemCallbacks;
|
||||
void **service;
|
||||
GUID serviceGUID;
|
||||
protected:
|
||||
RECVS_DISPATCH;
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue