Main MRPT website > C++ reference
MRPT logo

CStdOutStream.h

Go to the documentation of this file.
00001 /* +---------------------------------------------------------------------------+
00002    |          The Mobile Robot Programming Toolkit (MRPT) C++ library          |
00003    |                                                                           |
00004    |                   http://mrpt.sourceforge.net/                            |
00005    |                                                                           |
00006    |   Copyright (C) 2005-2011  University of Malaga                           |
00007    |                                                                           |
00008    |    This software was written by the Machine Perception and Intelligent    |
00009    |      Robotics Lab, University of Malaga (Spain).                          |
00010    |    Contact: Jose-Luis Blanco  <jlblanco@ctima.uma.es>                     |
00011    |                                                                           |
00012    |  This file is part of the MRPT project.                                   |
00013    |                                                                           |
00014    |     MRPT is free software: you can redistribute it and/or modify          |
00015    |     it under the terms of the GNU General Public License as published by  |
00016    |     the Free Software Foundation, either version 3 of the License, or     |
00017    |     (at your option) any later version.                                   |
00018    |                                                                           |
00019    |   MRPT is distributed in the hope that it will be useful,                 |
00020    |     but WITHOUT ANY WARRANTY; without even the implied warranty of        |
00021    |     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         |
00022    |     GNU General Public License for more details.                          |
00023    |                                                                           |
00024    |     You should have received a copy of the GNU General Public License     |
00025    |     along with MRPT.  If not, see <http://www.gnu.org/licenses/>.         |
00026    |                                                                           |
00027    +---------------------------------------------------------------------------+ */
00028 #ifndef  CSTDOUTSTREAM_H
00029 #define  CSTDOUTSTREAM_H
00030 
00031 #include <mrpt/utils/CStream.h>
00032 
00033 /*---------------------------------------------------------------
00034         Class
00035   ---------------------------------------------------------------*/
00036 namespace mrpt
00037 {
00038 namespace utils
00039 {
00040         /** This CStdOutStream derived class allow printing to standard out, normally
00041          *    the console text output. Please notice CStdOutStream's are binary streams,
00042          *    so "char *" data types only should be used if textual outputs are
00043          *    desired.
00044          *
00045          * \sa CStream
00046          */
00047         class BASE_IMPEXP CStdOutStream : public CStream
00048         {
00049         protected:
00050                  /** Method responsible for reading from the stream:
00051                   *   In this class it has no effect.
00052                   */
00053                 size_t  Read(void *Buffer, size_t Count) { THROW_EXCEPTION("Read-only stream"); }
00054 
00055                 /** Method responsible for writing to the stream.
00056                  *  Write attempts to write up to Count bytes to Buffer, and returns the number of bytes actually written.
00057                  */
00058                 size_t Write(const void *Buffer,size_t Count);
00059 
00060         public:
00061                  /** Constructor
00062                   */
00063                 CStdOutStream() { }
00064 
00065                  /** Destructor
00066                  */
00067                 virtual ~CStdOutStream() { }
00068 
00069                 /** It has no efect in this class.
00070                  */
00071                 uint64_t Seek(long Offset, CStdOutStream::TSeekOrigin Origin = sFromBeginning)
00072                         { THROW_EXCEPTION("Invalid operation for this kind of stream"); }
00073 
00074                 /** It has no efect in this class.
00075                  */
00076                 uint64_t getTotalBytesCount()
00077                         { THROW_EXCEPTION("Invalid operation for this kind of stream"); }
00078 
00079                 /** It has no efect in this class.
00080                  */
00081                 uint64_t getPosition()
00082                         { THROW_EXCEPTION("Invalid operation for this kind of stream"); }
00083 
00084         }; // End of class def.
00085 
00086 } // End of namespace
00087 } // End of namespace
00088 
00089 #endif



Page generated by Doxygen 1.7.3 for MRPT 0.9.4 SVN:exported at Tue Jan 25 21:56:31 UTC 2011