head 1.4; access; symbols; locks; strict; comment @# @; 1.4 date 2002.09.07.01.50.36; author curt; state Exp; branches; next 1.3; 1.3 date 2002.08.31.19.01.50; author curt; state Exp; branches; next 1.2; 1.2 date 2002.08.31.18.53.58; author curt; state Exp; branches; next 1.1; 1.1 date 2002.02.15.17.21.54; author curt; state Exp; branches; next ; desc @@ 1.4 log @Updated doxygen docs. @ text @
Main Page Class Hierarchy Compound List File List Compound Members File Members

# SGIOChannel Class Reference

The SGIOChannel base class provides a consistent method for applications to communication through various mediums. More...

`#include <iochannel.hxx>`

Inheritance diagram for SGIOChannel:

List of all members.

## Public Methods
| SGIOChannel ()
| Constructor.
virtual | ~SGIOChannel ()
| Destructor.
virtual bool | open (const SGProtocolDir d)
| Open a channel.
virtual int | read (char *buf, int length)
| The read() method is modeled after the read() Unix system call.
virtual int | readline (char *buf, int length)
| The readline() method is similar to read() except that it will stop at the first end of line encountered in the input buffer.
virtual int | write (const char *buf, const int length)
| The write() method is modeled after the write() Unix system call and is analogous to the read() method.
virtual int | writestring (const char *str)
| 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.
virtual bool | close ()
| The close() method is modeled after the close() Unix system call and will close an open device.
void | set_type (SGChannelType t)
SGChannelType | get_type () const
void | set_dir (const SGProtocolDir d)
SGProtocolDir | get_dir () const
bool | isvalid () const
void | set_valid (const bool v)

## Detailed Description

The SGIOChannel base class provides a consistent method for applications to communication through various mediums.

By providing a base class with multiple derived classes, and application such as FlightGear can implement a way to speak any protocol via any kind of I/O channel.

All of the SGIOChannel derived classes have exactly the same usage interface once an instance has been created.

Definition at line 76 of file iochannel.hxx.

## Member Function Documentation

bool SGIOChannel::close | ( |  | ) | `[virtual]`

| 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. Returns: result of close Reimplemented in SGFile, SGSerial, SGSocket, and SGSocketUDP. Definition at line 70 of file iochannel.cxx.

bool SGIOChannel::open | ( | const SGProtocolDir | d | ) | `[virtual]`

  | Open a channel. Parameters:
  d | channel communication "direction" Direction can be one of: SG_IO_IN - data will be flowing into this object to the application. SG_IO_OUT - data will be flowing out of this object from the application. 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.
Returns: result of open Reimplemented in SGFile, SGSerial, SGSocket, and SGSocketUDP. Definition at line 40 of file iochannel.cxx. References SGProtocolDir.

int SGIOChannel::read | ( | char * | buf,
|  | int | length
| ) | `[virtual]`

  | The read() method is modeled after the read() Unix system call. You must provide a pointer to a character buffer that has enough allocated space for your potential read. You can also specify the maximum number of bytes allowed for this particular read. The actual number of bytes read is returned. You are responsible to ensure that the size of buf is large enough to accomodate your input message Parameters:
  buf | a char pointer to your input buffer
  length | max number of bytes to read
Returns: number of bytes read Reimplemented in SGFile, SGSerial, SGSocket, and SGSocketUDP. Definition at line 46 of file iochannel.cxx.

int SGIOChannel::readline | ( | char * | buf,
|  | int | length
| ) | `[virtual]`

  | The readline() method is similar to read() except that it will stop at the first end of line encountered in the input buffer. Parameters:
  buf | a char pointer to your input buffer
  length | max number of bytes to read
Returns: number of bytes read Reimplemented in SGFile, SGSerial, SGSocket, and SGSocketUDP. Definition at line 52 of file iochannel.cxx.

int SGIOChannel::write | ( | const char * | buf,
|  | const int | length
| ) | `[virtual]`

  | 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. Parameters:
  buf | a char pointer to your output buffer
  length | number of bytes to write
Returns: number of bytes written Reimplemented in SGFile, SGSerial, SGSocket, and SGSocketUDP. Definition at line 58 of file iochannel.cxx.

int SGIOChannel::writestring | ( | const char * | str | ) | `[virtual]`

  | 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. Parameters:
  buf | a char pointer to your output buffer
Returns: number of bytes written Reimplemented in SGFile, SGSerial, SGSocket, and SGSocketUDP. Definition at line 64 of file iochannel.cxx.

The documentation for this class was generated from the following files:

- iochannel.hxx
- iochannel.cxx

@ 1.3 log @Oops, try again. @ text @d355 1 a355 1