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();
117 #endif // INCLUDE_OLA_RDM_QUEUEINGRDMCONTROLLER_H_
Represents a set of RDM UIDs.
Definition: UIDSet.h:48
Definitions and Interfaces to implement an RDMController that sends a single message at a time...
void Resume()
Definition: QueueingRDMController.cpp:87
void SendRDMRequest(RDMRequest *request, RDMCallback *on_complete)
Definition: QueueingRDMController.cpp:96
void RunIncrementalDiscovery(RDMDiscoveryCallback *callback)
Definition: QueueingRDMController.cpp:261
The interface that can send RDM commands, as well as perform discovery operations.
Definition: RDMControllerInterface.h:104
RDM Commands that represent requests (GET, SET or DISCOVER).
Definition: RDMCommand.h:233
virtual bool CheckForBlockingCondition()
Definition: QueueingRDMController.cpp:132
void Pause()
Definition: QueueingRDMController.cpp:79
DiscoverableQueueingRDMController(DiscoverableRDMControllerInterface *controller, unsigned int max_queue_size)
Definition: QueueingRDMController.cpp:239
The base class for all 1 argument callbacks.
Definition: Callback.h:982
void RunFullDiscovery(RDMDiscoveryCallback *callback)
Definition: QueueingRDMController.cpp:251
Holds the final state of an RDM request.
Definition: RDMReply.h:43
Definition: QueueingRDMController.h:88
The interface that can send RDMRequest.
Definition: RDMControllerInterface.h:73
Definition: QueueingRDMController.h:58
virtual void TakeNextAction()
Definition: QueueingRDMController.cpp:118
The namespace containing all OLA symbols.
Definition: Credentials.cpp:44
Definition: QueueingRDMController.h:45