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