Open Lighting Architecture  Latest Git
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ola::rdm::QueueingRDMController Class Reference
Inheritance diagram for ola::rdm::QueueingRDMController:
Inheritance graph
[legend]
Collaboration diagram for ola::rdm::QueueingRDMController:
Collaboration graph
[legend]

Classes

struct  outstanding_rdm_request
 

Public Member Functions

 QueueingRDMController (RDMControllerInterface *controller, unsigned int max_queue_size)
 
void Pause ()
 
void Resume ()
 
void SendRDMRequest (RDMRequest *request, RDMCallback *on_complete)
 

Protected Member Functions

virtual void TakeNextAction ()
 
virtual bool CheckForBlockingCondition ()
 
void MaybeSendRDMRequest ()
 
void DispatchNextRequest ()
 
void HandleRDMResponse (RDMReply *reply)
 
void RunCallback (RDMReply *reply)
 

Protected Attributes

RDMControllerInterfacem_controller
 
unsigned int m_max_queue_size
 
std::queue
< outstanding_rdm_request
m_pending_requests
 
bool m_rdm_request_pending
 
bool m_active
 
std::auto_ptr< RDMCallbackm_callback
 
std::auto_ptr
< ola::rdm::RDMResponse
m_response
 
std::vector< RDMFramem_frames
 

Member Function Documentation

bool ola::rdm::QueueingRDMController::CheckForBlockingCondition ( )
protectedvirtual

This method runs before we decide to send another request and allows sub classes (like the DiscoverableQueueingRDMController) to insert other actions into the queue.

Returns
true if some other action is running, false otherwise.
void ola::rdm::QueueingRDMController::Pause ( )

Pause the sending of RDM messages. This won't cancel any message in-flight.

void ola::rdm::QueueingRDMController::Resume ( )

Resume the sending of RDM requests.

void ola::rdm::QueueingRDMController::SendRDMRequest ( RDMRequest request,
RDMCallback on_complete 
)
virtual

Queue an RDM request for sending.

Implements ola::rdm::RDMControllerInterface.

void ola::rdm::QueueingRDMController::TakeNextAction ( )
protectedvirtual

Do the next action.


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