ResponseHeader.h

Go to the documentation of this file.
00001 /*
00002 
00003 Copyright (C) 2006-2007 by Peter Dimov.
00004 
00005 This file is part of Calitko (http://www.calitko.org).
00006 
00007 Calitko is free software; you can redistribute it and/or modify
00008 it under the terms of the GNU General Public License as published by
00009 the Free Software Foundation; either version 2 of the License, or
00010 (at your option) any later version.
00011 
00012 Calitko is distributed in the hope that it will be useful,
00013 but WITHOUT ANY WARRANTY; without even the implied warranty of
00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015 GNU General Public License for more details.
00016 
00017 You should have received a copy of the GNU General Public License
00018 along with Calitko; if not, write to the Free Software
00019 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00020 
00021 */
00022 
00023 #ifndef PROTOCOLS__HTTP__RESPONSE_HEADER_H
00024 #define PROTOCOLS__HTTP__RESPONSE_HEADER_H
00025 
00026 #include "Imports.h"
00027 #include "HeaderBase.h"
00028 
00029 namespace Protocols {
00030 namespace Http {
00031 
00034 
00040 class ResponseHeader : public HeaderBase
00041 {
00042 public:
00043     // Reimplement parts of the DataBase interface:
00044     auto_ptr <DataBase> copy() const;
00045 
00046     // Own interface:
00047                         ResponseHeader (int statusCode = 0,
00048                                         const QByteArray &reasonPhrase
00049                                                             = QByteArray(),
00050                                         int majorVer = 1,
00051                                         int minorVer = 1);
00052     int                 statusCode() const;
00053     QByteArray          reasonPhrase() const;
00054     int                 majorVersion() const;
00055     int                 minorVersion() const;
00056 
00057 private:
00058     bool                parseStartLine (const QByteArray &startLine);
00059     QByteArray          rawStartLine() const;
00060 
00062     class Data : public HeaderBase::Data
00063     {
00064     public:
00065         Q_SHARED_DATA_COPY (Data);
00066 
00067         int             statusCode;
00068         QByteArray      reasonPhrase;
00069         int             majorVersion;
00070         int             minorVersion;
00071     };
00072 
00073     Q_DECLARE_SHARED_DATA (Data);
00074 };
00075 
00077 inline int ResponseHeader::statusCode() const
00078 { Q_SD (const Data); return d->statusCode; }
00079 
00081 inline QByteArray ResponseHeader::reasonPhrase() const
00082 { Q_SD (const Data); return d->reasonPhrase; }
00083 
00085 inline int ResponseHeader::majorVersion() const
00086 { Q_SD (const Data); return d->majorVersion; }
00087 
00089 inline int ResponseHeader::minorVersion() const
00090 { Q_SD (const Data); return d->minorVersion; }
00091 
00092 } // namespace Http
00093 } // namespace Protocols
00094 
00095 #endif // PROTOCOLS__HTTP__RESPONSE_HEADER_H