Mir
Public Member Functions | List of all members
mir::compositor::TimeoutFrameDroppingPolicyFactory Class Reference

Creator of timeout-based FrameDroppingPolicies. More...

#include <timeout_frame_dropping_policy_factory.h>

Inheritance diagram for mir::compositor::TimeoutFrameDroppingPolicyFactory:
[legend]

Public Member Functions

 TimeoutFrameDroppingPolicyFactory (std::shared_ptr< mir::time::Timer > const &timer, std::chrono::milliseconds timeout)
 
std::unique_ptr< FrameDroppingPolicycreate_policy (std::function< void()> const &drop_frame, std::function< void()> const &lock, std::function< void()> const &unlock) const override
 Create a FrameDroppingPolicy that will call drop_frame when it decides to drop a frame. More...
 
- Public Member Functions inherited from mir::compositor::FrameDroppingPolicyFactory
 FrameDroppingPolicyFactory ()=default
 
virtual ~FrameDroppingPolicyFactory ()=default
 
 FrameDroppingPolicyFactory (FrameDroppingPolicyFactory const &)=delete
 
FrameDroppingPolicyFactoryoperator= (FrameDroppingPolicyFactory const &)=delete
 

Detailed Description

Creator of timeout-based FrameDroppingPolicies.

Constructor & Destructor Documentation

mir::compositor::TimeoutFrameDroppingPolicyFactory::TimeoutFrameDroppingPolicyFactory ( std::shared_ptr< mir::time::Timer > const &  timer,
std::chrono::milliseconds  timeout 
)
Parameters
timerTimer that the policies constructed will schedule alarms on
timeoutMilliseconds that the policies will wait before dropping a frame

Member Function Documentation

std::unique_ptr< mc::FrameDroppingPolicy > mir::compositor::TimeoutFrameDroppingPolicyFactory::create_policy ( std::function< void()> const &  drop_frame,
std::function< void()> const &  lock,
std::function< void()> const &  unlock 
) const
overridevirtual

Create a FrameDroppingPolicy that will call drop_frame when it decides to drop a frame.

The lock/unlock functions allow the user to preserve lock ordering in situations where FrameDroppingPolicy methods need to be called under external lock and the callback implementation needs to run code protected by the same lock. A FrameDroppingPolicy implementation may have internal locks of its own, which maybe acquired during callback dispatching; to preserve lock ordering the given lock function will be invoked during callback dispatch before any internal locks are acquired.

Parameters
drop_frameFunction to call when a frame needs to be dropped
lockFunction called within the callback dispatcher context before any internal locks are acquired.
unlockFunction called within the callback dispatcher context after any internal locks are released.

Implements mir::compositor::FrameDroppingPolicyFactory.


The documentation for this class was generated from the following files:

Copyright © 2012,2013 Canonical Ltd.
Generated on Tue Mar 24 16:15:19 UTC 2015