X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/5dd5f9ec28f304ca377c42fd7f711d6cf12b90e1..5c19dc3ae3bd8e40a9c028b0deddd50ff337692c:/OSX/libsecurity_transform/lib/Monitor.h?ds=sidebyside diff --git a/OSX/libsecurity_transform/lib/Monitor.h b/OSX/libsecurity_transform/lib/Monitor.h new file mode 100644 index 00000000..d5b72133 --- /dev/null +++ b/OSX/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