#pragma once #include "IPC/detail/KernelObject.h" #include "IPC/detail/Callback.h" #include #include #include namespace IPC { namespace UnitTest { namespace Mocks { struct KernelObjectComparer { bool operator()(const detail::KernelObject& left, const detail::KernelObject& right) const { return static_cast(left) < static_cast(right); } }; class WaitHandleFactory : public std::shared_ptr>, KernelObjectComparer>> { public: WaitHandleFactory(); std::size_t Process(); std::shared_ptr operator()(detail::KernelObject obj, detail::Callback handler) const; private: std::size_t ProcessSinglePass(); std::shared_ptr m_rd; }; } // Mocks } // UnitTest } // IPC