topical media & game development
lib-of-vs-libs-Poco-include-Poco-Net-HTTPMessage.h / h
//
// HTTPMessage.h
//
//
//
// Library: Net
// Package: HTTP
// Module: HTTPMessage
//
// Definition of the HTTPMessage class.
//
// Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
ifndef Net_HTTPMessage_INCLUDED
define Net_HTTPMessage_INCLUDED
include "Poco/Net/Net.h"
include "Poco/Net/MessageHeader.h"
namespace Poco {
namespace Net {
class MediaType;
class Net_API HTTPMessage: public MessageHeader
The base class for HTTPRequest and HTTPResponse.
Defines the common properties of all HTTP messages.
These are version, content length, content type
and transfer encoding.
{
public:
void setVersion(const std::string& version);
Sets the HTTP version for this message.
const std::string& getVersion() const;
Returns the HTTP version for this message.
void setContentLength(int length);
Sets the Content-Length header.
If length is UNKNOWN_CONTENT_LENGTH, removes
the Content-Length header.
int getContentLength() const;
Returns the content length for this message,
which may be UNKNOWN_CONTENT_LENGTH if
no Content-Length header is present.
void setTransferEncoding(const std::string& transferEncoding);
Sets the transfer encoding for this message.
The value should be either IDENTITY_TRANSFER_CODING
or CHUNKED_TRANSFER_CODING.
const std::string& getTransferEncoding() const;
Returns the transfer encoding used for this
message.
Normally, this is the value of the Transfer-Encoding
header field. If no such field is present,
returns IDENTITY_TRANSFER_CODING.
void setChunkedTransferEncoding(bool flag);
If flag is true, sets the Transfer-Encoding header to
chunked. Otherwise, removes the Transfer-Encoding
header.
bool getChunkedTransferEncoding() const;
Returns true if the Transfer-Encoding header is set
and its value is chunked.
void setContentType(const std::string& mediaType);
Sets the content type for this message.
Specify NO_CONTENT_TYPE to remove the
Content-Type header.
void setContentType(const MediaType& mediaType);
Sets the content type for this message.
const std::string& getContentType() const;
Returns the content type for this message.
If no Content-Type header is present,
returns UNKNOWN_CONTENT_TYPE.
void setKeepAlive(bool keepAlive);
Sets the value of the
Connection header field.
The value is set to "Keep-Alive" if keepAlive is
true, or to "Close" otherwise.
bool getKeepAlive() const;
Returns true if
* the message has a
Connection header field and its value is "Keep-Alive"
* the message is a HTTP/1.1 message and not
Connection header is set
Returns false otherwise.
static const std::string HTTP_1_0;
static const std::string HTTP_1_1;
static const std::string IDENTITY_TRANSFER_ENCODING;
static const std::string CHUNKED_TRANSFER_ENCODING;
static const int UNKNOWN_CONTENT_LENGTH;
static const std::string UNKNOWN_CONTENT_TYPE;
static const std::string CONTENT_LENGTH;
static const std::string CONTENT_TYPE;
static const std::string TRANSFER_ENCODING;
static const std::string CONNECTION;
static const std::string CONNECTION_KEEP_ALIVE;
static const std::string CONNECTION_CLOSE;
protected:
HTTPMessage();
Creates the HTTPMessage with version HTTP/1.0.
HTTPMessage(const std::string& version);
Creates the HTTPMessage and sets
the version.
virtual ~HTTPMessage();
Destroys the HTTPMessage.
private:
HTTPMessage(const HTTPMessage&);
HTTPMessage& operator = (const HTTPMessage&);
std::string _version;
};
//
// inlines
//
inline const std::string& HTTPMessage::getVersion() const
{
return _version;
}
} } // namespace Poco::Net
endif // Net_HTTPMessage_INCLUDED
(C) Æliens
04/09/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.