]> git.mxchange.org Git - flightgear.git/blobdiff - src/Network/protocol.hxx
Throttle was being scaled with mixture config values.
[flightgear.git] / src / Network / protocol.hxx
index f3c7fe4d68959e169d3e0edf82f987106edb586a..4b73d18935a2be1de74c35fec3f20dac75ca4196 100644 (file)
 
 
 #include <simgear/compiler.h>
+#include <simgear/io/iochannel.hxx>
 
 #include STL_STRING
 #include <vector>
 
-FG_USING_STD(string);
-FG_USING_STD(vector);
+SG_USING_STD(string);
+SG_USING_STD(vector);
 
 
 #define FG_MAX_MSG_SIZE 16384
 
-// forward declaration
-class FGIOChannel;
-
-
 class FGProtocol {
 
-public:
-
-    enum fgProtocolDir {
-       none = 0,
-       in = 1,
-       out = 2,
-       bi = 3
-    };
-
 private:
 
     double hz;
     int count_down;
 
-    fgProtocolDir dir;
+    SGProtocolDir dir;
 
     // string protocol_str;
 
@@ -65,7 +53,7 @@ private:
 
     bool enabled;
 
-    FGIOChannel *io;
+    SGIOChannel *io;
 
 public:
 
@@ -76,18 +64,8 @@ public:
     virtual bool process();
     virtual bool close();
 
-    inline fgProtocolDir get_direction() const { return dir; }
-    inline void set_direction( const string& d ) {
-       if ( d == "in" ) {
-           dir = in;
-       } else if ( d == "out" ) {
-           dir = out;
-       } else if ( d == "bi" ) {
-           dir = bi;
-       } else {
-           dir = none;
-       }
-    }
+    inline SGProtocolDir get_direction() const { return dir; }
+    void set_direction( const string& d );
 
     inline double get_hz() const { return hz; }
     inline void set_hz( double t ) { hz = t; }
@@ -108,8 +86,8 @@ public:
     inline bool is_enabled() const { return enabled; }
     inline void set_enabled( const bool b ) { enabled = b; }
 
-    inline FGIOChannel *get_io_channel() const { return io; }
-    inline void set_io_channel( FGIOChannel *c ) { io = c; }
+    inline SGIOChannel *get_io_channel() const { return io; }
+    inline void set_io_channel( SGIOChannel *c ) { io = c; }
 };
 
 
@@ -117,6 +95,18 @@ typedef vector < FGProtocol * > io_container;
 typedef io_container::iterator io_iterator;
 typedef io_container::const_iterator const_io_iterator;
 
+#include <stdexcept>
+SG_USING_STD(invalid_argument);
+
+//namespace flightgear { namespace network {
+class FGProtocolConfigError : public invalid_argument
+{
+public:
+    FGProtocolConfigError( const string& what_string )
+       : invalid_argument(what_string) {}
+};
+//}} // end namespace flightgear::network
+
 
 #endif // _PROTOCOL_HXX