00001 #ifndef SCT_ISISTREAMWRAPPER_H
00002 #define SCT_ISISTREAMWRAPPER_H
00003 #include "is/istream.h"
00004 #include "IStream.h"
00005
00006 namespace Sct{
00008 class ISIStreamWrapper : public virtual ISistream {
00009 public:
00010 ISIStreamWrapper(IStream& is) : is(is) {
00011
00012 }
00013
00014 virtual ~ISIStreamWrapper() {}
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 virtual ISistream & operator>>(char *str) {
00025
00026 is >> str;
00027 return *this;
00028 }
00029
00030 virtual ISistream & operator>>(unsigned char *str) {
00031
00032 is >> str;
00033 return *this;
00034 }
00035
00036 virtual ISistream & operator>>(char **str) {
00037
00038 is >> str;
00039 return *this;
00040 }
00041
00042 virtual ISistream & operator>>(unsigned char **str) {
00043
00044 is >> str;
00045 return *this;
00046 }
00047
00048 virtual ISistream & operator>>(bool& val) {
00049
00050 is >> val;
00051 return *this;
00052 }
00053
00054 virtual ISistream & operator>>(char& val) {
00055
00056 is >> val;
00057 return *this;
00058 }
00059
00060 virtual ISistream & operator>>(unsigned char& val) {
00061
00062 is >> val;
00063 return *this;
00064 }
00065
00066 virtual ISistream & operator>>(short& val) {
00067
00068 is >> val;
00069 return *this;
00070 }
00071
00072 virtual ISistream & operator>>(unsigned short& val) {
00073
00074 is >> val;
00075 return *this;
00076 }
00077
00078 virtual ISistream & operator>>(int& val) {
00079
00080 is >> val;
00081 return *this;
00082 }
00083
00084 virtual ISistream & operator>>(unsigned int& val) {
00085
00086 is >> val;
00087 return *this;
00088 }
00089
00090 virtual ISistream & operator>>(long& val) {
00091
00092 is >> val;
00093 return *this;
00094 }
00095
00096 virtual ISistream & operator>>(unsigned long& val) {
00097
00098 is >> val;
00099 return *this;
00100 }
00101
00102 virtual ISistream & operator>>(float& val) {
00103
00104 is >> val;
00105 return *this;
00106 }
00107
00108 virtual ISistream & operator>>(double& val) {
00109
00110 is >> val;
00111 return *this;
00112 }
00113
00114 virtual ISistream & operator>>(std::string& val) {
00115
00116 is >> val;
00117 return *this;
00118 }
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145 virtual ISistream & get ( bool ** p, size_t & size ) {
00146 is.get(p,size);
00147 return *this;
00148 }
00149
00150 virtual ISistream & get ( char ** p, size_t & size ) {
00151 is.get(p,size);
00152 return *this;
00153 }
00154
00155 virtual ISistream & get ( unsigned char ** p, size_t & size ) {
00156 is.get(p,size);
00157 return *this;
00158 }
00159
00160 virtual ISistream & get( short ** p, size_t & size ) {
00161 is.get(p,size);
00162 return *this;
00163 }
00164
00165 virtual ISistream & get( unsigned short ** p, size_t & size ) {
00166 is.get(p,size);
00167 return *this;
00168 }
00169
00170 virtual ISistream & get( int ** p, size_t & size ) {
00171 is.get(p,size);
00172 return *this;
00173 }
00174
00175 virtual ISistream & get( unsigned int ** p, size_t & size ) {
00176 is.get(p,size);
00177 return *this;
00178 }
00179
00180 virtual ISistream & get( long ** p, size_t & size ) {
00181 is.get(p,size);
00182 return *this;
00183 }
00184
00185 virtual ISistream & get( unsigned long ** p, size_t & size ) {
00186 is.get(p,size);
00187 return *this;
00188 }
00189
00190 virtual ISistream & get( float ** p, size_t & size ) {
00191 is.get(p,size);
00192 return *this;
00193 }
00194
00195 virtual ISistream & get( double ** p, size_t & size ) {
00196 is.get(p,size);
00197 return *this;
00198 }
00199
00200 virtual ISistream & get( std::string ** p, size_t & size ) {
00201 is.get(p,size);
00202 return *this;
00203 }
00204
00205 virtual ISistream & get( bool * const p, const size_t size ) {
00206 is.get(p,size);
00207 return *this;
00208 }
00209
00210 virtual ISistream & get( char * const p, const size_t size ) {
00211 is.get(p,size);
00212 return *this;
00213 }
00214
00215 virtual ISistream & get( unsigned char * const p, const size_t size ) {
00216 is.get(p,size);
00217 return *this;
00218 }
00219
00220 virtual ISistream & get( short * const p, const size_t size ) {
00221 is.get(p,size);
00222 return *this;
00223 }
00224
00225 virtual ISistream & get( unsigned short * const p, const size_t size ) {
00226 is.get(p,size);
00227 return *this;
00228 }
00229
00230 virtual ISistream & get( int * const p, const size_t size ) {
00231 is.get(p,size);
00232 return *this;
00233 }
00234
00235 virtual ISistream & get( unsigned int * const p, const size_t size ) {
00236 is.get(p,size);
00237 return *this;
00238 }
00239
00240 virtual ISistream & get( long * const p, const size_t size ) {
00241 is.get(p,size);
00242 return *this;
00243 }
00244
00245 virtual ISistream & get( unsigned long * const p, const size_t size ) {
00246 is.get(p,size);
00247 return *this;
00248 }
00249
00250 virtual ISistream & get( float * const p, const size_t size ) {
00251 is.get(p,size);
00252 return *this;
00253 }
00254
00255 virtual ISistream & get( double * const p, const size_t size ) {
00256 is.get(p,size);
00257 return *this;
00258 }
00259
00260 virtual ISistream & get( std::string * const p, const size_t size ) {
00261 is.get(p,size);
00262 return *this;
00263 }
00264
00265 private:
00266 ISIStreamWrapper();
00267 IStream& is;
00268 };
00269
00270 }
00271
00272 #endif // #ifndef SCT_ISISTREAMWRAPPER_H