29 #ifndef INCLUDE_OLA_RDM_SUBDEVICEDISPATCHER_H_
30 #define INCLUDE_OLA_RDM_SUBDEVICEDISPATCHER_H_
53 struct FanOutTracker {
55 FanOutTracker(uint16_t number_of_subdevices,
58 bool IncrementAndCheckIfComplete() {
59 return ++m_responses_so_far == m_number_of_subdevices;
62 void SetResponse(ola::rdm::rdm_response_code code,
67 uint16_t NumResponses()
const {
68 return m_responses_so_far;
72 uint16_t m_number_of_subdevices;
73 uint16_t m_responses_so_far;
76 ola::rdm::rdm_response_code m_response_code;
80 typedef std::map<uint16_t, ola::rdm::RDMControllerInterface*> SubDeviceMap;
82 SubDeviceMap m_subdevices;
89 ola::rdm::rdm_nack_reason nack_reason);
91 void HandleSubDeviceResponse(
92 FanOutTracker *tracker,
93 ola::rdm::rdm_response_code code,
95 const std::vector<std::string> &packets);
99 #endif // INCLUDE_OLA_RDM_SUBDEVICEDISPATCHER_H_