PhoenixInkscape  2.0.0
Generate multiple png files with svg inkscape files
PStream_impl.h
Go to the documentation of this file.
1 /***************************************
2  Auteur : Pierre Aubert
3  Mail : pierre.aubert@lapp.in2p3.fr
4  Licence : CeCILL-C
5 ****************************************/
6 
7 #ifndef __PSTREAM_IMPL_H__
8 #define __PSTREAM_IMPL_H__
9 
10 #include "PStream.h"
11 
13 
16 template<typename T>
17 PStream & PStream::operator << (const T & value){
18  write(value);
19  return *this;
20 }
21 
23 
26 template<typename T>
28  read(value);
29  return *this;
30 }
31 
33 
36 template<typename T>
37 bool PStream::write(const T & value){
38  return fwrite((const void*)&value, sizeof(T), 1lu, p_fp) == 1lu;
39 }
40 
42 
46 template<typename T>
47 bool PStream::write(const T * tabValue, size_t nbValue){
48  return fwrite((const void*)tabValue, sizeof(T), nbValue, p_fp) == nbValue;
49 }
50 
52 
58 template<typename T>
59 bool PStream::write(const T * tabValue, size_t nbRow, size_t nbCol, size_t padding){
60  bool b(true);
61  size_t rowSize(nbCol + padding);
62  for(size_t i(0lu); i < nbRow; ++i){
63  b &= write(tabValue + i*rowSize, nbCol);
64  }
65  return b;
66 }
67 
69 
72 template<typename T>
73 bool PStream::read(T & value){
74  return fread((void*)&value, sizeof(T), 1lu, p_fp) == 1lu;
75 }
76 
78 
81 template<typename T>
82 bool PStream::read(T * tabValue, size_t nbValue){
83  return fread((void*)tabValue, sizeof(T), nbValue, p_fp) == nbValue;
84 }
85 
87 
93 template<typename T>
94 bool PStream::read(T * tabValue, size_t nbRow, size_t nbCol, size_t padding){
95  bool b(true);
96  size_t rowSize(nbCol + padding);
97  for(size_t i(0lu); i < nbRow; ++i){
98  b &= read(tabValue + i*rowSize, nbCol);
99  }
100  return b;
101 }
102 
103 
104 
105 #endif
106 
Deal with binary stream.
Definition: PStream.h:14
bool write(const T &value)
Write a value into the stream.
Definition: PStream_impl.h:37
FILE * p_fp
Pointer to the main stream.
Definition: PStream.h:51
PStream & operator<<(const T &value)
Flux operator for stream.
Definition: PStream_impl.h:17
PStream & operator>>(T &value)
Flux operator for stream.
Definition: PStream_impl.h:27
bool read(T &value)
Read a value from the stream.
Definition: PStream_impl.h:73