X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fio%2Fiochannel.hxx;h=d8a29608db20b2dbef3e6b2974bcce3881ab709a;hb=1f37095087fa7aa3d210ba134058b86c3bd6d69e;hp=cd40b6bd466c34ea9e2bb01652a325a73acaab8d;hpb=4326d560e96e42893d9048cc6ee6625d7351c054;p=simgear.git diff --git a/simgear/io/iochannel.hxx b/simgear/io/iochannel.hxx index cd40b6bd..d8a29608 100644 --- a/simgear/io/iochannel.hxx +++ b/simgear/io/iochannel.hxx @@ -5,7 +5,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 @@ -19,7 +19,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$ @@ -32,11 +32,11 @@ // #include "protocol.hxx" -#include STL_STRING +#include #include -SG_USING_STD(vector); -SG_USING_STD(string); +using std::vector; +using std::string; #define SG_IO_MAX_MSG_SIZE 16384 @@ -96,6 +96,7 @@ public: * - SG_IO_BI - data will be flowing in both directions. * - SG_IO_NONE - data will not be flowing in either direction. * This is here for the sake of completeness. + * @return result of open */ virtual bool open( const SGProtocolDir d ); @@ -109,6 +110,7 @@ public: * accomodate your input message * @param buf a char pointer to your input buffer * @param length max number of bytes to read + * @return number of bytes read */ virtual int read( char *buf, int length ); @@ -117,18 +119,54 @@ public: * stop at the first end of line encountered in the input buffer. * @param buf a char pointer to your input buffer * @param length max number of bytes to read + * @return number of bytes read */ virtual int readline( char *buf, int length ); + + + /** + * The write() method is modeled after the write() Unix system + * call and is analogous to the read() method. You provide a + * pointer to a buffer of data, and then length of that data to be + * written out. The number of bytes written is returned. + * @param buf a char pointer to your output buffer + * @param length number of bytes to write + * @return number of bytes written + */ virtual int write( const char *buf, const int length ); + + /** + * The writestring() method is a simple wrapper that will + * calculate the length of a null terminated character array and + * write it to the output channel. + * @param buf a char pointer to your output buffer + * @return number of bytes written + */ virtual int writestring( const char *str ); + + /** + * The close() method is modeled after the close() Unix system + * call and will close an open device. You should call this method + * when you are done using your IO class, before it is destructed. + * @return result of close + */ virtual bool close(); + /** + * The eof() method returns true if end of file has been reached + * in a context where that makes sense. Otherwise it returns + * false. + * @return result of eof check + */ + virtual bool eof(); + inline void set_type( SGChannelType t ) { type = t; } inline SGChannelType get_type() const { return type; } inline void set_dir( const SGProtocolDir d ) { dir = d; } inline SGProtocolDir get_dir() const { return dir; } inline bool isvalid() const { return valid; } + inline void set_valid( const bool v ) { valid = v; } };