X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/72a12576750f52947eb043106ba5c12c0d07decf..b1ab9ed8d0e0f1c3b66d7daa8fd5564444c56195:/libsecurity_transform/lib/Monitor.h diff --git a/libsecurity_transform/lib/Monitor.h b/libsecurity_transform/lib/Monitor.h new file mode 100644 index 00000000..d5b72133 --- /dev/null +++ b/libsecurity_transform/lib/Monitor.h @@ -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