source: XMLIO_V2/external/include/Poco/Net/HTTPServerResponse.h @ 80

Last change on this file since 80 was 80, checked in by ymipsl, 14 years ago

ajout lib externe

  • Property svn:eol-style set to native
File size: 4.4 KB
Line 
1//
2// HTTPServerResponse.h
3//
4// $Id: //poco/1.3/Net/include/Poco/Net/HTTPServerResponse.h#4 $
5//
6// Library: Net
7// Package: HTTPServer
8// Module:  HTTPServerResponse
9//
10// Definition of the HTTPServerResponse class.
11//
12// Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH.
13// and Contributors.
14//
15// Permission is hereby granted, free of charge, to any person or organization
16// obtaining a copy of the software and accompanying documentation covered by
17// this license (the "Software") to use, reproduce, display, distribute,
18// execute, and transmit the Software, and to prepare derivative works of the
19// Software, and to permit third-parties to whom the Software is furnished to
20// do so, all subject to the following:
21//
22// The copyright notices in the Software and this entire statement, including
23// the above license grant, this restriction and the following disclaimer,
24// must be included in all copies of the Software, in whole or in part, and
25// all derivative works of the Software, unless such copies or derivative
26// works are solely in the form of machine-executable object code generated by
27// a source language processor.
28//
29// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
30// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
31// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
32// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
33// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
34// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
35// DEALINGS IN THE SOFTWARE.
36//
37
38
39#ifndef Net_HTTPServerResponse_INCLUDED
40#define Net_HTTPServerResponse_INCLUDED
41
42
43#include "Poco/Net/Net.h"
44#include "Poco/Net/HTTPResponse.h"
45#include <cstddef>
46#include <ostream>
47
48
49namespace Poco {
50namespace Net {
51
52
53class HTTPServerSession;
54class HTTPCookie;
55
56
57class Net_API HTTPServerResponse: public HTTPResponse
58        /// This subclass of HTTPResponse is used for
59        /// representing server-side HTTP responses.
60        ///
61        /// A HTTPServerResponse is passed to the
62        /// handleRequest() method of HTTPRequestHandler.
63        ///
64        /// handleRequest() must set a status code
65        /// and optional reason phrase, set headers
66        /// as necessary, and provide a message body.
67{
68public:
69        HTTPServerResponse();
70                /// Creates the HTTPServerResponse.
71
72        ~HTTPServerResponse();
73                /// Destroys the HTTPServerResponse.
74
75        virtual void sendContinue() = 0;
76                /// Sends a 100 Continue response to the
77                /// client.
78               
79        virtual std::ostream& send() = 0;
80                /// Sends the response header to the client and
81                /// returns an output stream for sending the
82                /// response body.
83                ///
84                /// The returned stream is valid until the response
85                /// object is destroyed.
86                ///
87                /// Must not be called after sendFile(), sendBuffer()
88                /// or redirect() has been called.
89               
90        virtual void sendFile(const std::string& path, const std::string& mediaType) = 0;
91                /// Sends the response header to the client, followed
92                /// by the content of the given file.
93                ///
94                /// Must not be called after send(), sendBuffer()
95                /// or redirect() has been called.
96                ///
97                /// Throws a FileNotFoundException if the file
98                /// cannot be found, or an OpenFileException if
99                /// the file cannot be opened.
100               
101        virtual void sendBuffer(const void* pBuffer, std::size_t length) = 0;
102                /// Sends the response header to the client, followed
103                /// by the contents of the given buffer.
104                ///
105                /// The Content-Length header of the response is set
106                /// to length and chunked transfer encoding is disabled.
107                ///
108                /// If both the HTTP message header and body (from the
109                /// given buffer) fit into one single network packet, the
110                /// complete response can be sent in one network packet.
111                ///
112                /// Must not be called after send(), sendFile() 
113                /// or redirect() has been called.
114               
115        virtual void redirect(const std::string& uri) = 0;
116                /// Sets the status code to 302 (Found)
117                /// and sets the "Location" header field
118                /// to the given URI, which according to
119                /// the HTTP specification, must be absolute.
120                ///
121                /// Must not be called after send() has been called.
122               
123        virtual void requireAuthentication(const std::string& realm) = 0;
124                /// Sets the status code to 401 (Unauthorized)
125                /// and sets the "WWW-Authenticate" header field
126                /// according to the given realm.
127               
128        virtual bool sent() const = 0;
129                /// Returns true if the response (header) has been sent.
130};
131
132
133} } // namespace Poco::Net
134
135
136#endif // Net_HTTPServerResponse_INCLUDED
Note: See TracBrowser for help on using the repository browser.