FlightGear next
autopilotgroup.hxx
Go to the documentation of this file.
1// autopilotgroup.hxx - an even more flexible, generic way to build autopilots
2//
3// Written by Torsten Dreyer
4// Based heavily on work created by Curtis Olson, started January 2004.
5//
6// Copyright (C) 2004 Curtis L. Olson - http://www.flightgear.org/~curt
7// Copyright (C) 2010 Torsten Dreyer - Torsten (at) t3r (dot) de
8//
9// This program is free software; you can redistribute it and/or
10// modify it under the terms of the GNU General Public License as
11// published by the Free Software Foundation; either version 2 of the
12// License, or (at your option) any later version.
13//
14// This program is distributed in the hope that it will be useful, but
15// WITHOUT ANY WARRANTY; without even the implied warranty of
16// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17// General Public License for more details.
18//
19// You should have received a copy of the GNU General Public License
20// along with this program; if not, write to the Free Software
21// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22//
23
24#ifndef _XMLAUTO_HXX
25#define _XMLAUTO_HXX 1
26
31class FGXMLAutopilotGroup : public SGSubsystemGroup
32{
33public:
34 // Subsystem identification.
35 static const char* staticSubsystemClassId() { return "xml-rules"; }
36
37 static FGXMLAutopilotGroup * createInstance(const std::string& nodeName);
38
39 void addAutopilotFromFile( const std::string & name, SGPropertyNode_ptr apNode, const std::string& path );
40 virtual void addAutopilot( const std::string & name, SGPropertyNode_ptr apNode, SGPropertyNode_ptr config ) = 0;
41 virtual void removeAutopilot( const std::string & name ) = 0;
42
43protected:
44 FGXMLAutopilotGroup() : SGSubsystemGroup() {}
45};
46
47#endif // _XMLAUTO_HXX
Model an autopilot system by implementing a SGSubsystemGroup.
static FGXMLAutopilotGroup * createInstance(const std::string &nodeName)
static const char * staticSubsystemClassId()
virtual void removeAutopilot(const std::string &name)=0
void addAutopilotFromFile(const std::string &name, SGPropertyNode_ptr apNode, const std::string &path)
virtual void addAutopilot(const std::string &name, SGPropertyNode_ptr apNode, SGPropertyNode_ptr config)=0
const char * name