ardour
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Private Attributes | List of all members
PBD::EventLoop Class Referenceabstract

#include <event_loop.h>

Inheritance diagram for PBD::EventLoop:
BaseUI AbstractUI< RequestObject > AbstractUI< MidiUIRequest > AbstractUI< TestUIRequest > AbstractUI< UIRequest > ARDOUR::MidiControlUI TestUI Gtkmm2ext::UI ARDOUR_UI

Classes

struct  BaseRequestObject
 
struct  InvalidationRecord
 

Public Types

enum  RequestType { range_guarantee = ~0 }
 

Public Member Functions

 EventLoop ()
 
virtual ~EventLoop ()
 
virtual void call_slot (InvalidationRecord *, const boost::function< void()> &)=0
 
virtual Glib::Threads::Mutex & slot_invalidation_mutex ()=0
 

Static Public Member Functions

static void * invalidate_request (void *data)
 
static EventLoopget_event_loop_for_thread ()
 
static void set_event_loop_for_thread (EventLoop *ui)
 

Static Private Attributes

static Glib::Threads::Private
< EventLoop
thread_event_loop
 

Detailed Description

An EventLoop is as basic abstraction designed to be used with any "user interface" (not necessarily graphical) that needs to wait on events/requests and dispatch/process them as they arrive.

This is a very basic class that doesn't by itself provide an actual event loop or thread. See BaseUI for the "real" object to be used when something like this is needed (it inherits from EventLoop).

Definition at line 41 of file event_loop.h.

Member Enumeration Documentation

Enumerator
range_guarantee 

Definition at line 47 of file event_loop.h.

Constructor & Destructor Documentation

PBD::EventLoop::EventLoop ( )
inline

Definition at line 44 of file event_loop.h.

virtual PBD::EventLoop::~EventLoop ( )
inlinevirtual

Definition at line 45 of file event_loop.h.

Member Function Documentation

virtual void PBD::EventLoop::call_slot ( InvalidationRecord ,
const boost::function< void()> &   
)
pure virtual
EventLoop * EventLoop::get_event_loop_for_thread ( )
static

Definition at line 31 of file event_loop.cc.

void * EventLoop::invalidate_request ( void *  data)
static

Definition at line 42 of file event_loop.cc.

void EventLoop::set_event_loop_for_thread ( EventLoop ui)
static

Definition at line 36 of file event_loop.cc.

virtual Glib::Threads::Mutex& PBD::EventLoop::slot_invalidation_mutex ( )
pure virtual

Member Data Documentation

Glib::Threads::Private< EventLoop > EventLoop::thread_event_loop
staticprivate

Definition at line 80 of file event_loop.h.


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