X-Plane Remote Access Plugin and Client Library
DataRefTask.h
1 // Copyright (c) 2013 by István Váradi
2 
3 // This file is part of XPLRA, a remote-access plugin for X-Plane
4 
5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are met:
7 
8 // 1. Redistributions of source code must retain the above copyright notice, this
9 // list of conditions and the following disclaimer.
10 // 2. Redistributions in binary form must reproduce the above copyright notice,
11 // this list of conditions and the following disclaimer in the documentation
12 // and/or other materials provided with the distribution.
13 
14 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
15 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17 // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
18 // ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
23 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 
25 // The views and conclusions contained in the software and documentation are those
26 // of the authors and should not be interpreted as representing official policies,
27 // either expressed or implied, of the FreeBSD Project.
28 
29 #ifndef XPLRA_DATAREFTASK_H
30 #define XPLRA_DATAREFTASK_H
31 //------------------------------------------------------------------------------
32 
33 #include "Task.h"
34 
35 #include <XPLMDataAccess.h>
36 
37 #include <string>
38 
39 //------------------------------------------------------------------------------
40 
41 namespace xplra {
42 
43 //------------------------------------------------------------------------------
44 
50 class DataRefTask : public Task
51 {
52 private:
56  std::string name;
57 
61  XPLMDataRef dataRef;
62 
63 protected:
67  DataRefTask(const std::string& name);
68 
72  DataRefTask(XPLMDataRef dataRef);
73 
74 public:
79  bool isValid() const;
80 
84  const std::string& getName() const;
85 
89  XPLMDataRef getDataRef() const;
90 
91 protected:
97  virtual void perform();
98 
103  virtual void process() = 0;
104 };
105 
106 //------------------------------------------------------------------------------
107 // Inline definitions
108 //------------------------------------------------------------------------------
109 
110 inline DataRefTask::DataRefTask(const std::string& name) :
111  name(name),
112  dataRef(0)
113 {
114 }
115 
116 //------------------------------------------------------------------------------
117 
118 inline DataRefTask::DataRefTask(XPLMDataRef dataRef) :
119  dataRef(dataRef)
120 {
121 }
122 
123 //------------------------------------------------------------------------------
124 
125 inline bool DataRefTask::isValid() const
126 {
127  return dataRef!=0;
128 }
129 
130 //------------------------------------------------------------------------------
131 
132 inline const std::string& DataRefTask::getName() const
133 {
134  return name;
135 }
136 
137 //------------------------------------------------------------------------------
138 
139 inline XPLMDataRef DataRefTask::getDataRef() const
140 {
141  return dataRef;
142 }
143 
144 //------------------------------------------------------------------------------
145 
146 } /* namespace xplra */
147 
148 //------------------------------------------------------------------------------
149 #endif // XPLRA_DATAREFTASK_H
150 
151 // Local Variables:
152 // mode: C++
153 // c-basic-offset: 4
154 // indent-tabs-mode: nil
155 // End:
XPLMDataRef getDataRef() const
Definition: DataRefTask.h:139
virtual void process()=0
bool isValid() const
Definition: DataRefTask.h:125
virtual void perform()
Definition: DataRefTask.cc:43
XPLMDataRef dataRef
Definition: DataRefTask.h:61
DataRefTask(const std::string &name)
Definition: DataRefTask.h:110
const std::string & getName() const
Definition: DataRefTask.h:132
std::string name
Definition: DataRefTask.h:56
Python client module for the X-Plane Remote Access plugin.
Definition: DataRefTask.h:41