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://www.mrpt.org/                                |
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          * \ingroup mrpt_base_grp
00047          */
00048         class BASE_IMPEXP CStdOutStream : public CStream
00049         {
00050         protected:
00051                  /** Method responsible for reading from the stream:
00052                   *   In this class it has no effect.
00053                   */
00054                 size_t  Read(void *Buffer, size_t Count) { THROW_EXCEPTION("Read-only stream"); }
00055 
00056                 /** Method responsible for writing to the stream.
00057                  *  Write attempts to write up to Count bytes to Buffer, and returns the number of bytes actually written.
00058                  */
00059                 size_t Write(const void *Buffer,size_t Count);
00060 
00061         public:
00062                  /** Constructor
00063                   */
00064                 CStdOutStream() { }
00065 
00066                  /** Destructor
00067                  */
00068                 virtual ~CStdOutStream() { }
00069 
00070                 /** It has no efect in this class.
00071                  */
00072                 uint64_t Seek(long Offset, CStdOutStream::TSeekOrigin Origin = sFromBeginning)
00073                         { THROW_EXCEPTION("Invalid operation for this kind of stream"); }
00074 
00075                 /** It has no efect in this class.
00076                  */
00077                 uint64_t getTotalBytesCount()
00078                         { THROW_EXCEPTION("Invalid operation for this kind of stream"); }
00079 
00080                 /** It has no efect in this class.
00081                  */
00082                 uint64_t getPosition()
00083                         { THROW_EXCEPTION("Invalid operation for this kind of stream"); }
00084 
00085         }; // End of class def.
00086 
00087 } // End of namespace
00088 } // End of namespace
00089 
00090 #endif



Page generated by Doxygen 1.7.5 for MRPT 0.9.5 SVN: at Thu Oct 13 21:25:36 UTC 2011