X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FNetwork%2Fprotocol.hxx;h=03cf8357d9ed3099e59610deb8a6dd1ac8f9fa8e;hb=e16f772e54216b0088ca9cb3f3b0fb062be8bfdb;hp=8c6535b520448d5bfe14c8832265595336616801;hpb=59583890262247d73f48f4f1af21303ea41fda47;p=flightgear.git diff --git a/src/Network/protocol.hxx b/src/Network/protocol.hxx index 8c6535b52..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$ @@ -26,26 +26,24 @@ #include +#include -#include STL_STRING +#include #include -SG_USING_STD(string); -SG_USING_STD(vector); +using std::string; +using std::vector; #define FG_MAX_MSG_SIZE 16384 -// forward declaration -class SGIOChannel; - - class FGProtocol { private: double hz; - int count_down; + double count_down; + long count; SGProtocolDir dir; @@ -68,23 +66,16 @@ public: virtual bool close(); inline SGProtocolDir get_direction() const { return dir; } - inline void set_direction( const string& d ) { - if ( d == "in" ) { - dir = SG_IO_IN; - } else if ( d == "out" ) { - dir = SG_IO_OUT; - } else if ( d == "bi" ) { - dir = SG_IO_BI; - } else { - dir = SG_IO_NONE; - } - } + 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,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