]> git.saurik.com Git - apple/security.git/blobdiff - Security/libsecurity_transform/lib/Monitor.h
Security-57031.1.35.tar.gz
[apple/security.git] / Security / libsecurity_transform / lib / Monitor.h
diff --git a/Security/libsecurity_transform/lib/Monitor.h b/Security/libsecurity_transform/lib/Monitor.h
new file mode 100644 (file)
index 0000000..d5b7213
--- /dev/null
@@ -0,0 +1,43 @@
+#ifndef __MONITOR__
+#define __MONITOR__
+
+
+
+
+#include "Transform.h"
+
+
+
+typedef CFTypeRef SecMonitorRef;
+
+
+class Monitor : public Transform
+{
+public:
+       virtual ~Monitor() { }
+       Monitor(CFStringRef mName) : Transform(mName) {}
+       virtual void Wait();
+       bool IsExternalizable();
+};
+
+
+
+class BlockMonitor : public Monitor
+{
+protected:
+       dispatch_queue_t mDispatchQueue;
+       SecMessageBlock mBlock;
+       bool mSeenFinal;
+
+       virtual void AttributeChanged(CFStringRef name, CFTypeRef value);
+    void LastValueSent();
+
+       BlockMonitor(dispatch_queue_t queue, SecMessageBlock block);
+       
+public:
+       virtual ~BlockMonitor();
+       static CFTypeRef Make(dispatch_queue_t dispatch_queue, SecMessageBlock block);
+};
+
+
+#endif