]> git.mxchange.org Git - flightgear.git/blobdiff - src/Network/props.hxx
Fix for bug 1304 - crash loading XML route
[flightgear.git] / src / Network / props.hxx
index 92481a93d9e571acb84f9af99ee6101b12bc933e..9e7405583ee3480df5d59338a06db61c1bfbb0fa 100644 (file)
@@ -1,8 +1,10 @@
-// props.hxx -- FGFS property manager interaction class
+// \file props.hxx
+// Property server class.
 //
 // Written by Curtis Olson, started September 2000.
+// Modified by Bernie Bright, May 2002.
 //
-// Copyright (C) 2000  Curtis L. Olson - curt@flightgear.org
+// Copyright (C) 2000  Curtis L. Olson - http://www.flightgear.org/~curt
 //
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License as
@@ -16,7 +18,7 @@
 //
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
-// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 //
 // $Id$
 
 #ifndef _FG_PROPS_HXX
 #define _FG_PROPS_HXX
 
-
 #include <simgear/compiler.h>
-#include <simgear/misc/props.hxx>
+#include <string>
+#include <vector>
 
-#include STL_STRING
+#include <simgear/io/sg_netChannel.hxx>
 
 #include "protocol.hxx"
 
-FG_USING_STD(string);
-
-
-const static int max_cmd_len = 256;
-
-class FGProps : public FGProtocol {
-
-    char buf[max_cmd_len];
-    int length;
-
+/**
+ * Property server class.
+ * This class provides a telnet-like server for remote access to
+ * FlightGear properties.
+ */
+class FGProps : public FGProtocol,
+               public simgear::NetChannel,
+               public SGPropertyChangeListener // for subscriptions
+{
+private:
+
+    /**
+     * Server port to listen on.
+     */
+    int port;
+    simgear::NetChannelPoller poller;
 public:
-
-    FGProps();
+    /**
+     * Create a new TCP server.
+     * 
+     * @param tokens Tokenized configuration parameters
+     */
+    FGProps( const std::vector<std::string>& tokens );
+
+    /**
+     * Destructor.
+     */
     ~FGProps();
 
-    // open hailing frequencies
+    /**
+     * Start the telnet server.
+     */
     bool open();
 
-    // process work for this port
+    /**
+     * Process network activity.
+     */
     bool process();
-    bool process_command( const char *cmd );
 
-    // close the channel
+    /**
+     * 
+     */
     bool close();
-};
 
+    /**
+     * Accept a new client connection.
+     */
+    void handleAccept();
+
+};
 
 #endif // _FG_PROPS_HXX
+