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