Open Lighting Architecture  0.9.6
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups 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: