]> git.saurik.com Git - apple/security.git/blame - libsecurity_transform/lib/Monitor.h
Security-55471.14.18.tar.gz
[apple/security.git] / libsecurity_transform / lib / Monitor.h
CommitLineData
b1ab9ed8
A
1#ifndef __MONITOR__
2#define __MONITOR__
3
4
5
6
7#include "Transform.h"
8
9
10
11typedef CFTypeRef SecMonitorRef;
12
13
14class Monitor : public Transform
15{
16public:
17 virtual ~Monitor() { }
18 Monitor(CFStringRef mName) : Transform(mName) {}
19 virtual void Wait();
20 bool IsExternalizable();
21};
22
23
24
25class BlockMonitor : public Monitor
26{
27protected:
28 dispatch_queue_t mDispatchQueue;
29 SecMessageBlock mBlock;
30 bool mSeenFinal;
31
32 virtual void AttributeChanged(CFStringRef name, CFTypeRef value);
33 void LastValueSent();
34
35 BlockMonitor(dispatch_queue_t queue, SecMessageBlock block);
36
37public:
38 virtual ~BlockMonitor();
39 static CFTypeRef Make(dispatch_queue_t dispatch_queue, SecMessageBlock block);
40};
41
42
43#endif