Open Lighting Architecture: include/ola/rdm/RDMControllerAdaptor.h Source File

| Open Lighting Architecture 0.10.9

Loading...
Searching...
No Matches
RDMControllerAdaptor.h
Go to the documentation of this file.
1/*
2 * This library is free software; you can redistribute it and/or
3 * modify it under the terms of the GNU Lesser General Public
4 * License as published by the Free Software Foundation; either
5 * version 2.1 of the License, or (at your option) any later version.
6 *
7 * This library is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10 * Lesser General Public License for more details.
11 *
12 * You should have received a copy of the GNU Lesser General Public
13 * License along with this library; if not, write to the Free Software
14 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15 *
16 * RDMControllerAdaptor.h
17 * Allows an RDMControllerInterface to be used as an
18 * DiscoverableRDMControllerInterface.
19 * Copyright (C) 2013 Simon Newton
20 */
21
30
31#ifndef INCLUDE_OLA_RDM_RDMCONTROLLERADAPTOR_H_
32#define INCLUDE_OLA_RDM_RDMCONTROLLERADAPTOR_H_
33
34#include <ola/Callback.h>
35#include <ola/rdm/RDMControllerInterface.h>
36#include <ola/rdm/UIDSet.h>
37
38namespace ola {
39namespace rdm {
40
44 class DiscoverableRDMControllerAdaptor
45 : public DiscoverableRDMControllerInterface {
46 public:
47 // Ownership is not transferred.
48 DiscoverableRDMControllerAdaptor(const UID &uid,
49 RDMControllerInterface *interface)
50 : m_uid(uid),
51 m_interface(interface) {
52 }
53 void SendRDMRequest(RDMRequest *request, RDMCallback *on_complete) {
54 m_interface->SendRDMRequest(request, on_complete);
55 }
56
57 void RunFullDiscovery(RDMDiscoveryCallback *callback) {
58 RunDiscovery(callback);
59 }
60 void RunIncrementalDiscovery(RDMDiscoveryCallback *callback) {
61 RunDiscovery(callback);
62 }
63
64 private:
65 const UID m_uid;
66 RDMControllerInterface *m_interface;
67
68 void RunDiscovery(RDMDiscoveryCallback *callback) {
69 UIDSet uids;
70 uids.AddUID(m_uid);
71 callback->Run(uids);
72 }
73};
74} // namespace rdm
75} // namespace ola
76#endif // INCLUDE_OLA_RDM_RDMCONTROLLERADAPTOR_H_
Callback.h
RDMControllerInterface.h
Definitions and Interfaces to implement an RDMController that sends a single message at a time.
UIDSet.h
A set of UIDs.
ola::rdm::DiscoverableRDMControllerAdaptor::RunFullDiscovery
void RunFullDiscovery(RDMDiscoveryCallback *callback)
Start a full discovery operation.
Definition RDMControllerAdaptor.h:57
ola::rdm::DiscoverableRDMControllerAdaptor::SendRDMRequest
void SendRDMRequest(RDMRequest *request, RDMCallback *on_complete)
Send a RDM command.
Definition RDMControllerAdaptor.h:53
ola::rdm::DiscoverableRDMControllerAdaptor::RunIncrementalDiscovery
void RunIncrementalDiscovery(RDMDiscoveryCallback *callback)
Start an incremental discovery operation.
Definition RDMControllerAdaptor.h:60
ola::rdm::RDMControllerInterface
The interface that can send RDMRequest.
Definition RDMControllerInterface.h:73
ola::rdm::RDMRequest
RDM Commands that represent requests (GET, SET or DISCOVER).
Definition RDMCommand.h:234
ola::rdm::UID
Represents a RDM UID.
Definition UID.h:57
ola::rdm::UIDSet
Represents a set of RDM UIDs.
Definition UIDSet.h:48
ola::rdm::UIDSet::AddUID
void AddUID(const UID &uid)
Add a UID to the set.
Definition UIDSet.h:105
ola::rdm
PLASA E1.20 Remote Device Management.
Definition AckTimerResponder.cpp:38
ola::rdm::RDMCallback
ola::BaseCallback1< void, RDMReply * > RDMCallback
The callback run when a RDM request completes.
Definition RDMControllerInterface.h:52
ola::rdm::RDMDiscoveryCallback
ola::BaseCallback1< void, const ola::rdm::UIDSet & > RDMDiscoveryCallback
The callback run when a discovery operation completes.
Definition RDMControllerInterface.h:68
ola
The namespace containing all OLA symbols.
Definition Credentials.cpp:44