00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _HTTPHEADER_H_
00023 #define _HTTPHEADER_H_ 1
00024
00025 #ifdef __GNUG__
00026 # pragma interface
00027 #endif
00028
00034 #include <string>
00035 #include <vector>
00036
00037 #include "cgicc/MStreamable.h"
00038 #include "cgicc/HTTPCookie.h"
00039
00040 CGICC_BEGIN_NAMESPACE
00041
00042
00043
00044
00045
00050 class CGICC_API HTTPHeader : public MStreamable
00051 {
00052 public:
00053
00056
00061 HTTPHeader(const STDNS string& data);
00062
00067 HTTPHeader(const HTTPHeader& header);
00068
00073 virtual ~HTTPHeader();
00075
00076
00077
00080
00085 inline HTTPHeader&
00086 setCookie(const HTTPCookie& cookie)
00087 { fCookies.push_back(cookie); return *this; }
00088
00093 inline const STDNS vector<HTTPCookie>&
00094 getCookies() const
00095 { return fCookies; }
00097
00098
00099
00102
00107 inline STDNS string
00108 getData() const
00109 { return fData; }
00111
00112
00113
00116
00123 virtual void
00124 render(STDNS ostream& out) const = 0;
00126
00127 private:
00128 HTTPHeader();
00129
00130 STDNS string fData;
00131 STDNS vector<HTTPCookie> fCookies;
00132 };
00133
00134 CGICC_END_NAMESPACE
00135
00136 #endif