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.