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_