1/**************************************************************************** 2** libebml : parse EBML files, see http://embl.sourceforge.net/ 3** 4** <file/class description> 5** 6** Copyright (C) 2002-2004 Ingo Ralf Blum. All rights reserved. 7** 8** This library is free software; you can redistribute it and/or 9** modify it under the terms of the GNU Lesser General Public 10** License as published by the Free Software Foundation; either 11** version 2.1 of the License, or (at your option) any later version. 12** 13** This library is distributed in the hope that it will be useful, 14** but WITHOUT ANY WARRANTY; without even the implied warranty of 15** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16** Lesser General Public License for more details. 17** 18** You should have received a copy of the GNU Lesser General Public 19** License along with this library; if not, write to the Free Software 20** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 21** 22** See http://www.matroska.org/license/lgpl/ for LGPL licensing information. 23** 24** Contact license@matroska.org if any conditions of this licensing are 25** not clear to you. 26** 27**********************************************************************/ 28 29/*! 30 \file 31 \version \$Id: IOCallback.cpp 639 2004-07-09 20:59:14Z mosu $ 32 \author Steve Lhomme <robux4 @ users.sf.net> 33 \author Moritz Bunkus <moritz @ bunkus.org> 34*/ 35 36#if !defined(__GNUC__) || (__GNUC__ > 2) 37#include <sstream> 38#endif // GCC2 39#include <stdexcept> 40 41 42#include "ebml/IOCallback.h" 43 44using namespace std; 45 46START_LIBEBML_NAMESPACE 47 48void IOCallback::writeFully(const void*Buffer,size_t Size) 49{ 50 if (Size == 0) 51 return; 52 53 if (Buffer == NULL) 54 throw; 55 56 if(write(Buffer,Size) != Size) 57 { 58#if !defined(__GNUC__) || (__GNUC__ > 2) 59 stringstream Msg; 60 Msg<<"EOF in writeFully("<<Buffer<<","<<Size<<")"; 61 throw runtime_error(Msg.str()); 62#endif // GCC2 63 } 64} 65 66 67 68void IOCallback::readFully(void*Buffer,size_t Size) 69{ 70 if(Buffer == NULL) 71 throw; 72 73 if(read(Buffer,Size) != Size) 74 { 75#if !defined(__GNUC__) || (__GNUC__ > 2) 76 stringstream Msg; 77 Msg<<"EOF in readFully("<<Buffer<<","<<Size<<")"; 78 throw runtime_error(Msg.str()); 79#endif // GCC2 80 } 81} 82 83END_LIBEBML_NAMESPACE 84