// 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
* - 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 );
* 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 );
* 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 );
* 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 );
* 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; }
};