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

| Open Lighting Architecture 0.10.9

Loading...
Searching...
No Matches
NetworkResponder.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 * NetworkResponder.h
17 * Copyright (C) 2013 Peter Newman
18 */
19
27
28#ifndef INCLUDE_OLA_RDM_NETWORKRESPONDER_H_
29#define INCLUDE_OLA_RDM_NETWORKRESPONDER_H_
30
31#include <ola/rdm/NetworkManagerInterface.h>
32#include <ola/rdm/RDMControllerInterface.h>
33#include <ola/rdm/RDMEnums.h>
34#include <ola/rdm/ResponderOps.h>
35#include <ola/rdm/UID.h>
36
37#include <memory>
38#include <string>
39#include <vector>
40
41namespace ola {
42namespace rdm {
43
47 class NetworkResponder: public RDMControllerInterface {
48 public:
49 explicit NetworkResponder(const UID &uid);
50 ~NetworkResponder();
51
52 void SendRDMRequest(RDMRequest *request, RDMCallback *callback);
53
54 private:
58 class RDMOps : public ResponderOps<NetworkResponder> {
59 public:
60 static RDMOps *Instance() {
61 if (!instance) {
62 instance = new RDMOps();
63 }
64 return instance;
65 }
66
67 private:
68 RDMOps() : ResponderOps<NetworkResponder>(PARAM_HANDLERS) {}
69
70 static RDMOps *instance;
71 };
72
73 const UID m_uid;
74 bool m_identify_mode;
75 std::auto_ptr<NetworkManagerInterface> m_network_manager;
76
77 RDMResponse *GetDeviceInfo(const RDMRequest *request);
78 RDMResponse *GetProductDetailList(const RDMRequest *request);
79 RDMResponse *GetIdentify(const RDMRequest *request);
80 RDMResponse *SetIdentify(const RDMRequest *request);
81 RDMResponse *GetManufacturerLabel(const RDMRequest *request);
82 RDMResponse *GetDeviceLabel(const RDMRequest *request);
83 RDMResponse *GetDeviceModelDescription(const RDMRequest *request);
84 RDMResponse *GetSoftwareVersionLabel(const RDMRequest *request);
85 RDMResponse *GetListInterfaces(const RDMRequest *request);
86 RDMResponse *GetInterfaceLabel(const RDMRequest *request);
87 RDMResponse *GetInterfaceHardwareAddressType1(const RDMRequest *request);
88 RDMResponse *GetIPV4CurrentAddress(const RDMRequest *request);
89 RDMResponse *GetIPV4DefaultRoute(const RDMRequest *request);
90 RDMResponse *GetDNSHostname(const RDMRequest *request);
91 RDMResponse *GetDNSDomainName(const RDMRequest *request);
92 RDMResponse *GetDNSNameServer(const RDMRequest *request);
93
94 static const ResponderOps<NetworkResponder>::ParamHandler PARAM_HANDLERS[];
95};
96} // namespace rdm
97} // namespace ola
98#endif // INCLUDE_OLA_RDM_NETWORKRESPONDER_H_
NetworkManagerInterface.h
The interface for the NetworkManager.
RDMControllerInterface.h
Definitions and Interfaces to implement an RDMController that sends a single message at a time.
RDMEnums.h
Various constants used in RDM.
ResponderOps.h
A framework for building RDM responders.
UID.h
A RDM unique identifier (UID).
ola::rdm::NetworkResponder::NetworkResponder
NetworkResponder(const UID &uid)
Definition NetworkResponder.cpp:110
ola::rdm::NetworkResponder::SendRDMRequest
void SendRDMRequest(RDMRequest *request, RDMCallback *callback)
Send a RDM command.
Definition NetworkResponder.cpp:156
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::RDMResponse
An RDM Command that represents responses (GET, SET or DISCOVER).
Definition RDMCommand.h:457
ola::rdm::ResponderOps
A class which dispatches RDM requests to registered PID handlers.
Definition ResponderOps.h:60
ola::rdm::UID
Represents a RDM UID.
Definition UID.h:57
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
The namespace containing all OLA symbols.
Definition Credentials.cpp:44
ola::rdm::ResponderOps::ParamHandler
the structure that defines the behaviour for a specific PID.o
Definition ResponderOps.h:76