Open Lighting Architecture  0.9.2
 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:
ola::rdm::RDMControllerInterface ola::rdm::DiscoverableQueueingRDMController

Classes

struct  outstanding_rdm_request

Public Member Functions

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

Protected Member Functions

virtual void TakeNextAction ()
virtual bool CheckForBlockingCondition ()
void MaybeSendRDMRequest ()
void DispatchNextRequest ()
void HandleRDMResponse (rdm_response_code status, const ola::rdm::RDMResponse *response, const std::vector< std::string > &packets)

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
RDMCallbackm_callback
const ola::rdm::RDMResponsem_response
std::vector< std::string > m_packets

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 ( const 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: