class ugcs::vsm::Piped_request_waiter¶
Overview¶
Request waiter which uses a pipe to signal about request submissions. More…
#include <piped_request_waiter.h> class Piped_request_waiter: public ugcs::vsm::Request_container::Request_waiter { public: // typedefs typedef std::shared_ptr<Piped_request_waiter> Ptr; typedef std::weak_ptr<Piped_request_waiter> Weak_ptr; // methods template <typename... Args> static Ptr Create(Args&&... args); virtual void Notify(); bool Wait(std::chrono::milliseconds timeout = std::chrono::milliseconds(-1)); void Ack(); sockets::Socket_handle Get_wait_pipe(); };
Inherited Members¶
public: // typedefs typedef std::shared_ptr<Request_waiter> Ptr; typedef std::weak_ptr<Request_waiter> Weak_ptr; typedef Callback_base<bool>::Ptr<> Predicate; // classes class Locker; // methods template <typename... Args> static Ptr Create(Args&&... args); virtual void Notify(); Locker Lock(); Locker Lock_notify(); int Wait_and_process( const std::initializer_list<Request_container::Ptr>& containers, std::chrono::milliseconds timeout = std::chrono::milliseconds::zero(), int requests_limit = 0, Predicate predicate = Predicate() ); int Wait_and_process( const std::list<Request_container::Ptr>& containers, std::chrono::milliseconds timeout = std::chrono::milliseconds::zero(), int requests_limit = 0, Predicate predicate = Predicate() );
Detailed Documentation¶
Request waiter which uses a pipe to signal about request submissions.
Typedefs¶
typedef std::shared_ptr<Piped_request_waiter> Ptr
Pointer type.
typedef std::weak_ptr<Piped_request_waiter> Weak_ptr
Pointer type.
Methods¶
template <typename... Args> static Ptr Create(Args&&... args)
Create an instance.
virtual void Notify()
Notify all listeners about request submission.
bool Wait(std::chrono::milliseconds timeout = std::chrono::milliseconds(-1))
Wait for an event for specific amount of time.
void Ack()
Consume one notification event.
sockets::Socket_handle Get_wait_pipe()
Get the platform handler of the wait pipe.