00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _FORMFILE_H_
00025 #define _FORMFILE_H_ 1
00026
00027 #ifdef __GNUG__
00028 # pragma interface
00029 #endif
00030
00040 #include <iostream>
00041 #include <string>
00042
00043 #include "cgicc/CgiDefs.h"
00044
00045 namespace cgicc {
00046
00047
00048
00049
00050
00064 class CGICC_API FormFile
00065 {
00066 public:
00067
00068
00069
00072
00078 inline
00079 FormFile()
00080 {}
00081
00091 FormFile(const std::string& name,
00092 const std::string& filename,
00093 const std::string& dataType,
00094 const std::string& data);
00095
00102 inline
00103 FormFile(const FormFile& file)
00104 { operator=(file); }
00105
00111 inline
00112 ~FormFile()
00113 {}
00115
00116
00117
00120
00128 bool
00129 operator== (const FormFile& file) const;
00130
00138 inline bool
00139 operator!= (const FormFile& file) const
00140 { return ! operator==(file); }
00141
00142 #ifdef WIN32
00143
00144 inline bool
00145 operator< (const FormFile& file) const
00146 { return false; }
00147 #endif
00148
00156 FormFile&
00157 operator= (const FormFile& file);
00159
00160
00161
00166
00173 void
00174 writeToStream(std::ostream& out) const;
00175
00183 inline std::string
00184 getName() const
00185 { return fName; }
00186
00193 inline std::string
00194 getFilename() const
00195 { return fFilename; }
00196
00203 inline std::string
00204 getDataType() const
00205 { return fDataType; }
00206
00213 inline std::string
00214 getData() const
00215 { return fData; }
00216
00223 inline std::string::size_type
00224 getDataLength() const
00225 { return fData.length(); }
00227
00228 private:
00229 std::string fName;
00230 std::string fFilename;
00231 std::string fDataType;
00232 std::string fData;
00233 };
00234
00235 }
00236
00237 #endif