X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FNetwork%2Fprotocol.hxx;h=03cf8357d9ed3099e59610deb8a6dd1ac8f9fa8e;hb=49677f512b8edaaf22c76761dbbf9c0850c79aad;hp=1fcc9597132bc49acb1b92e2aff7787b05877601;hpb=1fd92702678bcf4a32f888fe3014c684e0235870;p=flightgear.git diff --git a/src/Network/protocol.hxx b/src/Network/protocol.hxx index 1fcc95971..03cf8357d 100644 --- a/src/Network/protocol.hxx +++ b/src/Network/protocol.hxx @@ -2,7 +2,7 @@ // // Written by Curtis Olson, started November 1999. // -// Copyright (C) 1999 Curtis L. Olson - curt@flightgear.org +// Copyright (C) 1999 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 +16,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$ @@ -25,38 +25,27 @@ #define _PROTOCOL_HXX -#include "Include/compiler.h" +#include +#include -#include STL_STRING +#include #include -FG_USING_STD(string); -FG_USING_STD(vector); +using std::string; +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; + double count_down; + long count; - fgProtocolDir dir; + SGProtocolDir dir; // string protocol_str; @@ -65,7 +54,7 @@ private: bool enabled; - FGIOChannel *io; + SGIOChannel *io; public: @@ -76,24 +65,17 @@ 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; } - inline int get_count_down() const { return count_down; } - inline void set_count_down( int c ) { count_down = c; } - inline void dec_count_down( int c ) { count_down -= c; } + inline double get_count_down() const { return count_down; } + inline void set_count_down( double c ) { count_down = c; } + inline void inc_count_down( double amt ) { count_down += amt; } + inline void dec_count_down( double amt ) { count_down -= amt; } + inline void inc_count() { count++; } + inline long get_count() { return count; } virtual bool gen_message(); virtual bool parse_message(); @@ -108,8 +90,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 +99,18 @@ typedef vector < FGProtocol * > io_container; typedef io_container::iterator io_iterator; typedef io_container::const_iterator const_io_iterator; +#include +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