123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- //
- // HTTPServerParams.h
- //
- // Library: Net
- // Package: HTTPServer
- // Module: HTTPServerParams
- //
- // Definition of the HTTPServerParams class.
- //
- // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH.
- // and Contributors.
- //
- // SPDX-License-Identifier: BSL-1.0
- //
- #ifndef Net_HTTPServerParams_INCLUDED
- #define Net_HTTPServerParams_INCLUDED
- #include "Poco/Net/Net.h"
- #include "Poco/Net/TCPServerParams.h"
- namespace Poco {
- namespace Net {
- class Net_API HTTPServerParams: public TCPServerParams
- /// This class is used to specify parameters to both the
- /// HTTPServer, as well as to HTTPRequestHandler objects.
- ///
- /// Subclasses may add new parameters to the class.
- {
- public:
- typedef Poco::AutoPtr<HTTPServerParams> Ptr;
-
- HTTPServerParams();
- /// Creates the HTTPServerParams.
- ///
- /// Sets the following default values:
- /// - timeout: 60 seconds
- /// - keepAlive: true
- /// - maxKeepAliveRequests: 0
- /// - keepAliveTimeout: 10 seconds
-
- void setServerName(const std::string& serverName);
- /// Sets the name and port (name:port) that the server uses to identify itself.
- ///
- /// If this is not set to valid DNS name for your host, server-generated
- /// redirections will not work.
-
- const std::string& getServerName() const;
- /// Returns the name and port (name:port) that the server uses to identify itself.
- void setSoftwareVersion(const std::string& softwareVersion);
- /// Sets the server software name and version that the server uses to identify
- /// itself. If this is set to a non-empty string, the server will
- /// automatically include a Server header field with the value given
- /// here in every response it sends.
- ///
- /// The format of the softwareVersion string should be name/version
- /// (e.g. MyHTTPServer/1.0).
- const std::string& getSoftwareVersion() const;
- /// Returns the server software name and version that the server uses to
- /// identify itself.
- void setTimeout(const Poco::Timespan& timeout);
- /// Sets the connection timeout for HTTP connections.
-
- const Poco::Timespan& getTimeout() const;
- /// Returns the connection timeout for HTTP connections.
-
- void setKeepAlive(bool keepAlive);
- /// Enables (keepAlive == true) or disables (keepAlive == false)
- /// persistent connections.
-
- bool getKeepAlive() const;
- /// Returns true iff persistent connections are enabled.
-
- void setKeepAliveTimeout(const Poco::Timespan& timeout);
- /// Sets the connection timeout for HTTP connections.
-
- const Poco::Timespan& getKeepAliveTimeout() const;
- /// Returns the connection timeout for HTTP connections.
-
- void setMaxKeepAliveRequests(int maxKeepAliveRequests);
- /// Specifies the maximum number of requests allowed
- /// during a persistent connection. 0 means unlimited
- /// connections.
-
- int getMaxKeepAliveRequests() const;
- /// Returns the maximum number of requests allowed
- /// during a persistent connection, or 0 if
- /// unlimited connections are allowed.
- protected:
- virtual ~HTTPServerParams();
- /// Destroys the HTTPServerParams.
- private:
- std::string _serverName;
- std::string _softwareVersion;
- Poco::Timespan _timeout;
- bool _keepAlive;
- int _maxKeepAliveRequests;
- Poco::Timespan _keepAliveTimeout;
- };
- //
- // inlines
- //
- inline const std::string& HTTPServerParams::getServerName() const
- {
- return _serverName;
- }
- inline const std::string& HTTPServerParams::getSoftwareVersion() const
- {
- return _softwareVersion;
- }
- inline const Poco::Timespan& HTTPServerParams::getTimeout() const
- {
- return _timeout;
- }
- inline bool HTTPServerParams::getKeepAlive() const
- {
- return _keepAlive;
- }
- inline int HTTPServerParams::getMaxKeepAliveRequests() const
- {
- return _maxKeepAliveRequests;
- }
- inline const Poco::Timespan& HTTPServerParams::getKeepAliveTimeout() const
- {
- return _keepAliveTimeout;
- }
- } } // namespace Poco::Net
- #endif // Net_HTTPServerParams_INCLUDED
|