00001 /* 00002 * lib-gmapkernel : Un noyau de 3-G-cartes et des opérations. 00003 * Copyright (C) 2004, Moka Team, Université de Poitiers, Laboratoire SIC 00004 * http://www.sic.sp2mi.univ-poitiers.fr/ 00005 * Copyright (C) 2009, Guillaume Damiand, CNRS, LIRIS, 00006 * guillaume.damiand@liris.cnrs.fr, http://liris.cnrs.fr/ 00007 * 00008 * This file is part of lib-gmapkernel 00009 * 00010 * This program is free software: you can redistribute it and/or modify 00011 * it under the terms of the GNU Lesser General Public License as published by 00012 * the Free Software Foundation, either version 3 of the License, or 00013 * (at your option) any later version. 00014 * 00015 * This program is distributed in the hope that it will be useful, 00016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00018 * GNU Lesser General Public License for more details. 00019 * 00020 * You should have received a copy of the GNU Lesser General Public License 00021 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00022 */ 00023 00024 //****************************************************************************** 00025 #ifndef STREAMS_HH 00026 #define STREAMS_HH 00027 //****************************************************************************** 00028 #include "math-extension.hh" // pour la définition du type tcoordinate 00029 #include "alt-stdint.hh" 00030 #include "inline-macro.hh" 00031 00032 #include <iostream> 00033 //****************************************************************************** 00034 00041 // @name Conversions tableau de 8 bits <-> octet 00042 // @{ 00043 00054 uint8_t bool2char(bool ABoolArray[/*8*/]); 00055 00066 void char2bool(uint8_t AChar, bool ABoolArray[/*8*/]); 00067 00068 // @} 00069 // @name Lecture et écriture d'éléments en mode binaire ou ascii 00070 // @{ 00071 00075 void setBinaryMode(); 00076 00080 void setAsciiMode(); 00081 00089 void writeBool(std::ostream& AStream, bool ABool); 00090 00098 void writeChar(std::ostream& AStream, uint8_t AChar); 00099 00107 void writeInt(std::ostream& AStream, uint32_t AInt); 00108 00116 void writeCoord(std::ostream& AStream, const TCoordinate& ACoord); 00117 00125 bool readBool(std::istream& AStream); 00126 00134 uint8_t readChar(std::istream& AStream); 00135 00143 uint32_t readInt(std::istream& AStream); 00144 00152 TCoordinate readCoord(std::istream& AStream); 00153 00161 void writeTab(std::ostream& AStream); 00162 00170 void writeSpc(std::ostream& AStream); 00171 00179 void writeRet(std::ostream& AStream); 00180 00181 // @} 00182 00183 //****************************************************************************** 00184 #include INCLUDE_INLINE("streams.icc") 00185 //****************************************************************************** 00186 #endif // STREAMS_HH 00187 //******************************************************************************