X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/80e2389990082500d76eb566d4946be3e786c3ef..d8f41ccd20de16f8ebe2ccc84d47bf1cb2b26bbb:/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 index 00000000..d5b72133 --- /dev/null +++ b/Security/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