00001 /*
00002 * NOTE: "zlib/libpng" style License
00003 *
00004 * ----=== s t d n e t ===----
00005 *
00006 * Copyright (c) 2002 Warwick Molloy w-molloy@users.sf.net
00007 *
00008 * Copyright (c) 2002 Stdnet Community
00009 * HTTP://Sourceforge.net/projects/stdnet
00010 *
00011 * All references to "software" refer to the stdnet.
00012 *
00013 * This software is provided 'as-is', without any express or
00014 * implied warranty. In no event will the authors be held liable
00015 * for any damages arising from the use of this software.
00016 *
00017 * Permission is granted to anyone to use this software for any
00018 * purpose, including commercial applications, and to alter it
00019 * and redistribute it freely, subject to the following
00020 * restrictions:
00021 *
00022 * 1. The origin of this software must not be misrepresented;
00023 * you must not claim that you wrote the original software.
00024 * If you use this software in a product, an acknowledgment
00025 * in the product documentation would be appreciated but
00026 * is not required.
00027 *
00028 * 2. Altered source versions must be plainly marked as such,
00029 * and must not be misrepresented as being the original
00030 * software.
00031 *
00032 * 3. This notice may not be removed or altered from any source
00033 * distribution.
00034 */
00035
00036 #ifndef __io_OutputStream__
00037 #define __io_OutputStream__
00038
00039 #include <stdnet/system/Abstract>
00040 #include <stdnet/io/IOException>
00041
00042 namespace stdbase {
00047 namespace io {
00048
00052 class OutputStream : public system::Abstract
00053 {
00054 protected:
00055 virtual ~OutputStream() {};
00056
00063 virtual void inc() const { this->inc(); }
00064
00071 virtual unsigned dec() const { return this->dec(); }
00072
00073 public:
00074 virtual void write( int b) throw (IOException) = 0;
00075 virtual void write( byte b[], int len) throw (IOException) = 0;
00076
00077 virtual void flush() throw (IOException) = 0;
00078 virtual void close() throw (IOException) = 0;
00079 };
00080
00081 //class FileOutputStream;
00082
00083 typedef system::reference< OutputStream > OutputStreamRef;
00084
00085 } // -- end io --
00086 } // ------ end stdbase --
00087
00088 #endif // __io_OutputStream__
00089
1.2.9.1 written by Dimitri van Heesch,
© 1997-2001