29#ifndef INCLUDE_OLA_RDM_QUEUEINGRDMCONTROLLER_H_
30#define INCLUDE_OLA_RDM_QUEUEINGRDMCONTROLLER_H_
48 unsigned int max_queue_size);
64 unsigned int m_max_queue_size;
65 std::queue<outstanding_rdm_request> m_pending_requests;
66 bool m_rdm_request_pending;
68 std::auto_ptr<RDMCallback> m_callback;
69 std::auto_ptr<ola::rdm::RDMResponse> m_response;
70 std::vector<RDMFrame> m_frames;
74 void MaybeSendRDMRequest();
75 void DispatchNextRequest();
77 void HandleRDMResponse(
RDMReply *reply);
92 unsigned int max_queue_size);
101 typedef std::vector<RDMDiscoveryCallback*> DiscoveryCallbacks;
102 typedef std::vector<std::pair<bool, RDMDiscoveryCallback*> >
103 PendingDiscoveryCallbacks;
106 DiscoveryCallbacks m_discovery_callbacks;
107 PendingDiscoveryCallbacks m_pending_discovery_callbacks;
109 void TakeNextAction();
110 bool CheckForBlockingCondition();
112 void StartRDMDiscovery();
Definitions and Interfaces to implement an RDMController that sends a single message at a time.
The base class for all 1 argument callbacks.
Definition Callback.h:982
Definition QueueingRDMController.h:88
void RunIncrementalDiscovery(RDMDiscoveryCallback *callback)
Definition QueueingRDMController.cpp:261
DiscoverableQueueingRDMController(DiscoverableRDMControllerInterface *controller, unsigned int max_queue_size)
Definition QueueingRDMController.cpp:239
void RunFullDiscovery(RDMDiscoveryCallback *callback)
Definition QueueingRDMController.cpp:251
The interface that can send RDM commands, as well as perform discovery operations.
Definition RDMControllerInterface.h:104
Definition QueueingRDMController.h:45
void Resume()
Definition QueueingRDMController.cpp:87
virtual void TakeNextAction()
Definition QueueingRDMController.cpp:118
void SendRDMRequest(RDMRequest *request, RDMCallback *on_complete)
Definition QueueingRDMController.cpp:96
virtual bool CheckForBlockingCondition()
Definition QueueingRDMController.cpp:132
void Pause()
Definition QueueingRDMController.cpp:79
The interface that can send RDMRequest.
Definition RDMControllerInterface.h:73
RDM Commands that represent requests (GET, SET or DISCOVER).
Definition RDMCommand.h:234
Represents a set of RDM UIDs.
Definition UIDSet.h:48
The namespace containing all OLA symbols.
Definition Credentials.cpp:44
Definition QueueingRDMController.h:58
Holds the final state of an RDM request.
Definition RDMReply.h:43