source: XMLIO_V2/external/include/Poco/Net/HTTPSessionInstantiator.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: 3.3 KB
Line 
1//
2// HTTPSessionInstantiator.h
3//
4// $Id: //poco/1.3/Net/include/Poco/Net/HTTPSessionInstantiator.h#1 $
5//
6// Library: Net
7// Package: HTTPClient
8// Module:  HTTPSessionInstantiator
9//
10// Definition of the HTTPSessionInstantiator class.
11//
12// Copyright (c) 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_HTTPSessionInstantiator_INCLUDED
40#define Net_HTTPSessionInstantiator_INCLUDED
41
42
43#include "Poco/Net/Net.h"
44#include "Poco/Net/HTTPSession.h"
45#include "Poco/URI.h"
46
47
48namespace Poco {
49namespace Net {
50
51
52class HTTPClientSession;
53
54
55class Net_API HTTPSessionInstantiator
56        /// A factory for HTTPClientSession objects.
57        ///
58        /// Creates a HTTP session for a given URI.
59        /// A HTTPSessionInstantiator is not used directly.
60        /// Instances are registered with a HTTPSessionFactory,
61        /// and used through it.
62{
63public:
64        HTTPSessionInstantiator();
65                /// Creates the HTTPSessionInstantiator.
66
67        virtual ~HTTPSessionInstantiator();
68                /// Destroys the HTTPSessionInstantiator.
69
70        virtual HTTPClientSession* createClientSession(const Poco::URI& uri);
71                /// Creates a HTTPClientSession for the given URI.
72
73        static void registerInstantiator();
74                /// Registers the instantiator with the global HTTPSessionFactory.
75
76        static void unregisterInstantiator();
77                /// Unregisters the factory with the global HTTPSessionFactory.
78
79protected:
80        void setProxy(const std::string& host, Poco::UInt16 port);
81                /// Sets the proxy host and port.
82                /// Called by HTTPSessionFactory.
83                       
84        const std::string& proxyHost() const;
85                /// Returns the proxy post.
86
87        Poco::UInt16 proxyPort() const;
88                /// Returns the proxy port.
89
90private:
91        std::string  _proxyHost;
92        Poco::UInt16 _proxyPort;
93       
94        friend class HTTPSessionFactory;
95};
96
97
98//
99// inlines
100//
101inline const std::string& HTTPSessionInstantiator::proxyHost() const
102{
103        return _proxyHost;
104}
105
106
107inline Poco::UInt16 HTTPSessionInstantiator::proxyPort() const
108{
109        return _proxyPort;
110}
111
112
113} } // namespace Poco::Net
114
115
116#endif // Net_HTTPSessionInstantiator_INCLUDED
Note: See TracBrowser for help on using the repository browser.