From: curt Date: Sat, 24 Mar 2001 13:56:53 +0000 (+0000) Subject: name space tweaks. X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=4326d560e96e42893d9048cc6ee6625d7351c054;p=simgear.git name space tweaks. dogygen. --- diff --git a/simgear/Makefile.am b/simgear/Makefile.am index dc6e96d2..56d6c4bf 100644 --- a/simgear/Makefile.am +++ b/simgear/Makefile.am @@ -22,7 +22,7 @@ METAR_DIRS = metar EXTRA_DIST = version.h.in include_HEADERS = \ - compiler.h constants.h inlines.h sg_traits.hxx sg_zlib.h version.h + compiler.h constants.h sg_inlines.h sg_traits.hxx sg_zlib.h version.h SUBDIRS = \ bucket \ diff --git a/simgear/inlines.h b/simgear/inlines.h deleted file mode 100644 index e3aae3c3..00000000 --- a/simgear/inlines.h +++ /dev/null @@ -1,62 +0,0 @@ -// inlines.h -- various inline template definitions -// -// Written by Norman Vine, started June 2000. -// -// Copyright (C) 2000 Norman Vine - nhv@cape.com -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the -// Free Software Foundation, Inc., 59 Temple Place - Suite 330, -// Boston, MA 02111-1307, USA. -// -// $Id$ - - -#ifndef _SG_INLINES_H -#define _SG_INLINES_H - - -template -inline const int SG_SIGN(const T x) { - return x < T(0) ? -1 : 1; -} - -template -inline const T SG_MIN2(const T a, const T b) { - return a < b ? a : b; -} - -// return the minimum of three values -template -inline const T SG_MIN3( const T a, const T b, const T c) { - return (a < b ? SG_MIN2 (a, c) : SG_MIN2 (b, c)); -} - -template -inline const T SG_MAX2(const T a, const T b) { - return a > b ? a : b; -} - -// return the maximum of three values -template -inline const T SG_MAX3 (const T a, const T b, const T c) { - return (a > b ? SG_MAX2 (a, c) : SG_MAX2 (b, c)); -} - -// -template -inline void SG_SWAP( T &a, T &b) { - T c = a; a = b; b = c; -} - -#endif // _SG_INLINES_H diff --git a/simgear/io/iochannel.hxx b/simgear/io/iochannel.hxx index 1651c106..cd40b6bd 100644 --- a/simgear/io/iochannel.hxx +++ b/simgear/io/iochannel.hxx @@ -1,5 +1,8 @@ -// iochannel.hxx -- High level IO channel class -// +/** + * \file iochannel.hxx + * High level IO channel base class. + */ + // Written by Curtis Olson, started November 1999. // // Copyright (C) 1999 Curtis L. Olson - curt@flightgear.org @@ -38,6 +41,10 @@ SG_USING_STD(string); #define SG_IO_MAX_MSG_SIZE 16384 +/** + * Specify if this is a read (IN), write (OUT), or r/w (BI) directional + * channel + */ enum SGProtocolDir { SG_IO_NONE = 0, SG_IO_IN = 1, @@ -45,13 +52,27 @@ enum SGProtocolDir { SG_IO_BI = 3 }; - +/** + * Specify the channel type + */ enum SGChannelType { sgFileType = 0, sgSerialType = 1, sgSocketType = 2 }; + +/** + * 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. + * + */ class SGIOChannel { SGChannelType type; @@ -60,11 +81,43 @@ class SGIOChannel { public: + /** Constructor */ SGIOChannel(); + + /** Destructor */ virtual ~SGIOChannel(); + /** Open a channel. + * @param 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. + */ virtual bool open( const SGProtocolDir d ); + + /** + * 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 + * @param buf a char pointer to your input buffer + * @param length max number of bytes to read + */ virtual int read( 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. + * @param buf a char pointer to your input buffer + * @param length max number of bytes to read + */ virtual int readline( char *buf, int length ); virtual int write( const char *buf, const int length ); virtual int writestring( const char *str ); diff --git a/simgear/sg_inlines.h b/simgear/sg_inlines.h new file mode 100644 index 00000000..0fc86761 --- /dev/null +++ b/simgear/sg_inlines.h @@ -0,0 +1,64 @@ +/** + * \file sg_inlines.h + * Various inline template definitions. + */ + +// Written by Norman Vine, started June 2000. +// +// Copyright (C) 2000 Norman Vine - nhv@cape.com +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Library General Public +// License as published by the Free Software Foundation; either +// version 2 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Library General Public License for more details. +// +// You should have received a copy of the GNU Library General Public +// License along with this library; if not, write to the +// Free Software Foundation, Inc., 59 Temple Place - Suite 330, +// Boston, MA 02111-1307, USA. +// +// $Id$ + + +#ifndef _SG_INLINES_H +#define _SG_INLINES_H + +template +inline const int SG_SIGN(const T x) { + return x < T(0) ? -1 : 1; +} + +template +inline const T SG_MIN2(const T a, const T b) { + return a < b ? a : b; +} + +// return the minimum of three values +template +inline const T SG_MIN3( const T a, const T b, const T c) { + return (a < b ? SG_MIN2 (a, c) : SG_MIN2 (b, c)); +} + +template +inline const T SG_MAX2(const T a, const T b) { + return a > b ? a : b; +} + +// return the maximum of three values +template +inline const T SG_MAX3 (const T a, const T b, const T c) { + return (a > b ? SG_MAX2 (a, c) : SG_MAX2 (b, c)); +} + +// +template +inline void SG_SWAP( T &a, T &b) { + T c = a; a = b; b = c; +} + +#endif // _SG_INLINES_H