Open Lighting Architecture: plugins/pathport/PathportDevice.h Source File

| Open Lighting Architecture 0.10.9

Loading...
Searching...
No Matches
PathportDevice.h
1/*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of the GNU General Public License as published by
4 * the Free Software Foundation; either version 2 of the License, or
5 * (at your option) any later version.
6 *
7 * This program 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
10 * GNU Library General Public License for more details.
11 *
12 * You should have received a copy of the GNU General Public License
13 * along with this program; if not, write to the Free Software
14 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
15 *
16 * PathportDevice.h
17 * Interface for the pathport device
18 * Copyright (C) 2005 Simon Newton
19 */
20
21#ifndef PLUGINS_PATHPORT_PATHPORTDEVICE_H_
22#define PLUGINS_PATHPORT_PATHPORTDEVICE_H_
23
24#include <string>
25#include "olad/Device.h"
26#include "ola/io/SelectServer.h"
27#include "plugins/pathport/PathportNode.h"
28
29namespace ola {
30namespace plugin {
31namespace pathport {
32
33 class PathportDevice: public ola::Device {
34 public:
35 PathportDevice(class PathportPlugin *owner,
36 class Preferences *preferences,
37 class PluginAdaptor *plugin_adaptor);
38
39 std::string DeviceId() const { return "1"; }
40 PathportNode *GetNode() const { return m_node; }
41 bool SendArpReply();
42
43 static const char K_DEFAULT_NODE_NAME[];
44 static const char K_DSCP_KEY[];
45 static const char K_NODE_ID_KEY[];
46 static const char K_NODE_IP_KEY[];
47 static const char K_NODE_NAME_KEY[];
48
49 protected:
50 bool StartHook();
51 void PrePortStop();
52 void PostPortStop();
53
54 private:
55 class Preferences *m_preferences;
56 class PluginAdaptor *m_plugin_adaptor;
57 PathportNode *m_node;
58 ola::thread::timeout_id m_timeout_id;
59
60 static const char PATHPORT_DEVICE_NAME[];
61 static const uint32_t PORTS_PER_DEVICE = 8;
62 static const int ADVERTISEMENT_PERIOD_MS = 6000;
63};
64} // namespace pathport
65} // namespace plugin
66} // namespace ola
67#endif // PLUGINS_PATHPORT_PATHPORTDEVICE_H_
ola::Device
Definition Device.h:89
ola::PluginAdaptor
Definition PluginAdaptor.h:41
ola::Preferences
Definition Preferences.h:148
ola::plugin::pathport::PathportDevice::StartHook
bool StartHook()
Called during Start().
Definition PathportDevice.cpp:65
ola::plugin::pathport::PathportDevice::DeviceId
std::string DeviceId() const
The device ID.
Definition PathportDevice.h:39
ola::plugin::pathport::PathportNode
Definition PathportNode.h:37
ola::plugin::pathport::PathportPlugin
Definition PathportPlugin.h:33
ola::plugin::pathport
Code for the Pathport protocol.
ola::plugin
Code for supported devices and protocols.
ola::thread::timeout_id
void * timeout_id
A timeout handle which can later be used to cancel a timeout.
Definition SchedulerInterface.h:34
ola
The namespace containing all OLA symbols.
Definition Credentials.cpp:44