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

#include <glib_main_loop.h>

Inheritance diagram for mir::GLibMainLoop:
[legend]

Public Member Functions

 GLibMainLoop (std::shared_ptr< time::Clock > const &clock)
 
void run () override
 
void stop () override
 
void register_signal_handler (std::initializer_list< int > signals, std::function< void(int)> const &handler) override
 
void register_fd_handler (std::initializer_list< int > fds, void const *owner, std::function< void(int)> const &handler) override
 
void unregister_fd_handler (void const *owner) override
 
void enqueue (void const *owner, ServerAction const &action) override
 
void pause_processing_for (void const *owner) override
 
void resume_processing_for (void const *owner) override
 
std::unique_ptr< mir::time::Alarmnotify_in (std::chrono::milliseconds delay, std::function< void()> const &callback) override
 Create an Alarm that calls the callback after the specified delay. More...
 
std::unique_ptr< mir::time::Alarmnotify_at (mir::time::Timestamp t, std::function< void()> const &callback) override
 Create an Alarm that calls the callback at the specified time. More...
 
std::unique_ptr< mir::time::Alarmcreate_alarm (std::function< void()> const &callback) override
 Create an Alarm that will not fire until scheduled. More...
 
std::unique_ptr< mir::time::Alarmcreate_alarm (std::function< void()> const &callback, std::function< void()> const &lock, std::function< void()> const &unlock) override
 Create an Alarm that will not fire until scheduled. More...
 
void reprocess_all_sources ()
 
- Public Member Functions inherited from mir::time::Timer
 Timer ()=default
 
virtual ~Timer ()=default
 
 Timer (Timer const &)=delete
 
Timeroperator= (Timer const &)=delete
 
- Public Member Functions inherited from mir::ServerActionQueue
virtual ~ServerActionQueue ()=default
 

Additional Inherited Members

- Protected Member Functions inherited from mir::graphics::EventHandlerRegister
 EventHandlerRegister ()=default
 
virtual ~EventHandlerRegister ()=default
 
 EventHandlerRegister (EventHandlerRegister const &)=delete
 
EventHandlerRegisteroperator= (EventHandlerRegister const &)=delete
 
- Protected Member Functions inherited from mir::ServerActionQueue
 ServerActionQueue ()=default
 
 ServerActionQueue (ServerActionQueue const &)=delete
 
ServerActionQueueoperator= (ServerActionQueue const &)=delete
 

Constructor & Destructor Documentation

mir::GLibMainLoop::GLibMainLoop ( std::shared_ptr< time::Clock > const &  clock)

Member Function Documentation

std::unique_ptr<mir::time::Alarm> mir::GLibMainLoop::create_alarm ( std::function< void()> const &  callback)
overridevirtual

Create an Alarm that will not fire until scheduled.

Parameters
callbackFunction to call when the Alarm signals
Returns
A handle to an Alarm that can later be scheduled

Implements mir::time::Timer.

std::unique_ptr<mir::time::Alarm> mir::GLibMainLoop::create_alarm ( std::function< void()> const &  callback,
std::function< void()> const &  lock,
std::function< void()> const &  unlock 
)
overridevirtual

Create an Alarm that will not fire until scheduled.

The lock/unlock functions allow the user to preserve lock ordering in situations where Alarm methods need to be called under external lock and the callback implementation needs to run code protected by the same lock. An alarm 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
callbackFunction to call when the Alarm signals
lockFunction called within callback dispatching context before the alarm implementation acquires any internal lock
unlockFunction called within callback dispatching context after the alarm implementation releases any internal lock
Returns
A handle to an Alarm that can later be scheduled

Implements mir::time::Timer.

void mir::GLibMainLoop::enqueue ( void const *  owner,
ServerAction const &  action 
)
overridevirtual
std::unique_ptr<mir::time::Alarm> mir::GLibMainLoop::notify_at ( mir::time::Timestamp  time_point,
std::function< void()> const &  callback 
)
overridevirtual

Create an Alarm that calls the callback at the specified time.

Parameters
time_pointTime point when the alarm should be triggered
callbackFunction to call when the Alarm signals
Returns
A handle to an Alarm that will fire after delay ms.

Implements mir::time::Timer.

std::unique_ptr<mir::time::Alarm> mir::GLibMainLoop::notify_in ( std::chrono::milliseconds  delay,
std::function< void()> const &  callback 
)
overridevirtual

Create an Alarm that calls the callback after the specified delay.

Parameters
delayTime from now, in milliseconds, that the callback will fire
callbackFunction to call when the Alarm signals
Returns
A handle to an Alarm that will fire after delay ms.

Implements mir::time::Timer.

void mir::GLibMainLoop::pause_processing_for ( void const *  owner)
overridevirtual
void mir::GLibMainLoop::register_fd_handler ( std::initializer_list< int >  fds,
void const *  owner,
std::function< void(int)> const &  handler 
)
overridevirtual
void mir::GLibMainLoop::register_signal_handler ( std::initializer_list< int >  signals,
std::function< void(int)> const &  handler 
)
overridevirtual
void mir::GLibMainLoop::reprocess_all_sources ( )
void mir::GLibMainLoop::resume_processing_for ( void const *  owner)
overridevirtual
void mir::GLibMainLoop::run ( )
overridevirtual

Implements mir::MainLoop.

void mir::GLibMainLoop::stop ( )
overridevirtual

Implements mir::MainLoop.

void mir::GLibMainLoop::unregister_fd_handler ( void const *  owner)
overridevirtual

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