// 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 );
+
+
+ /**
+ * 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();
inline void set_type( SGChannelType t ) { type = t; }
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; }
};