]> git.mxchange.org Git - simgear.git/blobdiff - simgear/io/iochannel.hxx
Merge branch 'timoore/effects-anim-rebase' into next
[simgear.git] / simgear / io / iochannel.hxx
index cd40b6bd466c34ea9e2bb01652a325a73acaab8d..d8a29608db20b2dbef3e6b2974bcce3881ab709a 100644 (file)
@@ -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$
 
 
 // #include "protocol.hxx"
 
-#include STL_STRING
+#include <string>
 #include <vector>
 
-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; }
 };