44 #ifdef ABSTRACT_UI_EXPORTS
45 #define ABSTRACT_UI_API LIBPBD_DLL_EXPORT
47 #define ABSTRACT_UI_API LIBPBD_DLL_IMPORT
53 template<
typename RequestObject>
61 bool call_slot (EventLoop::InvalidationRecord*,
const std::function<
void()>&);
70 :
PBD::RingBufferNPT<RequestObject> (size)
75 #if defined(COMPILER_MINGW) && defined(__PTW32_VERSION)
78 bool operator() (
const ptw32_handle_t& thread1,
const ptw32_handle_t& thread2)
80 return thread1.p < thread2.p;
83 typedef typename std::map<pthread_t,RequestBuffer*, pthread_cmp>::iterator RequestBufferMapIterator;
84 typedef std::map<pthread_t,RequestBuffer*, pthread_cmp> RequestBufferMap;
virtual void do_request(RequestObject *)=0
std::map< pthread_t, RequestBuffer * > RequestBufferMap
std::list< RequestObject * > request_list
RequestBuffer * get_per_thread_request_buffer()
void send_request(RequestObject *)
RequestBuffer::rw_vector RequestBufferVector
RequestBufferMap request_buffers
PBD::RWLock request_buffer_map_lock
bool call_slot(EventLoop::InvalidationRecord *, const std::function< void()> &)
std::map< pthread_t, RequestBuffer * >::iterator RequestBufferMapIterator
AbstractUI(const std::string &name)
void register_thread(pthread_t, std::string, uint32_t num_requests)
PBD::ScopedConnection new_thread_connection
RequestObject * get_request(RequestType)
void handle_ui_requests()
PBD::RWLock & slot_invalidation_rwlock()
GtkImageIconNameData name
RequestBuffer(uint32_t size)