| AbstractEvent.h | | AbstractEvent.h | |
| // | | // | |
| // AbstractEvent.h | | // AbstractEvent.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Foundation/include/Poco/AbstractEvent.h#3 $ | | // $Id: //poco/1.4/Foundation/include/Poco/AbstractEvent.h#4 $ | |
| // | | // | |
| // Library: Foundation | | // Library: Foundation | |
| // Package: Events | | // Package: Events | |
| // Module: AbstractEvent | | // Module: AbstractEvent | |
| // | | // | |
| // Definition of the AbstractEvent class. | | // Definition of the AbstractEvent class. | |
| // | | // | |
| // Copyright (c) 2006-2011, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2006-2011, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 170 | | skipping to change at line 170 | |
| /// MyController::~MyController() | | /// MyController::~MyController() | |
| /// { | | /// { | |
| /// _data.dataChanged -= delegate(this, &MyController::onDat
aChanged); | | /// _data.dataChanged -= delegate(this, &MyController::onDat
aChanged); | |
| /// } | | /// } | |
| /// | | /// | |
| /// Working with PriorityDelegate's as similar to working with Basic
Event. | | /// Working with PriorityDelegate's as similar to working with Basic
Event. | |
| /// Instead of delegate(), the priorityDelegate() function must be u
sed | | /// Instead of delegate(), the priorityDelegate() function must be u
sed | |
| /// to create the PriorityDelegate. | | /// to create the PriorityDelegate. | |
| { | | { | |
| public: | | public: | |
|
| | | typedef TArgs Args; | |
| | | | |
| AbstractEvent(): | | AbstractEvent(): | |
| _executeAsync(this, &AbstractEvent::executeAsyncImpl), | | _executeAsync(this, &AbstractEvent::executeAsyncImpl), | |
| _enabled(true) | | _enabled(true) | |
| { | | { | |
| } | | } | |
| | | | |
| AbstractEvent(const TStrategy& strat): | | AbstractEvent(const TStrategy& strat): | |
| _executeAsync(this, &AbstractEvent::executeAsyncImpl), | | _executeAsync(this, &AbstractEvent::executeAsyncImpl), | |
| _strategy(strat), | | _strategy(strat), | |
| _enabled(true) | | _enabled(true) | |
| | | | |
End of changes. 2 change blocks. |
| 1 lines changed or deleted | | 3 lines changed or added | |
|
| AtomicCounter.h | | AtomicCounter.h | |
| // | | // | |
| // AtomicCounter.h | | // AtomicCounter.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Foundation/include/Poco/AtomicCounter.h#4 $ | | // $Id: //poco/1.4/Foundation/include/Poco/AtomicCounter.h#7 $ | |
| // | | // | |
| // Library: Foundation | | // Library: Foundation | |
| // Package: Core | | // Package: Core | |
| // Module: AtomicCounter | | // Module: AtomicCounter | |
| // | | // | |
| // Definition of the AtomicCounter class. | | // Definition of the AtomicCounter class. | |
| // | | // | |
| // Copyright (c) 2009, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2009, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 46 | | skipping to change at line 46 | |
| // | | // | |
| | | | |
| #ifndef Foundation_AtomicCounter_INCLUDED | | #ifndef Foundation_AtomicCounter_INCLUDED | |
| #define Foundation_AtomicCounter_INCLUDED | | #define Foundation_AtomicCounter_INCLUDED | |
| | | | |
| #include "Poco/Foundation.h" | | #include "Poco/Foundation.h" | |
| #if POCO_OS == POCO_OS_WINDOWS_NT | | #if POCO_OS == POCO_OS_WINDOWS_NT | |
| #include "Poco/UnWindows.h" | | #include "Poco/UnWindows.h" | |
| #elif POCO_OS == POCO_OS_MAC_OS_X | | #elif POCO_OS == POCO_OS_MAC_OS_X | |
| #include <libkern/OSAtomic.h> | | #include <libkern/OSAtomic.h> | |
|
| #elif ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 1) || __GNUC__ > 4) && (define | | #elif ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 2) || __GNUC__ > 4) && (define | |
| d(__x86_64__) || defined(__i386__)) | | d(__x86_64__) || defined(__i386__)) | |
| #if !defined(POCO_HAVE_GCC_ATOMICS) | | #if !defined(POCO_HAVE_GCC_ATOMICS) && !defined(POCO_NO_GCC_ATOMICS) | |
| | | #define POCO_HAVE_GCC_ATOMICS | |
| | | #endif | |
| | | #elif ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3) || __GNUC__ > 4) | |
| | | #if !defined(POCO_HAVE_GCC_ATOMICS) && !defined(POCO_NO_GCC_ATOMICS) | |
| #define POCO_HAVE_GCC_ATOMICS | | #define POCO_HAVE_GCC_ATOMICS | |
| #endif | | #endif | |
| #else | | #else | |
| #include "Poco/Mutex.h" | | #include "Poco/Mutex.h" | |
| #endif // POCO_OS | | #endif // POCO_OS | |
| | | | |
| namespace Poco { | | namespace Poco { | |
| | | | |
| class Foundation_API AtomicCounter | | class Foundation_API AtomicCounter | |
| /// This class implements a simple counter, which | | /// This class implements a simple counter, which | |
| | | | |
End of changes. 2 change blocks. |
| 4 lines changed or deleted | | 8 lines changed or added | |
|
| FileChannel.h | | FileChannel.h | |
| // | | // | |
| // FileChannel.h | | // FileChannel.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Foundation/include/Poco/FileChannel.h#2 $ | | // $Id: //poco/1.4/Foundation/include/Poco/FileChannel.h#4 $ | |
| // | | // | |
| // Library: Foundation | | // Library: Foundation | |
| // Package: Logging | | // Package: Logging | |
| // Module: FileChannel | | // Module: FileChannel | |
| // | | // | |
| // Definition of the FileChannel class. | | // Definition of the FileChannel class. | |
| // | | // | |
| // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 152 | | skipping to change at line 152 | |
| /// * true: Compress archived log files. | | /// * true: Compress archived log files. | |
| /// * false: Do not compress archived log files. | | /// * false: Do not compress archived log files. | |
| /// | | /// | |
| /// Archived log files can be automatically purged, either if | | /// Archived log files can be automatically purged, either if | |
| /// they reach a certain age, or if the number of archived | | /// they reach a certain age, or if the number of archived | |
| /// log files reaches a given maximum number. This is | | /// log files reaches a given maximum number. This is | |
| /// controlled by the purgeAge and purgeCount properties. | | /// controlled by the purgeAge and purgeCount properties. | |
| /// | | /// | |
| /// The purgeAge property can have the following values: | | /// The purgeAge property can have the following values: | |
| /// | | /// | |
|
| /// * <n> [seconds] the maximum age is <n> seconds. | | /// * <n> [seconds]: the maximum age is <n> seconds. | |
| /// * <n> minutes: the maximum age is <n> minutes. | | /// * <n> minutes: the maximum age is <n> minutes. | |
| /// * <n> hours: the maximum age is <n> hours. | | /// * <n> hours: the maximum age is <n> hours. | |
| /// * <n> days: the maximum age is <n> days. | | /// * <n> days: the maximum age is <n> days. | |
| /// * <n> weeks: the maximum age is <n> weeks. | | /// * <n> weeks: the maximum age is <n> weeks. | |
| /// * <n> months: the maximum age is <n> months, where a month
has 30 days. | | /// * <n> months: the maximum age is <n> months, where a month
has 30 days. | |
| /// | | /// | |
| /// The purgeCount property has an integer value that | | /// The purgeCount property has an integer value that | |
| /// specifies the maximum number of archived log files. | | /// specifies the maximum number of archived log files. | |
| /// If the number is exceeded, archived log files are | | /// If the number is exceeded, archived log files are | |
| /// deleted, starting with the oldest. | | /// deleted, starting with the oldest. | |
| /// | | /// | |
|
| | | /// The flush property specifies whether each log message is flushed | |
| | | /// immediately to the log file (which may hurt application performa | |
| | | nce, | |
| | | /// but ensures that everything is in the log in case of a system cr | |
| | | ash), | |
| | | // or whether it's allowed to stay in the system's file buffer for | |
| | | some time. | |
| | | /// Valid values are: | |
| | | /// | |
| | | /// * true: Every essages is immediately flushed to the log file | |
| | | (default). | |
| | | /// * false: Messages are not immediately flushed to the log file | |
| | | . | |
| | | /// | |
| /// For a more lightweight file channel class, see SimpleFileChannel
. | | /// For a more lightweight file channel class, see SimpleFileChannel
. | |
| { | | { | |
| public: | | public: | |
| FileChannel(); | | FileChannel(); | |
| /// Creates the FileChannel. | | /// Creates the FileChannel. | |
| | | | |
| FileChannel(const std::string& path); | | FileChannel(const std::string& path); | |
| /// Creates the FileChannel for a file with the given path. | | /// Creates the FileChannel for a file with the given path. | |
| | | | |
| void open(); | | void open(); | |
| | | | |
| skipping to change at line 202 | | skipping to change at line 211 | |
| /// FileChannel class for details. | | /// FileChannel class for details. | |
| /// * compress: Enable or disable compression of | | /// * compress: Enable or disable compression of | |
| /// archived files. See the FileChannel clas
s | | /// archived files. See the FileChannel clas
s | |
| /// for details. | | /// for details. | |
| /// * purgeAge: Maximum age of an archived log file befo
re | | /// * purgeAge: Maximum age of an archived log file befo
re | |
| /// it is purged. See the FileChannel class
for | | /// it is purged. See the FileChannel class
for | |
| /// details. | | /// details. | |
| /// * purgeCount: Maximum number of archived log files bef
ore | | /// * purgeCount: Maximum number of archived log files bef
ore | |
| /// files are purged. See the FileChannel cl
ass | | /// files are purged. See the FileChannel cl
ass | |
| /// for details. | | /// for details. | |
|
| | | /// * flush: Specifies whether messages are immediate | |
| | | ly | |
| | | /// flushed to the log file. See the FileCha | |
| | | nnel class | |
| | | /// for details. | |
| | | | |
| std::string getProperty(const std::string& name) const; | | std::string getProperty(const std::string& name) const; | |
| /// Returns the value of the property with the given name. | | /// Returns the value of the property with the given name. | |
| /// See setProperty() for a description of the supported | | /// See setProperty() for a description of the supported | |
| /// properties. | | /// properties. | |
| | | | |
| Timestamp creationDate() const; | | Timestamp creationDate() const; | |
| /// Returns the log file's creation date. | | /// Returns the log file's creation date. | |
| | | | |
| UInt64 size() const; | | UInt64 size() const; | |
| | | | |
| skipping to change at line 224 | | skipping to change at line 236 | |
| const std::string& path() const; | | const std::string& path() const; | |
| /// Returns the log file's path. | | /// Returns the log file's path. | |
| | | | |
| static const std::string PROP_PATH; | | static const std::string PROP_PATH; | |
| static const std::string PROP_ROTATION; | | static const std::string PROP_ROTATION; | |
| static const std::string PROP_ARCHIVE; | | static const std::string PROP_ARCHIVE; | |
| static const std::string PROP_TIMES; | | static const std::string PROP_TIMES; | |
| static const std::string PROP_COMPRESS; | | static const std::string PROP_COMPRESS; | |
| static const std::string PROP_PURGEAGE; | | static const std::string PROP_PURGEAGE; | |
| static const std::string PROP_PURGECOUNT; | | static const std::string PROP_PURGECOUNT; | |
|
| | | static const std::string PROP_FLUSH; | |
| | | | |
| protected: | | protected: | |
| ~FileChannel(); | | ~FileChannel(); | |
| void setRotation(const std::string& rotation); | | void setRotation(const std::string& rotation); | |
| void setArchive(const std::string& archive); | | void setArchive(const std::string& archive); | |
| void setCompress(const std::string& compress); | | void setCompress(const std::string& compress); | |
| void setPurgeAge(const std::string& age); | | void setPurgeAge(const std::string& age); | |
| void setPurgeCount(const std::string& count); | | void setPurgeCount(const std::string& count); | |
|
| | | void setFlush(const std::string& flush); | |
| void purge(); | | void purge(); | |
| | | | |
| private: | | private: | |
| std::string _path; | | std::string _path; | |
| std::string _times; | | std::string _times; | |
| std::string _rotation; | | std::string _rotation; | |
| std::string _archive; | | std::string _archive; | |
| bool _compress; | | bool _compress; | |
| std::string _purgeAge; | | std::string _purgeAge; | |
| std::string _purgeCount; | | std::string _purgeCount; | |
|
| | | bool _flush; | |
| LogFile* _pFile; | | LogFile* _pFile; | |
| RotateStrategy* _pRotateStrategy; | | RotateStrategy* _pRotateStrategy; | |
| ArchiveStrategy* _pArchiveStrategy; | | ArchiveStrategy* _pArchiveStrategy; | |
| PurgeStrategy* _pPurgeStrategy; | | PurgeStrategy* _pPurgeStrategy; | |
| FastMutex _mutex; | | FastMutex _mutex; | |
| }; | | }; | |
| | | | |
| } // namespace Poco | | } // namespace Poco | |
| | | | |
| #endif // Foundation_FileChannel_INCLUDED | | #endif // Foundation_FileChannel_INCLUDED | |
| | | | |
End of changes. 7 change blocks. |
| 2 lines changed or deleted | | 24 lines changed or added | |
|
| HTTPBasicCredentials.h | | HTTPBasicCredentials.h | |
| // | | // | |
| // HTTPBasicCredentials.h | | // HTTPBasicCredentials.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Net/include/Poco/Net/HTTPBasicCredentials.h#3 $ | | // $Id: //poco/1.4/Net/include/Poco/Net/HTTPBasicCredentials.h#4 $ | |
| // | | // | |
| // Library: Net | | // Library: Net | |
| // Package: HTTP | | // Package: HTTP | |
| // Module: HTTPBasicCredentials | | // Module: HTTPBasicCredentials | |
| // | | // | |
| // Definition of the HTTPBasicCredentials class. | | // Definition of the HTTPBasicCredentials class. | |
| // | | // | |
| // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 87 | | skipping to change at line 87 | |
| | | | |
| const std::string& getUsername() const; | | const std::string& getUsername() const; | |
| /// Returns the username. | | /// Returns the username. | |
| | | | |
| void setPassword(const std::string& password); | | void setPassword(const std::string& password); | |
| /// Sets the password. | | /// Sets the password. | |
| | | | |
| const std::string& getPassword() const; | | const std::string& getPassword() const; | |
| /// Returns the password. | | /// Returns the password. | |
| | | | |
|
| void authenticate(HTTPRequest& request); | | void authenticate(HTTPRequest& request) const; | |
| /// Adds authentication information to the given HTTPRequest
. | | /// Adds authentication information to the given HTTPRequest
. | |
| | | | |
|
| | | void proxyAuthenticate(HTTPRequest& request) const; | |
| | | /// Adds proxy authentication information to the given HTTPR | |
| | | equest. | |
| | | | |
| static const std::string SCHEME; | | static const std::string SCHEME; | |
| | | | |
| protected: | | protected: | |
| void parseAuthInfo(const std::string& authInfo); | | void parseAuthInfo(const std::string& authInfo); | |
| /// Extracts username and password from Basic authentication
info | | /// Extracts username and password from Basic authentication
info | |
| /// by base64-decoding authInfo and splitting the resulting | | /// by base64-decoding authInfo and splitting the resulting | |
| /// string at the ':' delimiter. | | /// string at the ':' delimiter. | |
| | | | |
| private: | | private: | |
| HTTPBasicCredentials(const HTTPBasicCredentials&); | | HTTPBasicCredentials(const HTTPBasicCredentials&); | |
| | | | |
End of changes. 3 change blocks. |
| 2 lines changed or deleted | | 6 lines changed or added | |
|
| HTTPCredentials.h | | HTTPCredentials.h | |
| // | | // | |
| // HTTPCredentials.h | | // HTTPCredentials.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Net/include/Poco/Net/HTTPCredentials.h#3 $ | | // $Id: //poco/1.4/Net/include/Poco/Net/HTTPCredentials.h#4 $ | |
| // | | // | |
| // Library: Net | | // Library: Net | |
| // Package: HTTP | | // Package: HTTP | |
| // Module: HTTPCredentials | | // Module: HTTPCredentials | |
| // | | // | |
| // Definition of the HTTPCredentials class. | | // Definition of the HTTPCredentials class. | |
| // | | // | |
| // Copyright (c) 2011, Anton V. Yabchinskiy (arn at bestmx dot ru). | | // Copyright (c) 2011, Anton V. Yabchinskiy (arn at bestmx dot ru). | |
| // Copyright (c) 2012, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2012, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| | | | |
| skipping to change at line 121 | | skipping to change at line 121 | |
| const std::string& getUsername() const; | | const std::string& getUsername() const; | |
| /// Returns the username. | | /// Returns the username. | |
| | | | |
| void setPassword(const std::string& password); | | void setPassword(const std::string& password); | |
| /// Sets the password. | | /// Sets the password. | |
| | | | |
| const std::string& getPassword() const; | | const std::string& getPassword() const; | |
| /// Returns the password. | | /// Returns the password. | |
| | | | |
| void authenticate(HTTPRequest& request, const HTTPResponse& response
); | | void authenticate(HTTPRequest& request, const HTTPResponse& response
); | |
|
| /// Inspects authenticate header of the response, initialize
s | | /// Inspects WWW-Authenticate header of the response, initia
lizes | |
| /// the internal state (in case of digest authentication) an
d | | /// the internal state (in case of digest authentication) an
d | |
| /// adds required information to the given HTTPRequest. | | /// adds required information to the given HTTPRequest. | |
| /// | | /// | |
|
| /// Does nothing if there is no authentication header in the | | /// Does nothing if there is no WWW-Authenticate header in t
he | |
| /// HTTPResponse. | | /// HTTPResponse. | |
| | | | |
| void updateAuthInfo(HTTPRequest& request); | | void updateAuthInfo(HTTPRequest& request); | |
| /// Updates internal state (in case of digest authentication
) and | | /// Updates internal state (in case of digest authentication
) and | |
| /// replaces authentication information in the request accor
dingly. | | /// replaces authentication information in the request accor
dingly. | |
| | | | |
|
| | | void proxyAuthenticate(HTTPRequest& request, const HTTPResponse& res | |
| | | ponse); | |
| | | /// Inspects Proxy-Authenticate header of the response, init | |
| | | ializes | |
| | | /// the internal state (in case of digest authentication) an | |
| | | d | |
| | | /// adds required information to the given HTTPRequest. | |
| | | /// | |
| | | /// Does nothing if there is no Proxy-Authenticate header in | |
| | | the | |
| | | /// HTTPResponse. | |
| | | | |
| | | void updateProxyAuthInfo(HTTPRequest& request); | |
| | | /// Updates internal state (in case of digest authentication | |
| | | ) and | |
| | | /// replaces proxy authentication information in the request | |
| | | accordingly. | |
| | | | |
| static bool isBasicCredentials(const std::string& header); | | static bool isBasicCredentials(const std::string& header); | |
| /// Returns true if authentication header is for Basic authe
ntication. | | /// Returns true if authentication header is for Basic authe
ntication. | |
| | | | |
| static bool isDigestCredentials(const std::string& header); | | static bool isDigestCredentials(const std::string& header); | |
| /// Returns true if authentication header is for Digest auth
entication. | | /// Returns true if authentication header is for Digest auth
entication. | |
| | | | |
| static bool hasBasicCredentials(const HTTPRequest& request); | | static bool hasBasicCredentials(const HTTPRequest& request); | |
| /// Returns true if Authorization with Basic credentials hea
der is present in the request. | | /// Returns true if Authorization with Basic credentials hea
der is present in the request. | |
| | | | |
| static bool hasDigestCredentials(const HTTPRequest& request); | | static bool hasDigestCredentials(const HTTPRequest& request); | |
| /// Returns true if Authorization with Digest credentials he
ader is present in the request. | | /// Returns true if Authorization with Digest credentials he
ader is present in the request. | |
| | | | |
|
| | | static bool hasProxyBasicCredentials(const HTTPRequest& request); | |
| | | /// Returns true if Authorization with Basic credentials hea | |
| | | der is present in the request. | |
| | | | |
| | | static bool hasProxyDigestCredentials(const HTTPRequest& request); | |
| | | /// Returns true if Authorization with Digest credentials he | |
| | | ader is present in the request. | |
| | | | |
| static void extractCredentials(const std::string& userInfo, std::str
ing& username, std::string& password); | | static void extractCredentials(const std::string& userInfo, std::str
ing& username, std::string& password); | |
| /// Extracts username and password from user:password inform
ation string. | | /// Extracts username and password from user:password inform
ation string. | |
| | | | |
| static void extractCredentials(const Poco::URI& uri, std::string& us
ername, std::string& password); | | static void extractCredentials(const Poco::URI& uri, std::string& us
ername, std::string& password); | |
| /// Extracts username and password from the given URI (e.g.:
"http://user:pass@sample.com/secret"). | | /// Extracts username and password from the given URI (e.g.:
"http://user:pass@sample.com/secret"). | |
| | | | |
| private: | | private: | |
| HTTPCredentials(const HTTPCredentials&); | | HTTPCredentials(const HTTPCredentials&); | |
| HTTPCredentials& operator = (const HTTPCredentials&); | | HTTPCredentials& operator = (const HTTPCredentials&); | |
| | | | |
| | | | |
End of changes. 5 change blocks. |
| 3 lines changed or deleted | | 29 lines changed or added | |
|
| HTTPDigestCredentials.h | | HTTPDigestCredentials.h | |
| // | | // | |
| // HTTPDigestCredentials.h | | // HTTPDigestCredentials.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Net/include/Poco/Net/HTTPDigestCredentials.h#2 $ | | // $Id: //poco/1.4/Net/include/Poco/Net/HTTPDigestCredentials.h#3 $ | |
| // | | // | |
| // Library: Net | | // Library: Net | |
| // Package: HTTP | | // Package: HTTP | |
| // Module: HTTPDigestCredentials | | // Module: HTTPDigestCredentials | |
| // | | // | |
| // Definition of the HTTPDigestCredentials class. | | // Definition of the HTTPDigestCredentials class. | |
| // | | // | |
| // Copyright (c) 2011, Anton V. Yabchinskiy (arn at bestmx dot ru). | | // Copyright (c) 2011, Anton V. Yabchinskiy (arn at bestmx dot ru). | |
| // Copyright (c) 2012, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2012, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| | | | |
| skipping to change at line 83 | | skipping to change at line 83 | |
| const std::string& getUsername() const; | | const std::string& getUsername() const; | |
| /// Returns the username. | | /// Returns the username. | |
| | | | |
| void setPassword(const std::string& password); | | void setPassword(const std::string& password); | |
| /// Sets the password. | | /// Sets the password. | |
| | | | |
| const std::string& getPassword() const; | | const std::string& getPassword() const; | |
| /// Returns the password. | | /// Returns the password. | |
| | | | |
| void authenticate(HTTPRequest& request, const HTTPResponse& response
); | | void authenticate(HTTPRequest& request, const HTTPResponse& response
); | |
|
| /// Parses authentication header of the HTTPResponse, initia
lizes | | /// Parses WWW-Authenticate header of the HTTPResponse, init
ializes | |
| /// internal state, and adds authentication information to t
he given HTTPRequest. | | /// internal state, and adds authentication information to t
he given HTTPRequest. | |
| | | | |
| void authenticate(HTTPRequest& request, const HTTPAuthenticationPara
ms& responseAuthParams); | | void authenticate(HTTPRequest& request, const HTTPAuthenticationPara
ms& responseAuthParams); | |
| /// Initializes internal state according to information from
the | | /// Initializes internal state according to information from
the | |
| /// HTTPAuthenticationParams of the response, and adds authe
ntication | | /// HTTPAuthenticationParams of the response, and adds authe
ntication | |
| /// information to the given HTTPRequest. | | /// information to the given HTTPRequest. | |
| /// | | /// | |
| /// Throws InvalidArgumentException if HTTPAuthenticationPar
ams is | | /// Throws InvalidArgumentException if HTTPAuthenticationPar
ams is | |
| /// invalid or some required parameter is missing. | | /// invalid or some required parameter is missing. | |
| /// Throws NotImplementedException in case of unsupported di
gest | | /// Throws NotImplementedException in case of unsupported di
gest | |
| /// algorithm or quality of protection method. | | /// algorithm or quality of protection method. | |
| | | | |
| void updateAuthInfo(HTTPRequest& request); | | void updateAuthInfo(HTTPRequest& request); | |
| /// Updates internal state and adds authentication informati
on to | | /// Updates internal state and adds authentication informati
on to | |
| /// the given HTTPRequest. | | /// the given HTTPRequest. | |
| | | | |
|
| | | void proxyAuthenticate(HTTPRequest& request, const HTTPResponse& res | |
| | | ponse); | |
| | | /// Parses Proxy-Authenticate header of the HTTPResponse, in | |
| | | itializes | |
| | | /// internal state, and adds proxy authentication informatio | |
| | | n to the given HTTPRequest. | |
| | | | |
| | | void proxyAuthenticate(HTTPRequest& request, const HTTPAuthenticatio | |
| | | nParams& responseAuthParams); | |
| | | /// Initializes internal state according to information from | |
| | | the | |
| | | /// HTTPAuthenticationParams of the response, and adds proxy | |
| | | authentication | |
| | | /// information to the given HTTPRequest. | |
| | | /// | |
| | | /// Throws InvalidArgumentException if HTTPAuthenticationPar | |
| | | ams is | |
| | | /// invalid or some required parameter is missing. | |
| | | /// Throws NotImplementedException in case of unsupported di | |
| | | gest | |
| | | /// algorithm or quality of protection method. | |
| | | | |
| | | void updateProxyAuthInfo(HTTPRequest& request); | |
| | | /// Updates internal state and adds proxy authentication inf | |
| | | ormation to | |
| | | /// the given HTTPRequest. | |
| | | | |
| bool verifyAuthInfo(const HTTPRequest& request) const; | | bool verifyAuthInfo(const HTTPRequest& request) const; | |
| /// Verifies the digest authentication information in the gi
ven HTTPRequest | | /// Verifies the digest authentication information in the gi
ven HTTPRequest | |
| /// by recomputing the response and comparing it with what's
in the request. | | /// by recomputing the response and comparing it with what's
in the request. | |
| /// | | /// | |
| /// Note: This method creates a HTTPAuthenticationParams obj
ect from the request | | /// Note: This method creates a HTTPAuthenticationParams obj
ect from the request | |
| /// and calls verifyAuthParams() with request and params. | | /// and calls verifyAuthParams() with request and params. | |
| | | | |
| bool verifyAuthParams(const HTTPRequest& request, const HTTPAuthenti
cationParams& params) const; | | bool verifyAuthParams(const HTTPRequest& request, const HTTPAuthenti
cationParams& params) const; | |
| /// Verifies the digest authentication information in the gi
ven HTTPRequest | | /// Verifies the digest authentication information in the gi
ven HTTPRequest | |
| /// and HTTPAuthenticationParams by recomputing the response
and comparing | | /// and HTTPAuthenticationParams by recomputing the response
and comparing | |
| | | | |
End of changes. 3 change blocks. |
| 2 lines changed or deleted | | 29 lines changed or added | |
|
| HTTPFixedLengthStream.h | | HTTPFixedLengthStream.h | |
| // | | // | |
| // HTTPFixedLengthStream.h | | // HTTPFixedLengthStream.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Net/include/Poco/Net/HTTPFixedLengthStream.h#1 $ | | // $Id: //poco/1.4/Net/include/Poco/Net/HTTPFixedLengthStream.h#3 $ | |
| // | | // | |
| // Library: Net | | // Library: Net | |
| // Package: HTTP | | // Package: HTTP | |
| // Module: HTTPFixedLengthStream | | // Module: HTTPFixedLengthStream | |
| // | | // | |
| // Definition of the HTTPFixedLengthStream class. | | // Definition of the HTTPFixedLengthStream class. | |
| // | | // | |
| // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 61 | | skipping to change at line 61 | |
| | | | |
| class Net_API HTTPFixedLengthStreamBuf: public HTTPBasicStreamBuf | | class Net_API HTTPFixedLengthStreamBuf: public HTTPBasicStreamBuf | |
| /// This is the streambuf class used for reading and writing fixed-s
ize | | /// This is the streambuf class used for reading and writing fixed-s
ize | |
| /// HTTP message bodies. | | /// HTTP message bodies. | |
| /// | | /// | |
| /// At most a given number of bytes are read or written. | | /// At most a given number of bytes are read or written. | |
| { | | { | |
| public: | | public: | |
| typedef HTTPBasicStreamBuf::openmode openmode; | | typedef HTTPBasicStreamBuf::openmode openmode; | |
| | | | |
|
| HTTPFixedLengthStreamBuf(HTTPSession& session, std::streamsize lengt | | #if defined(POCO_HAVE_INT64) | |
| h, openmode mode); | | typedef Poco::Int64 ContentLength; | |
| | | #else | |
| | | typedef std::streamsize ContentLength; | |
| | | #endif | |
| | | | |
| | | HTTPFixedLengthStreamBuf(HTTPSession& session, ContentLength length, | |
| | | openmode mode); | |
| ~HTTPFixedLengthStreamBuf(); | | ~HTTPFixedLengthStreamBuf(); | |
| | | | |
| protected: | | protected: | |
| int readFromDevice(char* buffer, std::streamsize length); | | int readFromDevice(char* buffer, std::streamsize length); | |
| int writeToDevice(const char* buffer, std::streamsize length); | | int writeToDevice(const char* buffer, std::streamsize length); | |
| | | | |
| private: | | private: | |
| HTTPSession& _session; | | HTTPSession& _session; | |
|
| std::streamsize _length; | | ContentLength _length; | |
| std::streamsize _count; | | ContentLength _count; | |
| }; | | }; | |
| | | | |
| class Net_API HTTPFixedLengthIOS: public virtual std::ios | | class Net_API HTTPFixedLengthIOS: public virtual std::ios | |
| /// The base class for HTTPFixedLengthInputStream. | | /// The base class for HTTPFixedLengthInputStream. | |
| { | | { | |
| public: | | public: | |
|
| HTTPFixedLengthIOS(HTTPSession& session, std::streamsize length, HTT
PFixedLengthStreamBuf::openmode mode); | | HTTPFixedLengthIOS(HTTPSession& session, HTTPFixedLengthStreamBuf::C
ontentLength length, HTTPFixedLengthStreamBuf::openmode mode); | |
| ~HTTPFixedLengthIOS(); | | ~HTTPFixedLengthIOS(); | |
| HTTPFixedLengthStreamBuf* rdbuf(); | | HTTPFixedLengthStreamBuf* rdbuf(); | |
| | | | |
| protected: | | protected: | |
| HTTPFixedLengthStreamBuf _buf; | | HTTPFixedLengthStreamBuf _buf; | |
| }; | | }; | |
| | | | |
| class Net_API HTTPFixedLengthInputStream: public HTTPFixedLengthIOS, public
std::istream | | class Net_API HTTPFixedLengthInputStream: public HTTPFixedLengthIOS, public
std::istream | |
| /// This class is for internal use by HTTPSession only. | | /// This class is for internal use by HTTPSession only. | |
| { | | { | |
| public: | | public: | |
|
| HTTPFixedLengthInputStream(HTTPSession& session, std::streamsize len
gth); | | HTTPFixedLengthInputStream(HTTPSession& session, HTTPFixedLengthStre
amBuf::ContentLength length); | |
| ~HTTPFixedLengthInputStream(); | | ~HTTPFixedLengthInputStream(); | |
| | | | |
| void* operator new(std::size_t size); | | void* operator new(std::size_t size); | |
| void operator delete(void* ptr); | | void operator delete(void* ptr); | |
| | | | |
| private: | | private: | |
| static Poco::MemoryPool _pool; | | static Poco::MemoryPool _pool; | |
| }; | | }; | |
| | | | |
| class Net_API HTTPFixedLengthOutputStream: public HTTPFixedLengthIOS, publi
c std::ostream | | class Net_API HTTPFixedLengthOutputStream: public HTTPFixedLengthIOS, publi
c std::ostream | |
| /// This class is for internal use by HTTPSession only. | | /// This class is for internal use by HTTPSession only. | |
| { | | { | |
| public: | | public: | |
|
| HTTPFixedLengthOutputStream(HTTPSession& session, std::streamsize le
ngth); | | HTTPFixedLengthOutputStream(HTTPSession& session, HTTPFixedLengthStr
eamBuf::ContentLength length); | |
| ~HTTPFixedLengthOutputStream(); | | ~HTTPFixedLengthOutputStream(); | |
| | | | |
| void* operator new(std::size_t size); | | void* operator new(std::size_t size); | |
| void operator delete(void* ptr); | | void operator delete(void* ptr); | |
| | | | |
| private: | | private: | |
| static Poco::MemoryPool _pool; | | static Poco::MemoryPool _pool; | |
| }; | | }; | |
| | | | |
| } } // namespace Poco::Net | | } } // namespace Poco::Net | |
| | | | |
End of changes. 6 change blocks. |
| 8 lines changed or deleted | | 14 lines changed or added | |
|
| HTTPMessage.h | | HTTPMessage.h | |
| // | | // | |
| // HTTPMessage.h | | // HTTPMessage.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Net/include/Poco/Net/HTTPMessage.h#3 $ | | // $Id: //poco/1.4/Net/include/Poco/Net/HTTPMessage.h#4 $ | |
| // | | // | |
| // Library: Net | | // Library: Net | |
| // Package: HTTP | | // Package: HTTP | |
| // Module: HTTPMessage | | // Module: HTTPMessage | |
| // | | // | |
| // Definition of the HTTPMessage class. | | // Definition of the HTTPMessage class. | |
| // | | // | |
| // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 93 | | skipping to change at line 93 | |
| | | | |
| Poco::Int64 getContentLength64() const; | | Poco::Int64 getContentLength64() const; | |
| /// Returns the content length for this message, | | /// Returns the content length for this message, | |
| /// which may be UNKNOWN_CONTENT_LENGTH if | | /// which may be UNKNOWN_CONTENT_LENGTH if | |
| /// no Content-Length header is present. | | /// no Content-Length header is present. | |
| /// | | /// | |
| /// In contrast to getContentLength(), this method | | /// In contrast to getContentLength(), this method | |
| /// always returns a 64-bit integer for content length. | | /// always returns a 64-bit integer for content length. | |
| #endif // defined(POCO_HAVE_INT64) | | #endif // defined(POCO_HAVE_INT64) | |
| | | | |
|
| | | bool hasContentLength() const; | |
| | | /// Returns true iff a Content-Length header is present. | |
| | | | |
| void setTransferEncoding(const std::string& transferEncoding); | | void setTransferEncoding(const std::string& transferEncoding); | |
| /// Sets the transfer encoding for this message. | | /// Sets the transfer encoding for this message. | |
| /// | | /// | |
| /// The value should be either IDENTITY_TRANSFER_CODING | | /// The value should be either IDENTITY_TRANSFER_CODING | |
| /// or CHUNKED_TRANSFER_CODING. | | /// or CHUNKED_TRANSFER_CODING. | |
| | | | |
| const std::string& getTransferEncoding() const; | | const std::string& getTransferEncoding() const; | |
| /// Returns the transfer encoding used for this | | /// Returns the transfer encoding used for this | |
| /// message. | | /// message. | |
| /// | | /// | |
| | | | |
| skipping to change at line 188 | | skipping to change at line 191 | |
| }; | | }; | |
| | | | |
| // | | // | |
| // inlines | | // inlines | |
| // | | // | |
| inline const std::string& HTTPMessage::getVersion() const | | inline const std::string& HTTPMessage::getVersion() const | |
| { | | { | |
| return _version; | | return _version; | |
| } | | } | |
| | | | |
|
| | | inline bool HTTPMessage::hasContentLength() const | |
| | | { | |
| | | return has(CONTENT_LENGTH); | |
| | | } | |
| | | | |
| } } // namespace Poco::Net | | } } // namespace Poco::Net | |
| | | | |
| #endif // Net_HTTPMessage_INCLUDED | | #endif // Net_HTTPMessage_INCLUDED | |
| | | | |
End of changes. 3 change blocks. |
| 1 lines changed or deleted | | 9 lines changed or added | |
|
| HTTPRequest.h | | HTTPRequest.h | |
| // | | // | |
| // HTTPRequest.h | | // HTTPRequest.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Net/include/Poco/Net/HTTPRequest.h#1 $ | | // $Id: //poco/1.4/Net/include/Poco/Net/HTTPRequest.h#2 $ | |
| // | | // | |
| // Library: Net | | // Library: Net | |
| // Package: HTTP | | // Package: HTTP | |
| // Module: HTTPRequest | | // Module: HTTPRequest | |
| // | | // | |
| // Definition of the HTTPRequest class. | | // Definition of the HTTPRequest class. | |
| // | | // | |
| // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 124 | | skipping to change at line 124 | |
| /// Returns the authentication scheme and additional authent
ication | | /// Returns the authentication scheme and additional authent
ication | |
| /// information contained in this request. | | /// information contained in this request. | |
| /// | | /// | |
| /// Throws a NotAuthenticatedException if no authentication
information | | /// Throws a NotAuthenticatedException if no authentication
information | |
| /// is contained in the request. | | /// is contained in the request. | |
| | | | |
| void setCredentials(const std::string& scheme, const std::string& au
thInfo); | | void setCredentials(const std::string& scheme, const std::string& au
thInfo); | |
| /// Sets the authentication scheme and information for | | /// Sets the authentication scheme and information for | |
| /// this request. | | /// this request. | |
| | | | |
|
| | | bool hasProxyCredentials() const; | |
| | | /// Returns true iff the request contains proxy authenticati | |
| | | on | |
| | | /// information in the form of an Proxy-Authorization header | |
| | | . | |
| | | | |
| | | void getProxyCredentials(std::string& scheme, std::string& authInfo) | |
| | | const; | |
| | | /// Returns the proxy authentication scheme and additional p | |
| | | roxy authentication | |
| | | /// information contained in this request. | |
| | | /// | |
| | | /// Throws a NotAuthenticatedException if no proxy authentic | |
| | | ation information | |
| | | /// is contained in the request. | |
| | | | |
| | | void setProxyCredentials(const std::string& scheme, const std::strin | |
| | | g& authInfo); | |
| | | /// Sets the proxy authentication scheme and information for | |
| | | /// this request. | |
| | | | |
| void write(std::ostream& ostr) const; | | void write(std::ostream& ostr) const; | |
| /// Writes the HTTP request to the given | | /// Writes the HTTP request to the given | |
| /// output stream. | | /// output stream. | |
| | | | |
| void read(std::istream& istr); | | void read(std::istream& istr); | |
| /// Reads the HTTP request from the | | /// Reads the HTTP request from the | |
| /// given input stream. | | /// given input stream. | |
| | | | |
| static const std::string HTTP_GET; | | static const std::string HTTP_GET; | |
| static const std::string HTTP_HEAD; | | static const std::string HTTP_HEAD; | |
| static const std::string HTTP_PUT; | | static const std::string HTTP_PUT; | |
| static const std::string HTTP_POST; | | static const std::string HTTP_POST; | |
| static const std::string HTTP_OPTIONS; | | static const std::string HTTP_OPTIONS; | |
| static const std::string HTTP_DELETE; | | static const std::string HTTP_DELETE; | |
| static const std::string HTTP_TRACE; | | static const std::string HTTP_TRACE; | |
| static const std::string HTTP_CONNECT; | | static const std::string HTTP_CONNECT; | |
| | | | |
| static const std::string HOST; | | static const std::string HOST; | |
| static const std::string COOKIE; | | static const std::string COOKIE; | |
| static const std::string AUTHORIZATION; | | static const std::string AUTHORIZATION; | |
|
| | | static const std::string PROXY_AUTHORIZATION; | |
| | | | |
| | | protected: | |
| | | void getCredentials(const std::string& header, std::string& scheme, | |
| | | std::string& authInfo) const; | |
| | | /// Returns the authentication scheme and additional authent | |
| | | ication | |
| | | /// information contained in the given header of request. | |
| | | /// | |
| | | /// Throws a NotAuthenticatedException if no authentication | |
| | | information | |
| | | /// is contained in the request. | |
| | | | |
| | | void setCredentials(const std::string& header, const std::string& sc | |
| | | heme, const std::string& authInfo); | |
| | | /// Writes the authentication scheme and information for | |
| | | /// this request to the given header. | |
| | | | |
| private: | | private: | |
| enum Limits | | enum Limits | |
| { | | { | |
| MAX_METHOD_LENGTH = 32, | | MAX_METHOD_LENGTH = 32, | |
| MAX_URI_LENGTH = 4096, | | MAX_URI_LENGTH = 4096, | |
| MAX_VERSION_LENGTH = 8 | | MAX_VERSION_LENGTH = 8 | |
| }; | | }; | |
| | | | |
| std::string _method; | | std::string _method; | |
| | | | |
End of changes. 3 change blocks. |
| 1 lines changed or deleted | | 39 lines changed or added | |
|
| HTTPRequestHandlerFactory.h | | HTTPRequestHandlerFactory.h | |
| // | | // | |
| // HTTPRequestHandlerFactory.h | | // HTTPRequestHandlerFactory.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Net/include/Poco/Net/HTTPRequestHandlerFactory.h#1 $ | | // $Id: //poco/1.4/Net/include/Poco/Net/HTTPRequestHandlerFactory.h#2 $ | |
| // | | // | |
| // Library: Net | | // Library: Net | |
| // Package: HTTPServer | | // Package: HTTPServer | |
| // Module: HTTPRequestHandlerFactory | | // Module: HTTPRequestHandlerFactory | |
| // | | // | |
| // Definition of the HTTPRequestHandlerFactory class. | | // Definition of the HTTPRequestHandlerFactory class. | |
| // | | // | |
| // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 43 | | skipping to change at line 43 | |
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWI
SE, | | // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWI
SE, | |
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OT
HER | | // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OT
HER | |
| // DEALINGS IN THE SOFTWARE. | | // DEALINGS IN THE SOFTWARE. | |
| // | | // | |
| | | | |
| #ifndef Net_HTTPRequestHandlerFactory_INCLUDED | | #ifndef Net_HTTPRequestHandlerFactory_INCLUDED | |
| #define Net_HTTPRequestHandlerFactory_INCLUDED | | #define Net_HTTPRequestHandlerFactory_INCLUDED | |
| | | | |
| #include "Poco/Net/Net.h" | | #include "Poco/Net/Net.h" | |
| #include "Poco/SharedPtr.h" | | #include "Poco/SharedPtr.h" | |
|
| | | #include "Poco/BasicEvent.h" | |
| | | | |
| namespace Poco { | | namespace Poco { | |
| namespace Net { | | namespace Net { | |
| | | | |
| class HTTPServerRequest; | | class HTTPServerRequest; | |
| class HTTPServerResponse; | | class HTTPServerResponse; | |
| class HTTPRequestHandler; | | class HTTPRequestHandler; | |
| | | | |
| class Net_API HTTPRequestHandlerFactory | | class Net_API HTTPRequestHandlerFactory | |
| /// A factory for HTTPRequestHandler objects. | | /// A factory for HTTPRequestHandler objects. | |
| | | | |
| skipping to change at line 70 | | skipping to change at line 71 | |
| /// Creates the HTTPRequestHandlerFactory. | | /// Creates the HTTPRequestHandlerFactory. | |
| | | | |
| virtual ~HTTPRequestHandlerFactory(); | | virtual ~HTTPRequestHandlerFactory(); | |
| /// Destroys the HTTPRequestHandlerFactory. | | /// Destroys the HTTPRequestHandlerFactory. | |
| | | | |
| virtual HTTPRequestHandler* createRequestHandler(const HTTPServerReq
uest& request) = 0; | | virtual HTTPRequestHandler* createRequestHandler(const HTTPServerReq
uest& request) = 0; | |
| /// Must be overridden by sublasses. | | /// Must be overridden by sublasses. | |
| /// | | /// | |
| /// Creates a new request handler for the given HTTP request
. | | /// Creates a new request handler for the given HTTP request
. | |
| | | | |
|
| | | protected: | |
| | | Poco::BasicEvent<const bool> serverStopped; | |
| | | | |
| private: | | private: | |
| HTTPRequestHandlerFactory(const HTTPRequestHandlerFactory&); | | HTTPRequestHandlerFactory(const HTTPRequestHandlerFactory&); | |
| HTTPRequestHandlerFactory& operator = (const HTTPRequestHandlerFacto
ry&); | | HTTPRequestHandlerFactory& operator = (const HTTPRequestHandlerFacto
ry&); | |
|
| | | | |
| | | friend class HTTPServer; | |
| | | friend class HTTPServerConnection; | |
| }; | | }; | |
| | | | |
| } } // namespace Poco::Net | | } } // namespace Poco::Net | |
| | | | |
| #endif // Net_HTTPRequestHandlerFactory_INCLUDED | | #endif // Net_HTTPRequestHandlerFactory_INCLUDED | |
| | | | |
End of changes. 4 change blocks. |
| 1 lines changed or deleted | | 8 lines changed or added | |
|
| HTTPServer.h | | HTTPServer.h | |
| // | | // | |
| // HTTPServer.h | | // HTTPServer.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Net/include/Poco/Net/HTTPServer.h#1 $ | | // $Id: //poco/1.4/Net/include/Poco/Net/HTTPServer.h#3 $ | |
| // | | // | |
| // Library: Net | | // Library: Net | |
| // Package: HTTPServer | | // Package: HTTPServer | |
| // Module: HTTPServer | | // Module: HTTPServer | |
| // | | // | |
| // Definition of the HTTPServer class. | | // Definition of the HTTPServer class. | |
| // | | // | |
| // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 84 | | skipping to change at line 84 | |
| /// | | /// | |
| /// New threads are taken from the default thread pool. | | /// New threads are taken from the default thread pool. | |
| | | | |
| HTTPServer(HTTPRequestHandlerFactory::Ptr pFactory, Poco::ThreadPool
& threadPool, const ServerSocket& socket, HTTPServerParams::Ptr pParams); | | HTTPServer(HTTPRequestHandlerFactory::Ptr pFactory, Poco::ThreadPool
& threadPool, const ServerSocket& socket, HTTPServerParams::Ptr pParams); | |
| /// Creates the HTTPServer, using the given ServerSocket. | | /// Creates the HTTPServer, using the given ServerSocket. | |
| /// | | /// | |
| /// New threads are taken from the given thread pool. | | /// New threads are taken from the given thread pool. | |
| | | | |
| ~HTTPServer(); | | ~HTTPServer(); | |
| /// Destroys the HTTPServer and its HTTPRequestHandlerFactor
y. | | /// Destroys the HTTPServer and its HTTPRequestHandlerFactor
y. | |
|
| | | | |
| | | void stopAll(bool abortCurrent = false); | |
| | | /// Stops the server. In contrast to TCPServer::stop(), whic | |
| | | h also | |
| | | /// stops the server, but allows all client connections to f | |
| | | inish at | |
| | | /// their pace, this allows finer control over client connec | |
| | | tions. | |
| | | /// | |
| | | /// If abortCurrent is false, all current requests are allow | |
| | | ed to | |
| | | /// complete. If abortCurrent is false, the underlying socke | |
| | | ts of | |
| | | /// all client connections are shut down, causing all reques | |
| | | ts | |
| | | /// to abort. | |
| | | | |
| | | private: | |
| | | HTTPRequestHandlerFactory::Ptr _pFactory; | |
| }; | | }; | |
| | | | |
| } } // namespace Poco::Net | | } } // namespace Poco::Net | |
| | | | |
| #endif // Net_HTTPServer_INCLUDED | | #endif // Net_HTTPServer_INCLUDED | |
| | | | |
End of changes. 2 change blocks. |
| 1 lines changed or deleted | | 20 lines changed or added | |
|
| HTTPServerConnection.h | | HTTPServerConnection.h | |
| // | | // | |
| // HTTPServerConnection.h | | // HTTPServerConnection.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Net/include/Poco/Net/HTTPServerConnection.h#1 $ | | // $Id: //poco/1.4/Net/include/Poco/Net/HTTPServerConnection.h#2 $ | |
| // | | // | |
| // Library: Net | | // Library: Net | |
| // Package: HTTPServer | | // Package: HTTPServer | |
| // Module: HTTPServerConnection | | // Module: HTTPServerConnection | |
| // | | // | |
| // Definition of the HTTPServerConnection class. | | // Definition of the HTTPServerConnection class. | |
| // | | // | |
| // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 46 | | skipping to change at line 46 | |
| // | | // | |
| | | | |
| #ifndef Net_HTTPServerConnection_INCLUDED | | #ifndef Net_HTTPServerConnection_INCLUDED | |
| #define Net_HTTPServerConnection_INCLUDED | | #define Net_HTTPServerConnection_INCLUDED | |
| | | | |
| #include "Poco/Net/Net.h" | | #include "Poco/Net/Net.h" | |
| #include "Poco/Net/TCPServerConnection.h" | | #include "Poco/Net/TCPServerConnection.h" | |
| #include "Poco/Net/HTTPResponse.h" | | #include "Poco/Net/HTTPResponse.h" | |
| #include "Poco/Net/HTTPRequestHandlerFactory.h" | | #include "Poco/Net/HTTPRequestHandlerFactory.h" | |
| #include "Poco/Net/HTTPServerParams.h" | | #include "Poco/Net/HTTPServerParams.h" | |
|
| | | #include "Poco/Mutex.h" | |
| | | | |
| namespace Poco { | | namespace Poco { | |
| namespace Net { | | namespace Net { | |
| | | | |
| class HTTPServerSession; | | class HTTPServerSession; | |
| | | | |
| class Net_API HTTPServerConnection: public TCPServerConnection | | class Net_API HTTPServerConnection: public TCPServerConnection | |
| /// This subclass of TCPServerConnection handles HTTP | | /// This subclass of TCPServerConnection handles HTTP | |
| /// connections. | | /// connections. | |
| { | | { | |
| | | | |
| skipping to change at line 68 | | skipping to change at line 69 | |
| /// Creates the HTTPServerConnection. | | /// Creates the HTTPServerConnection. | |
| | | | |
| virtual ~HTTPServerConnection(); | | virtual ~HTTPServerConnection(); | |
| /// Destroys the HTTPServerConnection. | | /// Destroys the HTTPServerConnection. | |
| | | | |
| void run(); | | void run(); | |
| /// Handles all HTTP requests coming in. | | /// Handles all HTTP requests coming in. | |
| | | | |
| protected: | | protected: | |
| void sendErrorResponse(HTTPServerSession& session, HTTPResponse::HTT
PStatus status); | | void sendErrorResponse(HTTPServerSession& session, HTTPResponse::HTT
PStatus status); | |
|
| | | void onServerStopped(const bool& abortCurrent); | |
| | | | |
| private: | | private: | |
| HTTPServerParams::Ptr _pParams; | | HTTPServerParams::Ptr _pParams; | |
| HTTPRequestHandlerFactory::Ptr _pFactory; | | HTTPRequestHandlerFactory::Ptr _pFactory; | |
|
| | | bool _stopped; | |
| | | Poco::FastMutex _mutex; | |
| }; | | }; | |
| | | | |
| } } // namespace Poco::Net | | } } // namespace Poco::Net | |
| | | | |
| #endif // Net_HTTPServerConnection_INCLUDED | | #endif // Net_HTTPServerConnection_INCLUDED | |
| | | | |
End of changes. 4 change blocks. |
| 1 lines changed or deleted | | 5 lines changed or added | |
|
| HTTPServerRequestImpl.h | | HTTPServerRequestImpl.h | |
| // | | // | |
| // HTTPServerRequestImpl.h | | // HTTPServerRequestImpl.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Net/include/Poco/Net/HTTPServerRequestImpl.h#1 $ | | // $Id: //poco/1.4/Net/include/Poco/Net/HTTPServerRequestImpl.h#2 $ | |
| // | | // | |
| // Library: Net | | // Library: Net | |
| // Package: HTTPServer | | // Package: HTTPServer | |
| // Module: HTTPServerRequestImpl | | // Module: HTTPServerRequestImpl | |
| // | | // | |
| // Definition of the HTTPServerRequestImpl class. | | // Definition of the HTTPServerRequestImpl class. | |
| // | | // | |
| // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 43 | | skipping to change at line 43 | |
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWI
SE, | | // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWI
SE, | |
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OT
HER | | // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OT
HER | |
| // DEALINGS IN THE SOFTWARE. | | // DEALINGS IN THE SOFTWARE. | |
| // | | // | |
| | | | |
| #ifndef Net_HTTPServerRequestImpl_INCLUDED | | #ifndef Net_HTTPServerRequestImpl_INCLUDED | |
| #define Net_HTTPServerRequestImpl_INCLUDED | | #define Net_HTTPServerRequestImpl_INCLUDED | |
| | | | |
| #include "Poco/Net/Net.h" | | #include "Poco/Net/Net.h" | |
| #include "Poco/Net/HTTPServerRequest.h" | | #include "Poco/Net/HTTPServerRequest.h" | |
|
| | | #include "Poco/Net/HTTPServerResponseImpl.h" | |
| #include "Poco/Net/SocketAddress.h" | | #include "Poco/Net/SocketAddress.h" | |
| #include "Poco/AutoPtr.h" | | #include "Poco/AutoPtr.h" | |
| #include <istream> | | #include <istream> | |
| | | | |
| namespace Poco { | | namespace Poco { | |
| namespace Net { | | namespace Net { | |
| | | | |
| class HTTPServerSession; | | class HTTPServerSession; | |
| class HTTPServerParams; | | class HTTPServerParams; | |
| class StreamSocket; | | class StreamSocket; | |
| | | | |
| class Net_API HTTPServerRequestImpl: public HTTPServerRequest | | class Net_API HTTPServerRequestImpl: public HTTPServerRequest | |
| /// This subclass of HTTPServerRequest is used for | | /// This subclass of HTTPServerRequest is used for | |
| /// representing server-side HTTP requests. | | /// representing server-side HTTP requests. | |
| /// | | /// | |
| /// A HTTPServerRequest is passed to the | | /// A HTTPServerRequest is passed to the | |
| /// handleRequest() method of HTTPRequestHandler. | | /// handleRequest() method of HTTPRequestHandler. | |
| { | | { | |
| public: | | public: | |
|
| HTTPServerRequestImpl(HTTPServerResponse& response, HTTPServerSessio
n& session, HTTPServerParams* pParams); | | HTTPServerRequestImpl(HTTPServerResponseImpl& response, HTTPServerSe
ssion& session, HTTPServerParams* pParams); | |
| /// Creates the HTTPServerRequestImpl, using the | | /// Creates the HTTPServerRequestImpl, using the | |
| /// given HTTPServerSession. | | /// given HTTPServerSession. | |
| | | | |
| ~HTTPServerRequestImpl(); | | ~HTTPServerRequestImpl(); | |
| /// Destroys the HTTPServerRequestImpl. | | /// Destroys the HTTPServerRequestImpl. | |
| | | | |
| std::istream& stream(); | | std::istream& stream(); | |
| /// Returns the input stream for reading | | /// Returns the input stream for reading | |
| /// the request body. | | /// the request body. | |
| /// | | /// | |
| | | | |
| skipping to change at line 103 | | skipping to change at line 104 | |
| /// Returns a reference to the underlying socket. | | /// Returns a reference to the underlying socket. | |
| | | | |
| StreamSocket detachSocket(); | | StreamSocket detachSocket(); | |
| /// Returns the underlying socket after detaching | | /// Returns the underlying socket after detaching | |
| /// it from the server session. | | /// it from the server session. | |
| | | | |
| protected: | | protected: | |
| static const std::string EXPECT; | | static const std::string EXPECT; | |
| | | | |
| private: | | private: | |
|
| HTTPServerResponse& _response; | | HTTPServerResponseImpl& _response; | |
| HTTPServerSession& _session; | | HTTPServerSession& _session; | |
| std::istream* _pStream; | | std::istream* _pStream; | |
| Poco::AutoPtr<HTTPServerParams> _pParams; | | Poco::AutoPtr<HTTPServerParams> _pParams; | |
| SocketAddress _clientAddress; | | SocketAddress _clientAddress; | |
| SocketAddress _serverAddress; | | SocketAddress _serverAddress; | |
| }; | | }; | |
| | | | |
| // | | // | |
| // inlines | | // inlines | |
| // | | // | |
| | | | |
End of changes. 4 change blocks. |
| 3 lines changed or deleted | | 4 lines changed or added | |
|
| HTTPServerResponseImpl.h | | HTTPServerResponseImpl.h | |
| // | | // | |
| // HTTPServerResponseImpl.h | | // HTTPServerResponseImpl.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Net/include/Poco/Net/HTTPServerResponseImpl.h#1 $ | | // $Id: //poco/1.4/Net/include/Poco/Net/HTTPServerResponseImpl.h#2 $ | |
| // | | // | |
| // Library: Net | | // Library: Net | |
| // Package: HTTPServer | | // Package: HTTPServer | |
| // Module: HTTPServerResponseImpl | | // Module: HTTPServerResponseImpl | |
| // | | // | |
| // Definition of the HTTPServerResponseImpl class. | | // Definition of the HTTPServerResponseImpl class. | |
| // | | // | |
| // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 48 | | skipping to change at line 48 | |
| #ifndef Net_HTTPServerResponseImpl_INCLUDED | | #ifndef Net_HTTPServerResponseImpl_INCLUDED | |
| #define Net_HTTPServerResponseImpl_INCLUDED | | #define Net_HTTPServerResponseImpl_INCLUDED | |
| | | | |
| #include "Poco/Net/Net.h" | | #include "Poco/Net/Net.h" | |
| #include "Poco/Net/HTTPServerResponse.h" | | #include "Poco/Net/HTTPServerResponse.h" | |
| | | | |
| namespace Poco { | | namespace Poco { | |
| namespace Net { | | namespace Net { | |
| | | | |
| class HTTPServerSession; | | class HTTPServerSession; | |
|
| class HTTPCookie; | | class HTTPServerRequestImpl; | |
| | | | |
| class Net_API HTTPServerResponseImpl: public HTTPServerResponse | | class Net_API HTTPServerResponseImpl: public HTTPServerResponse | |
| /// This subclass of HTTPServerResponse is used for | | /// This subclass of HTTPServerResponse is used for | |
| /// representing server-side HTTP responses. | | /// representing server-side HTTP responses. | |
| /// | | /// | |
| /// A HTTPServerResponse is passed to the | | /// A HTTPServerResponse is passed to the | |
| /// handleRequest() method of HTTPRequestHandler. | | /// handleRequest() method of HTTPRequestHandler. | |
| /// | | /// | |
| /// handleRequest() must set a status code | | /// handleRequest() must set a status code | |
| /// and optional reason phrase, set headers | | /// and optional reason phrase, set headers | |
| | | | |
| skipping to change at line 126 | | skipping to change at line 126 | |
| /// Must not be called after send() has been called. | | /// Must not be called after send() has been called. | |
| | | | |
| void requireAuthentication(const std::string& realm); | | void requireAuthentication(const std::string& realm); | |
| /// Sets the status code to 401 (Unauthorized) | | /// Sets the status code to 401 (Unauthorized) | |
| /// and sets the "WWW-Authenticate" header field | | /// and sets the "WWW-Authenticate" header field | |
| /// according to the given realm. | | /// according to the given realm. | |
| | | | |
| bool sent() const; | | bool sent() const; | |
| /// Returns true if the response (header) has been sent. | | /// Returns true if the response (header) has been sent. | |
| | | | |
|
| | | protected: | |
| | | void attachRequest(HTTPServerRequestImpl* pRequest); | |
| | | | |
| private: | | private: | |
| HTTPServerSession& _session; | | HTTPServerSession& _session; | |
|
| | | HTTPServerRequestImpl* _pRequest; | |
| std::ostream* _pStream; | | std::ostream* _pStream; | |
|
| | | | |
| | | friend class HTTPServerRequestImpl; | |
| }; | | }; | |
| | | | |
| // | | // | |
| // inlines | | // inlines | |
| // | | // | |
| inline bool HTTPServerResponseImpl::sent() const | | inline bool HTTPServerResponseImpl::sent() const | |
| { | | { | |
| return _pStream != 0; | | return _pStream != 0; | |
| } | | } | |
| | | | |
|
| | | inline void HTTPServerResponseImpl::attachRequest(HTTPServerRequestImpl* pR | |
| | | equest) | |
| | | { | |
| | | _pRequest = pRequest; | |
| | | } | |
| | | | |
| } } // namespace Poco::Net | | } } // namespace Poco::Net | |
| | | | |
| #endif // Net_HTTPServerResponseImpl_INCLUDED | | #endif // Net_HTTPServerResponseImpl_INCLUDED | |
| | | | |
End of changes. 6 change blocks. |
| 2 lines changed or deleted | | 14 lines changed or added | |
|
| LogFile.h | | LogFile.h | |
| // | | // | |
| // LogFile.h | | // LogFile.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Foundation/include/Poco/LogFile.h#1 $ | | // $Id: //poco/1.4/Foundation/include/Poco/LogFile.h#2 $ | |
| // | | // | |
| // Library: Foundation | | // Library: Foundation | |
| // Package: Logging | | // Package: Logging | |
| // Module: LogFile | | // Module: LogFile | |
| // | | // | |
| // Definition of the LogFile class. | | // Definition of the LogFile class. | |
| // | | // | |
| // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 66 | | skipping to change at line 66 | |
| /// This class is used by FileChannel to work | | /// This class is used by FileChannel to work | |
| /// with a log file. | | /// with a log file. | |
| { | | { | |
| public: | | public: | |
| LogFile(const std::string& path); | | LogFile(const std::string& path); | |
| /// Creates the LogFile. | | /// Creates the LogFile. | |
| | | | |
| ~LogFile(); | | ~LogFile(); | |
| /// Destroys the LogFile. | | /// Destroys the LogFile. | |
| | | | |
|
| void write(const std::string& text); | | void write(const std::string& text, bool flush = true); | |
| /// Writes the given text to the log file. | | /// Writes the given text to the log file. | |
|
| | | /// If flush is true, the text will be immediately | |
| | | /// flushed to the file. | |
| | | | |
| UInt64 size() const; | | UInt64 size() const; | |
| /// Returns the current size in bytes of the log file. | | /// Returns the current size in bytes of the log file. | |
| | | | |
| Timestamp creationDate() const; | | Timestamp creationDate() const; | |
| /// Returns the date and time the log file was created. | | /// Returns the date and time the log file was created. | |
| | | | |
| const std::string& path() const; | | const std::string& path() const; | |
| /// Returns the path given in the constructor. | | /// Returns the path given in the constructor. | |
| }; | | }; | |
| | | | |
| // | | // | |
| // inlines | | // inlines | |
| // | | // | |
|
| inline void LogFile::write(const std::string& text) | | inline void LogFile::write(const std::string& text, bool flush) | |
| { | | { | |
|
| writeImpl(text); | | writeImpl(text, flush); | |
| } | | } | |
| | | | |
| inline UInt64 LogFile::size() const | | inline UInt64 LogFile::size() const | |
| { | | { | |
| return sizeImpl(); | | return sizeImpl(); | |
| } | | } | |
| | | | |
| inline Timestamp LogFile::creationDate() const | | inline Timestamp LogFile::creationDate() const | |
| { | | { | |
| return creationDateImpl(); | | return creationDateImpl(); | |
| | | | |
End of changes. 5 change blocks. |
| 4 lines changed or deleted | | 6 lines changed or added | |
|
| MessageHeader.h | | MessageHeader.h | |
| // | | // | |
| // MessageHeader.h | | // MessageHeader.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Net/include/Poco/Net/MessageHeader.h#3 $ | | // $Id: //poco/1.4/Net/include/Poco/Net/MessageHeader.h#5 $ | |
| // | | // | |
| // Library: Net | | // Library: Net | |
| // Package: Messages | | // Package: Messages | |
| // Module: MessageHeader | | // Module: MessageHeader | |
| // | | // | |
| // Definition of the MessageHeader class. | | // Definition of the MessageHeader class. | |
| // | | // | |
| // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 122 | | skipping to change at line 122 | |
| /// See setFieldLimit() for more information. | | /// See setFieldLimit() for more information. | |
| | | | |
| void setFieldLimit(int limit); | | void setFieldLimit(int limit); | |
| /// Sets the maximum number of header fields | | /// Sets the maximum number of header fields | |
| /// allowed. This limit is used to defend certain | | /// allowed. This limit is used to defend certain | |
| /// kinds of denial-of-service attacks. | | /// kinds of denial-of-service attacks. | |
| /// Specify 0 for unlimited (not recommended). | | /// Specify 0 for unlimited (not recommended). | |
| /// | | /// | |
| /// The default limit is 100. | | /// The default limit is 100. | |
| | | | |
|
| | | bool hasToken(const std::string& fieldName, const std::string& token | |
| | | ) const; | |
| | | /// Returns true iff the field with the given fieldName cont | |
| | | ains | |
| | | /// the given token. Tokens in a header field are expected t | |
| | | o be | |
| | | /// comma-separated and are case insensitive. | |
| | | | |
| static void splitElements(const std::string& s, std::vector<std::str
ing>& elements, bool ignoreEmpty = true); | | static void splitElements(const std::string& s, std::vector<std::str
ing>& elements, bool ignoreEmpty = true); | |
| /// Splits the given string into separate elements. Elements
are expected | | /// Splits the given string into separate elements. Elements
are expected | |
| /// to be separated by commas. | | /// to be separated by commas. | |
| /// | | /// | |
| /// For example, the string | | /// For example, the string | |
| /// text/plain; q=0.5, text/html, text/x-dvi; q=0.8 | | /// text/plain; q=0.5, text/html, text/x-dvi; q=0.8 | |
| /// is split into the elements | | /// is split into the elements | |
| /// text/plain; q=0.5 | | /// text/plain; q=0.5 | |
| /// text/html | | /// text/html | |
| /// text/x-dvi; q=0.8 | | /// text/x-dvi; q=0.8 | |
| | | | |
| skipping to change at line 166 | | skipping to change at line 171 | |
| static void quote(const std::string& value, std::string& result, boo
l allowSpace = false); | | static void quote(const std::string& value, std::string& result, boo
l allowSpace = false); | |
| /// Checks if the value must be quoted. If so, the value is | | /// Checks if the value must be quoted. If so, the value is | |
| /// appended to result, enclosed in double-quotes. | | /// appended to result, enclosed in double-quotes. | |
| /// Otherwise, the value is appended to result as-is. | | /// Otherwise, the value is appended to result as-is. | |
| | | | |
| private: | | private: | |
| enum Limits | | enum Limits | |
| /// Limits for basic sanity checks when reading a header | | /// Limits for basic sanity checks when reading a header | |
| { | | { | |
| MAX_NAME_LENGTH = 256, | | MAX_NAME_LENGTH = 256, | |
|
| MAX_VALUE_LENGTH = 4096, | | MAX_VALUE_LENGTH = 8192, | |
| DFL_FIELD_LIMIT = 100 | | DFL_FIELD_LIMIT = 100 | |
| }; | | }; | |
| | | | |
| int _fieldLimit; | | int _fieldLimit; | |
| }; | | }; | |
| | | | |
| } } // namespace Poco::Net | | } } // namespace Poco::Net | |
| | | | |
| #endif // Net_MessageHeader_INCLUDED | | #endif // Net_MessageHeader_INCLUDED | |
| | | | |
End of changes. 3 change blocks. |
| 2 lines changed or deleted | | 10 lines changed or added | |
|
| Platform_WIN32.h | | Platform_WIN32.h | |
| // | | // | |
| // Platform_WIN32.h | | // Platform_WIN32.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Foundation/include/Poco/Platform_WIN32.h#2 $ | | // $Id: //poco/1.4/Foundation/include/Poco/Platform_WIN32.h#3 $ | |
| // | | // | |
| // Library: Foundation | | // Library: Foundation | |
| // Package: Core | | // Package: Core | |
| // Module: Platform | | // Module: Platform | |
| // | | // | |
| // Platform and architecture identification macros | | // Platform and architecture identification macros | |
| // and platform-specific definitions for Windows. | | // and platform-specific definitions for Windows. | |
| // | | // | |
| // Copyright (c) 2004-2007, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2004-2007, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| | | | |
| skipping to change at line 77 | | skipping to change at line 77 | |
| | | | |
| // Turn off some annoying warnings | | // Turn off some annoying warnings | |
| #if defined(_MSC_VER) | | #if defined(_MSC_VER) | |
| #pragma warning(disable:4018) // signed/unsigned comparison | | #pragma warning(disable:4018) // signed/unsigned comparison | |
| #pragma warning(disable:4251) // ... needs to have dll-interface war
ning | | #pragma warning(disable:4251) // ... needs to have dll-interface war
ning | |
| #pragma warning(disable:4355) // 'this' : used in base member initia
lizer list | | #pragma warning(disable:4355) // 'this' : used in base member initia
lizer list | |
| #pragma warning(disable:4996) // VC++ 8.0 deprecation warnings | | #pragma warning(disable:4996) // VC++ 8.0 deprecation warnings | |
| #pragma warning(disable:4351) // new behavior: elements of array '..
.' will be default initialized | | #pragma warning(disable:4351) // new behavior: elements of array '..
.' will be default initialized | |
| #pragma warning(disable:4675) // resolved overload was found by argu
ment-dependent lookup | | #pragma warning(disable:4675) // resolved overload was found by argu
ment-dependent lookup | |
| #pragma warning(disable:4275) // non dll-interface class 'std::excep
tion' used as base for dll-interface class 'Poco::Exception' | | #pragma warning(disable:4275) // non dll-interface class 'std::excep
tion' used as base for dll-interface class 'Poco::Exception' | |
|
| | | #pragma warning(disable:4250) // VC++ 11.0: inheriting from std stre | |
| | | am classes produces C4250 warning; | |
| | | // see <http://connect.microsoft.com/Visu | |
| | | alStudio/feedback/details/733720/inheriting-from-std-fstream-produces-c4250 | |
| | | -warning> | |
| #endif | | #endif | |
| | | | |
| #if defined(__INTEL_COMPILER) | | #if defined(__INTEL_COMPILER) | |
| #pragma warning(disable:1738) // base class dllexport/dllimport spec
ification differs from that of the derived class | | #pragma warning(disable:1738) // base class dllexport/dllimport spec
ification differs from that of the derived class | |
| #pragma warning(disable:1478) // function ... was declared "deprecat
ed" | | #pragma warning(disable:1478) // function ... was declared "deprecat
ed" | |
| #pragma warning(disable:1744) // field of class type without a DLL i
nterface used in a class with a DLL interface | | #pragma warning(disable:1744) // field of class type without a DLL i
nterface used in a class with a DLL interface | |
| #endif | | #endif | |
| | | | |
| #endif // Foundation_Platform_WIN32_INCLUDED | | #endif // Foundation_Platform_WIN32_INCLUDED | |
| | | | |
End of changes. 2 change blocks. |
| 1 lines changed or deleted | | 6 lines changed or added | |
|
| Process.h | | Process.h | |
| // | | // | |
| // Process.h | | // Process.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Foundation/include/Poco/Process.h#3 $ | | // $Id: //poco/1.4/Foundation/include/Poco/Process.h#4 $ | |
| // | | // | |
| // Library: Foundation | | // Library: Foundation | |
| // Package: Processes | | // Package: Processes | |
| // Module: Process | | // Module: Process | |
| // | | // | |
| // Definition of the Process class. | | // Definition of the Process class. | |
| // | | // | |
| // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 106 | | skipping to change at line 106 | |
| | | | |
| friend class Process; | | friend class Process; | |
| }; | | }; | |
| | | | |
| class Foundation_API Process: public ProcessImpl | | class Foundation_API Process: public ProcessImpl | |
| /// This class provides methods for working with processes. | | /// This class provides methods for working with processes. | |
| { | | { | |
| public: | | public: | |
| typedef PIDImpl PID; | | typedef PIDImpl PID; | |
| typedef ArgsImpl Args; | | typedef ArgsImpl Args; | |
|
| | | typedef EnvImpl Env; | |
| | | | |
| static PID id(); | | static PID id(); | |
| /// Returns the process ID of the current process. | | /// Returns the process ID of the current process. | |
| | | | |
| static void times(long& userTime, long& kernelTime); | | static void times(long& userTime, long& kernelTime); | |
| /// Returns the number of seconds spent by the | | /// Returns the number of seconds spent by the | |
| /// current process in user and kernel mode. | | /// current process in user and kernel mode. | |
| | | | |
| static ProcessHandle launch(const std::string& command, const Args&
args); | | static ProcessHandle launch(const std::string& command, const Args&
args); | |
| /// Creates a new process for the given command and returns | | /// Creates a new process for the given command and returns | |
| /// a ProcessHandle of the new process. The given arguments
are | | /// a ProcessHandle of the new process. The given arguments
are | |
| /// passed to the command on the command line. | | /// passed to the command on the command line. | |
| | | | |
|
| static ProcessHandle launch(const std::string& command, const Args& | | static ProcessHandle launch( | |
| args, Pipe* inPipe, Pipe* outPipe, Pipe* errPipe); | | const std::string& command, | |
| | | const Args& args, | |
| | | const std::string& initialDirectory); | |
| /// Creates a new process for the given command and returns | | /// Creates a new process for the given command and returns | |
| /// a ProcessHandle of the new process. The given arguments
are | | /// a ProcessHandle of the new process. The given arguments
are | |
| /// passed to the command on the command line. | | /// passed to the command on the command line. | |
|
| | | /// The process starts executing in the specified initial di | |
| | | rectory. | |
| | | | |
| | | static ProcessHandle launch( | |
| | | const std::string& command, | |
| | | const Args& args, | |
| | | Pipe* inPipe, | |
| | | Pipe* outPipe, | |
| | | Pipe* errPipe); | |
| | | /// Creates a new process for the given command and returns | |
| | | /// a ProcessHandle of the new process. The given arguments | |
| | | are | |
| | | /// passed to the command on the command line. | |
| | | /// | |
| | | /// If inPipe, outPipe or errPipe is non-null, the correspon | |
| | | ding | |
| | | /// standard input, standard output or standard error stream | |
| | | /// of the launched process is redirected to the Pipe. | |
| | | /// PipeInputStream or PipeOutputStream can be used to | |
| | | /// send receive data from, or send data to the process. | |
| | | /// | |
| | | /// Note: the same Pipe can be used for both outPipe and err | |
| | | Pipe. | |
| | | /// | |
| | | /// After a Pipe has been passed as inPipe, only write opera | |
| | | tions | |
| | | /// are valid. After a Pipe has been passed as outPipe or er | |
| | | rPipe, | |
| | | /// only read operations are valid. | |
| | | /// | |
| | | /// It is forbidden to pass the same pipe as inPipe and outP | |
| | | ipe or errPipe. | |
| | | /// | |
| | | /// Usage example: | |
| | | /// Pipe outPipe; | |
| | | /// Process::Args args; | |
| | | /// ProcessHandle ph(launch("/bin/ps", args, 0, &outPipe | |
| | | , 0)); | |
| | | /// PipeInputStream istr(outPipe); | |
| | | /// ... // read output of ps from istr | |
| | | /// int rc = ph.wait(); | |
| | | | |
| | | static ProcessHandle launch( | |
| | | const std::string& command, | |
| | | const Args& args, | |
| | | const std::string& initialDirectory, | |
| | | Pipe* inPipe, | |
| | | Pipe* outPipe, | |
| | | Pipe* errPipe); | |
| | | /// Creates a new process for the given command and returns | |
| | | /// a ProcessHandle of the new process. The given arguments | |
| | | are | |
| | | /// passed to the command on the command line. | |
| | | /// The process starts executing in the specified initial di | |
| | | rectory. | |
| /// | | /// | |
| /// If inPipe, outPipe or errPipe is non-null, the correspon
ding | | /// If inPipe, outPipe or errPipe is non-null, the correspon
ding | |
| /// standard input, standard output or standard error stream | | /// standard input, standard output or standard error stream | |
| /// of the launched process is redirected to the Pipe. | | /// of the launched process is redirected to the Pipe. | |
| /// PipeInputStream or PipeOutputStream can be used to | | /// PipeInputStream or PipeOutputStream can be used to | |
| /// send receive data from, or send data to the process. | | /// send receive data from, or send data to the process. | |
| /// | | /// | |
| /// Note: the same Pipe can be used for both outPipe and err
Pipe. | | /// Note: the same Pipe can be used for both outPipe and err
Pipe. | |
| /// | | /// | |
| /// After a Pipe has been passed as inPipe, only write opera
tions | | /// After a Pipe has been passed as inPipe, only write opera
tions | |
| | | | |
| skipping to change at line 146 | | skipping to change at line 195 | |
| /// It is forbidden to pass the same pipe as inPipe and outP
ipe or errPipe. | | /// It is forbidden to pass the same pipe as inPipe and outP
ipe or errPipe. | |
| /// | | /// | |
| /// Usage example: | | /// Usage example: | |
| /// Pipe outPipe; | | /// Pipe outPipe; | |
| /// Process::Args args; | | /// Process::Args args; | |
| /// ProcessHandle ph(launch("/bin/ps", args, 0, &outPipe
, 0)); | | /// ProcessHandle ph(launch("/bin/ps", args, 0, &outPipe
, 0)); | |
| /// PipeInputStream istr(outPipe); | | /// PipeInputStream istr(outPipe); | |
| /// ... // read output of ps from istr | | /// ... // read output of ps from istr | |
| /// int rc = ph.wait(); | | /// int rc = ph.wait(); | |
| | | | |
|
| | | static ProcessHandle launch( | |
| | | const std::string& command, | |
| | | const Args& args, | |
| | | Pipe* inPipe, | |
| | | Pipe* outPipe, | |
| | | Pipe* errPipe, | |
| | | const Env& env); | |
| | | /// Creates a new process for the given command and returns | |
| | | /// a ProcessHandle of the new process. The given arguments | |
| | | are | |
| | | /// passed to the command on the command line. | |
| | | /// | |
| | | /// If inPipe, outPipe or errPipe is non-null, the correspon | |
| | | ding | |
| | | /// standard input, standard output or standard error stream | |
| | | /// of the launched process is redirected to the Pipe. | |
| | | /// | |
| | | /// The launched process is given the specified environment | |
| | | variables. | |
| | | | |
| | | static ProcessHandle launch( | |
| | | const std::string& command, | |
| | | const Args& args, | |
| | | const std::string& initialDirectory, | |
| | | Pipe* inPipe, | |
| | | Pipe* outPipe, | |
| | | Pipe* errPipe, | |
| | | const Env& env); | |
| | | /// Creates a new process for the given command and returns | |
| | | /// a ProcessHandle of the new process. The given arguments | |
| | | are | |
| | | /// passed to the command on the command line. | |
| | | /// The process starts executing in the specified initial di | |
| | | rectory. | |
| | | /// If inPipe, outPipe or errPipe is non-null, the correspon | |
| | | ding | |
| | | /// standard input, standard output or standard error stream | |
| | | /// of the launched process is redirected to the Pipe. | |
| | | /// The launched process is given the specified environment | |
| | | variables. | |
| | | | |
| static int wait(const ProcessHandle& handle); | | static int wait(const ProcessHandle& handle); | |
| /// Waits for the process specified by handle to terminate | | /// Waits for the process specified by handle to terminate | |
| /// and returns the exit code of the process. | | /// and returns the exit code of the process. | |
| | | | |
| static void kill(const ProcessHandle& handle); | | static void kill(const ProcessHandle& handle); | |
| /// Kills the process specified by handle. | | /// Kills the process specified by handle. | |
| /// | | /// | |
| /// This is preferable on Windows where process IDs | | /// This is preferable on Windows where process IDs | |
| /// may be reused. | | /// may be reused. | |
| | | | |
| | | | |
End of changes. 5 change blocks. |
| 3 lines changed or deleted | | 102 lines changed or added | |
|
| Process_UNIX.h | | Process_UNIX.h | |
| // | | // | |
| // Process_UNIX.h | | // Process_UNIX.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Foundation/include/Poco/Process_UNIX.h#2 $ | | // $Id: //poco/1.4/Foundation/include/Poco/Process_UNIX.h#3 $ | |
| // | | // | |
| // Library: Foundation | | // Library: Foundation | |
| // Package: Processes | | // Package: Processes | |
| // Module: Process | | // Module: Process | |
| // | | // | |
| // Definition of the ProcessImpl class for Unix. | | // Definition of the ProcessImpl class for Unix. | |
| // | | // | |
| // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 45 | | skipping to change at line 45 | |
| // DEALINGS IN THE SOFTWARE. | | // DEALINGS IN THE SOFTWARE. | |
| // | | // | |
| | | | |
| #ifndef Foundation_Process_UNIX_INCLUDED | | #ifndef Foundation_Process_UNIX_INCLUDED | |
| #define Foundation_Process_UNIX_INCLUDED | | #define Foundation_Process_UNIX_INCLUDED | |
| | | | |
| #include "Poco/Foundation.h" | | #include "Poco/Foundation.h" | |
| #include "Poco/RefCountedObject.h" | | #include "Poco/RefCountedObject.h" | |
| #include <unistd.h> | | #include <unistd.h> | |
| #include <vector> | | #include <vector> | |
|
| | | #include <map> | |
| | | | |
| namespace Poco { | | namespace Poco { | |
| | | | |
| class Pipe; | | class Pipe; | |
| | | | |
| class Foundation_API ProcessHandleImpl: public RefCountedObject | | class Foundation_API ProcessHandleImpl: public RefCountedObject | |
| { | | { | |
| public: | | public: | |
| ProcessHandleImpl(pid_t pid); | | ProcessHandleImpl(pid_t pid); | |
| ~ProcessHandleImpl(); | | ~ProcessHandleImpl(); | |
| | | | |
| skipping to change at line 68 | | skipping to change at line 69 | |
| | | | |
| private: | | private: | |
| pid_t _pid; | | pid_t _pid; | |
| }; | | }; | |
| | | | |
| class Foundation_API ProcessImpl | | class Foundation_API ProcessImpl | |
| { | | { | |
| public: | | public: | |
| typedef pid_t PIDImpl; | | typedef pid_t PIDImpl; | |
| typedef std::vector<std::string> ArgsImpl; | | typedef std::vector<std::string> ArgsImpl; | |
|
| | | typedef std::map<std::string, std::string> EnvImpl; | |
| | | | |
| static PIDImpl idImpl(); | | static PIDImpl idImpl(); | |
| static void timesImpl(long& userTime, long& kernelTime); | | static void timesImpl(long& userTime, long& kernelTime); | |
|
| static ProcessHandleImpl* launchImpl(const std::string& command, con | | static ProcessHandleImpl* launchImpl( | |
| st ArgsImpl& args, Pipe* inPipe, Pipe* outPipe, Pipe* errPipe); | | const std::string& command, | |
| | | const ArgsImpl& args, | |
| | | const std::string& initialDirectory, | |
| | | Pipe* inPipe, | |
| | | Pipe* outPipe, | |
| | | Pipe* errPipe, | |
| | | const EnvImpl& env); | |
| static void killImpl(const ProcessHandleImpl& handle); | | static void killImpl(const ProcessHandleImpl& handle); | |
| static void killImpl(PIDImpl pid); | | static void killImpl(PIDImpl pid); | |
| static void requestTerminationImpl(PIDImpl pid); | | static void requestTerminationImpl(PIDImpl pid); | |
|
| | | | |
| | | private: | |
| | | static ProcessHandleImpl* launchByForkExecImpl( | |
| | | const std::string& command, | |
| | | const ArgsImpl& args, | |
| | | const std::string& initialDirectory, | |
| | | Pipe* inPipe, | |
| | | Pipe* outPipe, | |
| | | Pipe* errPipe, | |
| | | const EnvImpl& env); | |
| }; | | }; | |
| | | | |
| } // namespace Poco | | } // namespace Poco | |
| | | | |
| #endif // Foundation_Process_UNIX_INCLUDED | | #endif // Foundation_Process_UNIX_INCLUDED | |
| | | | |
End of changes. 5 change blocks. |
| 3 lines changed or deleted | | 21 lines changed or added | |
|
| Process_VMS.h | | Process_VMS.h | |
| // | | // | |
| // Process_VMS.h | | // Process_VMS.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Foundation/include/Poco/Process_VMS.h#2 $ | | // $Id: //poco/1.4/Foundation/include/Poco/Process_VMS.h#3 $ | |
| // | | // | |
| // Library: Foundation | | // Library: Foundation | |
| // Package: Processes | | // Package: Processes | |
| // Module: Process | | // Module: Process | |
| // | | // | |
| // Definition of the ProcessImpl class for OpenVMS. | | // Definition of the ProcessImpl class for OpenVMS. | |
| // | | // | |
| // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 44 | | skipping to change at line 44 | |
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OT
HER | | // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OT
HER | |
| // DEALINGS IN THE SOFTWARE. | | // DEALINGS IN THE SOFTWARE. | |
| // | | // | |
| | | | |
| #ifndef Foundation_Process_VMS_INCLUDED | | #ifndef Foundation_Process_VMS_INCLUDED | |
| #define Foundation_Process_VMS_INCLUDED | | #define Foundation_Process_VMS_INCLUDED | |
| | | | |
| #include "Poco/Foundation.h" | | #include "Poco/Foundation.h" | |
| #include "Poco/RefCountedObject.h" | | #include "Poco/RefCountedObject.h" | |
| #include <vector> | | #include <vector> | |
|
| | | #include <map> | |
| #include <unistd.h> | | #include <unistd.h> | |
| | | | |
| namespace Poco { | | namespace Poco { | |
| | | | |
| class Pipe; | | class Pipe; | |
| | | | |
| class ProcessHandleImpl: public RefCountedObject | | class ProcessHandleImpl: public RefCountedObject | |
| { | | { | |
| public: | | public: | |
| ProcessHandleImpl(pid_t pid); | | ProcessHandleImpl(pid_t pid); | |
| | | | |
| skipping to change at line 68 | | skipping to change at line 69 | |
| | | | |
| private: | | private: | |
| pid_t _pid; | | pid_t _pid; | |
| }; | | }; | |
| | | | |
| class ProcessImpl | | class ProcessImpl | |
| { | | { | |
| public: | | public: | |
| typedef pid_t PIDImpl; | | typedef pid_t PIDImpl; | |
| typedef std::vector<std::string> ArgsImpl; | | typedef std::vector<std::string> ArgsImpl; | |
|
| | | typedef std::map<std::string, std::string> EnvImpl; | |
| | | | |
| static PIDImpl idImpl(); | | static PIDImpl idImpl(); | |
| static void timesImpl(long& userTime, long& kernelTime); | | static void timesImpl(long& userTime, long& kernelTime); | |
|
| static ProcessHandleImpl* launchImpl(const std::string& command, con | | static ProcessHandleImpl* launchImpl( | |
| st ArgsImpl& args, Pipe* inPipe, Pipe* outPipe, Pipe* errPipe); | | const std::string& command, | |
| | | const ArgsImpl& args, | |
| | | const std::string& initialDirectory, | |
| | | Pipe* inPipe, | |
| | | Pipe* outPipe, | |
| | | Pipe* errPipe, | |
| | | const EnvImpl& env); | |
| static int waitImpl(PIDImpl pid); | | static int waitImpl(PIDImpl pid); | |
| static void killImpl(const ProcessHandleImpl& handle); | | static void killImpl(const ProcessHandleImpl& handle); | |
| static void killImpl(PIDImpl pid); | | static void killImpl(PIDImpl pid); | |
| static void requestTerminationImpl(PIDImpl pid); | | static void requestTerminationImpl(PIDImpl pid); | |
| }; | | }; | |
| | | | |
| } // namespace Poco | | } // namespace Poco | |
| | | | |
| #endif // Foundation_Process_VMS_INCLUDED | | #endif // Foundation_Process_VMS_INCLUDED | |
| | | | |
End of changes. 4 change blocks. |
| 3 lines changed or deleted | | 11 lines changed or added | |
|
| Process_VX.h | | Process_VX.h | |
| // | | // | |
| // Process_VX.h | | // Process_VX.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Foundation/include/Poco/Process_VX.h#2 $ | | // $Id: //poco/1.4/Foundation/include/Poco/Process_VX.h#3 $ | |
| // | | // | |
| // Library: Foundation | | // Library: Foundation | |
| // Package: Processes | | // Package: Processes | |
| // Module: Process | | // Module: Process | |
| // | | // | |
| // Definition of the ProcessImpl class for VxWorks. | | // Definition of the ProcessImpl class for VxWorks. | |
| // | | // | |
| // Copyright (c) 2004-20011, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2004-20011, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 44 | | skipping to change at line 44 | |
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OT
HER | | // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OT
HER | |
| // DEALINGS IN THE SOFTWARE. | | // DEALINGS IN THE SOFTWARE. | |
| // | | // | |
| | | | |
| #ifndef Foundation_Process_VX_INCLUDED | | #ifndef Foundation_Process_VX_INCLUDED | |
| #define Foundation_Process_VX_INCLUDED | | #define Foundation_Process_VX_INCLUDED | |
| | | | |
| #include "Poco/Foundation.h" | | #include "Poco/Foundation.h" | |
| #include "Poco/RefCountedObject.h" | | #include "Poco/RefCountedObject.h" | |
| #include <vector> | | #include <vector> | |
|
| | | #include <map> | |
| | | | |
| #undef PID | | #undef PID | |
| | | | |
| namespace Poco { | | namespace Poco { | |
| | | | |
| class Pipe; | | class Pipe; | |
| | | | |
| class Foundation_API ProcessHandleImpl: public RefCountedObject | | class Foundation_API ProcessHandleImpl: public RefCountedObject | |
| { | | { | |
| public: | | public: | |
| | | | |
| skipping to change at line 69 | | skipping to change at line 70 | |
| | | | |
| private: | | private: | |
| int _pid; | | int _pid; | |
| }; | | }; | |
| | | | |
| class Foundation_API ProcessImpl | | class Foundation_API ProcessImpl | |
| { | | { | |
| public: | | public: | |
| typedef int PIDImpl; | | typedef int PIDImpl; | |
| typedef std::vector<std::string> ArgsImpl; | | typedef std::vector<std::string> ArgsImpl; | |
|
| | | typedef std::map<std::string, std::string> EnvImpl; | |
| | | | |
| static PIDImpl idImpl(); | | static PIDImpl idImpl(); | |
| static void timesImpl(long& userTime, long& kernelTime); | | static void timesImpl(long& userTime, long& kernelTime); | |
|
| static ProcessHandleImpl* launchImpl(const std::string& command, con | | static ProcessHandleImpl* launchImpl( | |
| st ArgsImpl& args, Pipe* inPipe, Pipe* outPipe, Pipe* errPipe); | | const std::string& command, | |
| | | const ArgsImpl& args, | |
| | | const std::string& initialDirectory, | |
| | | Pipe* inPipe, | |
| | | Pipe* outPipe, | |
| | | Pipe* errPipe, | |
| | | const EnvImpl& env); | |
| static void killImpl(const ProcessHandleImpl& handle); | | static void killImpl(const ProcessHandleImpl& handle); | |
| static void killImpl(PIDImpl pid); | | static void killImpl(PIDImpl pid); | |
| static void requestTerminationImpl(PIDImpl pid); | | static void requestTerminationImpl(PIDImpl pid); | |
| }; | | }; | |
| | | | |
| } // namespace Poco | | } // namespace Poco | |
| | | | |
| #endif // Foundation_Process_UNIX_INCLUDED | | #endif // Foundation_Process_UNIX_INCLUDED | |
| | | | |
End of changes. 4 change blocks. |
| 3 lines changed or deleted | | 11 lines changed or added | |
|
| Process_WIN32.h | | Process_WIN32.h | |
| // | | // | |
| // Process_WIN32.h | | // Process_WIN32.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Foundation/include/Poco/Process_WIN32.h#2 $ | | // $Id: //poco/1.4/Foundation/include/Poco/Process_WIN32.h#4 $ | |
| // | | // | |
| // Library: Foundation | | // Library: Foundation | |
| // Package: Processes | | // Package: Processes | |
| // Module: Process | | // Module: Process | |
| // | | // | |
| // Definition of the ProcessImpl class for WIN32. | | // Definition of the ProcessImpl class for WIN32. | |
| // | | // | |
| // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 44 | | skipping to change at line 44 | |
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OT
HER | | // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OT
HER | |
| // DEALINGS IN THE SOFTWARE. | | // DEALINGS IN THE SOFTWARE. | |
| // | | // | |
| | | | |
| #ifndef Foundation_Process_WIN32_INCLUDED | | #ifndef Foundation_Process_WIN32_INCLUDED | |
| #define Foundation_Process_WIN32_INCLUDED | | #define Foundation_Process_WIN32_INCLUDED | |
| | | | |
| #include "Poco/Foundation.h" | | #include "Poco/Foundation.h" | |
| #include "Poco/RefCountedObject.h" | | #include "Poco/RefCountedObject.h" | |
| #include <vector> | | #include <vector> | |
|
| | | #include <map> | |
| #include "Poco/UnWindows.h" | | #include "Poco/UnWindows.h" | |
| | | | |
| namespace Poco { | | namespace Poco { | |
| | | | |
| class Pipe; | | class Pipe; | |
| | | | |
| class Foundation_API ProcessHandleImpl: public RefCountedObject | | class Foundation_API ProcessHandleImpl: public RefCountedObject | |
| { | | { | |
| public: | | public: | |
| ProcessHandleImpl(HANDLE _hProcess, UInt32 pid); | | ProcessHandleImpl(HANDLE _hProcess, UInt32 pid); | |
| | | | |
| skipping to change at line 73 | | skipping to change at line 74 | |
| | | | |
| ProcessHandleImpl(const ProcessHandleImpl&); | | ProcessHandleImpl(const ProcessHandleImpl&); | |
| ProcessHandleImpl& operator = (const ProcessHandleImpl&); | | ProcessHandleImpl& operator = (const ProcessHandleImpl&); | |
| }; | | }; | |
| | | | |
| class Foundation_API ProcessImpl | | class Foundation_API ProcessImpl | |
| { | | { | |
| public: | | public: | |
| typedef UInt32 PIDImpl; | | typedef UInt32 PIDImpl; | |
| typedef std::vector<std::string> ArgsImpl; | | typedef std::vector<std::string> ArgsImpl; | |
|
| | | typedef std::map<std::string, std::string> EnvImpl; | |
| | | | |
| static PIDImpl idImpl(); | | static PIDImpl idImpl(); | |
| static void timesImpl(long& userTime, long& kernelTime); | | static void timesImpl(long& userTime, long& kernelTime); | |
|
| static ProcessHandleImpl* launchImpl(const std::string& command, con | | static ProcessHandleImpl* launchImpl( | |
| st ArgsImpl& args, Pipe* inPipe, Pipe* outPipe, Pipe* errPipe); | | const std::string& command, | |
| | | const ArgsImpl& args, | |
| | | const std::string& initialDirectory, | |
| | | Pipe* inPipe, | |
| | | Pipe* outPipe, | |
| | | Pipe* errPipe, | |
| | | const EnvImpl& env); | |
| static void killImpl(const ProcessHandleImpl& handle); | | static void killImpl(const ProcessHandleImpl& handle); | |
| static void killImpl(PIDImpl pid); | | static void killImpl(PIDImpl pid); | |
| static void requestTerminationImpl(PIDImpl pid); | | static void requestTerminationImpl(PIDImpl pid); | |
| static std::string terminationEventName(PIDImpl pid); | | static std::string terminationEventName(PIDImpl pid); | |
| }; | | }; | |
| | | | |
| } // namespace Poco | | } // namespace Poco | |
| | | | |
| #endif // Foundation_Process_WIN32_INCLUDED | | #endif // Foundation_Process_WIN32_INCLUDED | |
| | | | |
End of changes. 4 change blocks. |
| 3 lines changed or deleted | | 11 lines changed or added | |
|
| Process_WIN32U.h | | Process_WIN32U.h | |
| // | | // | |
| // Process_WIN32U.h | | // Process_WIN32U.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Foundation/include/Poco/Process_WIN32U.h#2 $ | | // $Id: //poco/1.4/Foundation/include/Poco/Process_WIN32U.h#3 $ | |
| // | | // | |
| // Library: Foundation | | // Library: Foundation | |
| // Package: Processes | | // Package: Processes | |
| // Module: Process | | // Module: Process | |
| // | | // | |
| // Definition of the ProcessImpl class for WIN32. | | // Definition of the ProcessImpl class for WIN32. | |
| // | | // | |
| // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 44 | | skipping to change at line 44 | |
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OT
HER | | // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OT
HER | |
| // DEALINGS IN THE SOFTWARE. | | // DEALINGS IN THE SOFTWARE. | |
| // | | // | |
| | | | |
| #ifndef Foundation_Process_WIN32U_INCLUDED | | #ifndef Foundation_Process_WIN32U_INCLUDED | |
| #define Foundation_Process_WIN32U_INCLUDED | | #define Foundation_Process_WIN32U_INCLUDED | |
| | | | |
| #include "Poco/Foundation.h" | | #include "Poco/Foundation.h" | |
| #include "Poco/RefCountedObject.h" | | #include "Poco/RefCountedObject.h" | |
| #include <vector> | | #include <vector> | |
|
| | | #include <map> | |
| #include "Poco/UnWindows.h" | | #include "Poco/UnWindows.h" | |
| | | | |
| namespace Poco { | | namespace Poco { | |
| | | | |
| class Pipe; | | class Pipe; | |
| | | | |
| class Foundation_API ProcessHandleImpl: public RefCountedObject | | class Foundation_API ProcessHandleImpl: public RefCountedObject | |
| { | | { | |
| public: | | public: | |
| ProcessHandleImpl(HANDLE _hProcess, UInt32 pid); | | ProcessHandleImpl(HANDLE _hProcess, UInt32 pid); | |
| | | | |
| skipping to change at line 73 | | skipping to change at line 74 | |
| | | | |
| ProcessHandleImpl(const ProcessHandleImpl&); | | ProcessHandleImpl(const ProcessHandleImpl&); | |
| ProcessHandleImpl& operator = (const ProcessHandleImpl&); | | ProcessHandleImpl& operator = (const ProcessHandleImpl&); | |
| }; | | }; | |
| | | | |
| class Foundation_API ProcessImpl | | class Foundation_API ProcessImpl | |
| { | | { | |
| public: | | public: | |
| typedef UInt32 PIDImpl; | | typedef UInt32 PIDImpl; | |
| typedef std::vector<std::string> ArgsImpl; | | typedef std::vector<std::string> ArgsImpl; | |
|
| | | typedef std::map<std::string, std::string> EnvImpl; | |
| | | | |
| static PIDImpl idImpl(); | | static PIDImpl idImpl(); | |
| static void timesImpl(long& userTime, long& kernelTime); | | static void timesImpl(long& userTime, long& kernelTime); | |
|
| static ProcessHandleImpl* launchImpl(const std::string& command, con | | static ProcessHandleImpl* launchImpl( | |
| st ArgsImpl& args, Pipe* inPipe, Pipe* outPipe, Pipe* errPipe); | | const std::string& command, | |
| | | const ArgsImpl& args, | |
| | | const std::string& initialDirectory, | |
| | | Pipe* inPipe, | |
| | | Pipe* outPipe, | |
| | | Pipe* errPipe, | |
| | | const EnvImpl& env); | |
| static void killImpl(const ProcessHandleImpl& handle); | | static void killImpl(const ProcessHandleImpl& handle); | |
| static void killImpl(PIDImpl pid); | | static void killImpl(PIDImpl pid); | |
| static void requestTerminationImpl(PIDImpl pid); | | static void requestTerminationImpl(PIDImpl pid); | |
| static std::string terminationEventName(PIDImpl pid); | | static std::string terminationEventName(PIDImpl pid); | |
| }; | | }; | |
| | | | |
| } // namespace Poco | | } // namespace Poco | |
| | | | |
| #endif // Foundation_Process_WIN32U_INCLUDED | | #endif // Foundation_Process_WIN32U_INCLUDED | |
| | | | |
End of changes. 4 change blocks. |
| 3 lines changed or deleted | | 11 lines changed or added | |
|
| Process_WINCE.h | | Process_WINCE.h | |
| // | | // | |
| // Process_WINCE.h | | // Process_WINCE.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Foundation/include/Poco/Process_WINCE.h#2 $ | | // $Id: //poco/1.4/Foundation/include/Poco/Process_WINCE.h#4 $ | |
| // | | // | |
| // Library: Foundation | | // Library: Foundation | |
| // Package: Processes | | // Package: Processes | |
| // Module: Process | | // Module: Process | |
| // | | // | |
| // Definition of the ProcessImpl class for WIN32. | | // Definition of the ProcessImpl class for WIN32. | |
| // | | // | |
| // Copyright (c) 2004-2010, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2004-2010, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 44 | | skipping to change at line 44 | |
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OT
HER | | // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OT
HER | |
| // DEALINGS IN THE SOFTWARE. | | // DEALINGS IN THE SOFTWARE. | |
| // | | // | |
| | | | |
| #ifndef Foundation_Process_WINCE_INCLUDED | | #ifndef Foundation_Process_WINCE_INCLUDED | |
| #define Foundation_Process_WINCE_INCLUDED | | #define Foundation_Process_WINCE_INCLUDED | |
| | | | |
| #include "Poco/Foundation.h" | | #include "Poco/Foundation.h" | |
| #include "Poco/RefCountedObject.h" | | #include "Poco/RefCountedObject.h" | |
| #include <vector> | | #include <vector> | |
|
| | | #include <map> | |
| #include "Poco/UnWindows.h" | | #include "Poco/UnWindows.h" | |
| | | | |
| namespace Poco { | | namespace Poco { | |
| | | | |
| class Pipe; | | class Pipe; | |
| | | | |
| class Foundation_API ProcessHandleImpl: public RefCountedObject | | class Foundation_API ProcessHandleImpl: public RefCountedObject | |
| { | | { | |
| public: | | public: | |
| ProcessHandleImpl(HANDLE _hProcess, UInt32 pid); | | ProcessHandleImpl(HANDLE _hProcess, UInt32 pid); | |
| | | | |
| skipping to change at line 73 | | skipping to change at line 74 | |
| | | | |
| ProcessHandleImpl(const ProcessHandleImpl&); | | ProcessHandleImpl(const ProcessHandleImpl&); | |
| ProcessHandleImpl& operator = (const ProcessHandleImpl&); | | ProcessHandleImpl& operator = (const ProcessHandleImpl&); | |
| }; | | }; | |
| | | | |
| class Foundation_API ProcessImpl | | class Foundation_API ProcessImpl | |
| { | | { | |
| public: | | public: | |
| typedef UInt32 PIDImpl; | | typedef UInt32 PIDImpl; | |
| typedef std::vector<std::string> ArgsImpl; | | typedef std::vector<std::string> ArgsImpl; | |
|
| | | typedef std::map<std::string, std::string> EnvImpl; | |
| | | | |
| static PIDImpl idImpl(); | | static PIDImpl idImpl(); | |
| static void timesImpl(long& userTime, long& kernelTime); | | static void timesImpl(long& userTime, long& kernelTime); | |
|
| static ProcessHandleImpl* launchImpl(const std::string& command, con | | static ProcessHandleImpl* launchImpl( | |
| st ArgsImpl& args, Pipe* inPipe, Pipe* outPipe, Pipe* errPipe); | | const std::string& command, | |
| | | const ArgsImpl& args, | |
| | | const std::string& initialDirectory, | |
| | | Pipe* inPipe, | |
| | | Pipe* outPipe, | |
| | | Pipe* errPipe, | |
| | | const EnvImpl& env); | |
| static void killImpl(const ProcessHandleImpl& handle); | | static void killImpl(const ProcessHandleImpl& handle); | |
| static void killImpl(PIDImpl pid); | | static void killImpl(PIDImpl pid); | |
| static void requestTerminationImpl(PIDImpl pid); | | static void requestTerminationImpl(PIDImpl pid); | |
| static std::string terminationEventName(PIDImpl pid); | | static std::string terminationEventName(PIDImpl pid); | |
| }; | | }; | |
| | | | |
| } // namespace Poco | | } // namespace Poco | |
| | | | |
| #endif // Foundation_Process_WINCE_INCLUDED | | #endif // Foundation_Process_WINCE_INCLUDED | |
| | | | |
End of changes. 4 change blocks. |
| 3 lines changed or deleted | | 11 lines changed or added | |
|
| SimpleFileChannel.h | | SimpleFileChannel.h | |
| // | | // | |
| // SimpleFileChannel.h | | // SimpleFileChannel.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Foundation/include/Poco/SimpleFileChannel.h#1 $ | | // $Id: //poco/1.4/Foundation/include/Poco/SimpleFileChannel.h#2 $ | |
| // | | // | |
| // Library: Foundation | | // Library: Foundation | |
| // Package: Logging | | // Package: Logging | |
| // Module: SimpleFileChannel | | // Module: SimpleFileChannel | |
| // | | // | |
| // Definition of the SimpleFileChannel class. | | // Definition of the SimpleFileChannel class. | |
| // | | // | |
| // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 86 | | skipping to change at line 86 | |
| /// <n> Kilobytes. | | /// <n> Kilobytes. | |
| /// * <n> M: the file is rotated when its size exceeds | | /// * <n> M: the file is rotated when its size exceeds | |
| /// <n> Megabytes. | | /// <n> Megabytes. | |
| /// | | /// | |
| /// The path of the (primary) log file can be specified with | | /// The path of the (primary) log file can be specified with | |
| /// the "path" property. Optionally, the path of the secondary | | /// the "path" property. Optionally, the path of the secondary | |
| /// log file can be specified with the "secondaryPath" property. | | /// log file can be specified with the "secondaryPath" property. | |
| /// | | /// | |
| /// If no secondary path is specified, the secondary path will | | /// If no secondary path is specified, the secondary path will | |
| /// default to <primaryPath>.1. | | /// default to <primaryPath>.1. | |
|
| | | /// | |
| | | /// The flush property specifies whether each log message is flushed | |
| | | /// immediately to the log file (which may hurt application performa | |
| | | nce, | |
| | | /// but ensures that everything is in the log in case of a system cr | |
| | | ash), | |
| | | // or whether it's allowed to stay in the system's file buffer for | |
| | | some time. | |
| | | /// Valid values are: | |
| | | /// | |
| | | /// * true: Every essages is immediately flushed to the log file | |
| | | (default). | |
| | | /// * false: Messages are not immediately flushed to the log file | |
| | | . | |
| | | /// | |
| { | | { | |
| public: | | public: | |
| SimpleFileChannel(); | | SimpleFileChannel(); | |
| /// Creates the FileChannel. | | /// Creates the FileChannel. | |
| | | | |
| SimpleFileChannel(const std::string& path); | | SimpleFileChannel(const std::string& path); | |
| /// Creates the FileChannel for a file with the given path. | | /// Creates the FileChannel for a file with the given path. | |
| | | | |
| void open(); | | void open(); | |
| /// Opens the FileChannel and creates the log file if necess
ary. | | /// Opens the FileChannel and creates the log file if necess
ary. | |
| | | | |
| skipping to change at line 111 | | skipping to change at line 121 | |
| /// Logs the given message to the file. | | /// Logs the given message to the file. | |
| | | | |
| void setProperty(const std::string& name, const std::string& value); | | void setProperty(const std::string& name, const std::string& value); | |
| /// Sets the property with the given name. | | /// Sets the property with the given name. | |
| /// | | /// | |
| /// The following properties are supported: | | /// The following properties are supported: | |
| /// * path: The primary log file's path. | | /// * path: The primary log file's path. | |
| /// * secondaryPath: The secondary log file's path. | | /// * secondaryPath: The secondary log file's path. | |
| /// * rotation: The log file's rotation mode. See the | | /// * rotation: The log file's rotation mode. See the | |
| /// SimpleFileChannel class for details. | | /// SimpleFileChannel class for details. | |
|
| | | /// * flush: Specifies whether messages are immedi | |
| | | ately | |
| | | /// flushed to the log file. See the Simp | |
| | | leFileChannel | |
| | | /// class for details. | |
| | | | |
| std::string getProperty(const std::string& name) const; | | std::string getProperty(const std::string& name) const; | |
| /// Returns the value of the property with the given name. | | /// Returns the value of the property with the given name. | |
| /// See setProperty() for a description of the supported | | /// See setProperty() for a description of the supported | |
| /// properties. | | /// properties. | |
| | | | |
| Timestamp creationDate() const; | | Timestamp creationDate() const; | |
| /// Returns the log file's creation date. | | /// Returns the log file's creation date. | |
| | | | |
| UInt64 size() const; | | UInt64 size() const; | |
| | | | |
| skipping to change at line 132 | | skipping to change at line 145 | |
| | | | |
| const std::string& path() const; | | const std::string& path() const; | |
| /// Returns the log file's primary path. | | /// Returns the log file's primary path. | |
| | | | |
| const std::string& secondaryPath() const; | | const std::string& secondaryPath() const; | |
| /// Returns the log file's secondary path. | | /// Returns the log file's secondary path. | |
| | | | |
| static const std::string PROP_PATH; | | static const std::string PROP_PATH; | |
| static const std::string PROP_SECONDARYPATH; | | static const std::string PROP_SECONDARYPATH; | |
| static const std::string PROP_ROTATION; | | static const std::string PROP_ROTATION; | |
|
| | | static const std::string PROP_FLUSH; | |
| | | | |
| protected: | | protected: | |
| ~SimpleFileChannel(); | | ~SimpleFileChannel(); | |
| void setRotation(const std::string& rotation); | | void setRotation(const std::string& rotation); | |
|
| | | void setFlush(const std::string& flush); | |
| void rotate(); | | void rotate(); | |
| | | | |
| private: | | private: | |
| std::string _path; | | std::string _path; | |
| std::string _secondaryPath; | | std::string _secondaryPath; | |
| std::string _rotation; | | std::string _rotation; | |
| UInt64 _limit; | | UInt64 _limit; | |
|
| | | bool _flush; | |
| LogFile* _pFile; | | LogFile* _pFile; | |
| FastMutex _mutex; | | FastMutex _mutex; | |
| }; | | }; | |
| | | | |
| } // namespace Poco | | } // namespace Poco | |
| | | | |
| #endif // Foundation_SimpleFileChannel_INCLUDED | | #endif // Foundation_SimpleFileChannel_INCLUDED | |
| | | | |
End of changes. 6 change blocks. |
| 1 lines changed or deleted | | 24 lines changed or added | |
|
| Socket.h | | Socket.h | |
| // | | // | |
| // Socket.h | | // Socket.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Net/include/Poco/Net/Socket.h#2 $ | | // $Id: //poco/1.4/Net/include/Poco/Net/Socket.h#3 $ | |
| // | | // | |
| // Library: Net | | // Library: Net | |
| // Package: Sockets | | // Package: Sockets | |
| // Module: Socket | | // Module: Socket | |
| // | | // | |
| // Definition of the Socket class. | | // Definition of the Socket class. | |
| // | | // | |
| // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 305 | | skipping to change at line 305 | |
| bool secure() const; | | bool secure() const; | |
| /// Returns true iff the socket's connection is secure | | /// Returns true iff the socket's connection is secure | |
| /// (using SSL or TLS). | | /// (using SSL or TLS). | |
| | | | |
| static bool supportsIPv4(); | | static bool supportsIPv4(); | |
| /// Returns true if the system supports IPv4. | | /// Returns true if the system supports IPv4. | |
| | | | |
| static bool supportsIPv6(); | | static bool supportsIPv6(); | |
| /// Returns true if the system supports IPv6. | | /// Returns true if the system supports IPv6. | |
| | | | |
|
| | | void init(int af); | |
| | | /// Creates the underlying system socket for the given | |
| | | /// address family. | |
| | | /// | |
| | | /// Normally, this method should not be called directly, as | |
| | | /// socket creation will be handled automatically. There are | |
| | | /// a few situations where calling this method after creatio | |
| | | n | |
| | | /// of the Socket object makes sense. One example is setting | |
| | | /// a socket option before calling bind() on a ServerSocket. | |
| | | | |
| protected: | | protected: | |
| Socket(SocketImpl* pImpl); | | Socket(SocketImpl* pImpl); | |
| /// Creates the Socket and attaches the given SocketImpl. | | /// Creates the Socket and attaches the given SocketImpl. | |
| /// The socket takes owership of the SocketImpl. | | /// The socket takes owership of the SocketImpl. | |
| | | | |
| poco_socket_t sockfd() const; | | poco_socket_t sockfd() const; | |
| /// Returns the socket descriptor for this socket. | | /// Returns the socket descriptor for this socket. | |
| | | | |
| private: | | private: | |
| SocketImpl* _pImpl; | | SocketImpl* _pImpl; | |
| | | | |
End of changes. 2 change blocks. |
| 1 lines changed or deleted | | 12 lines changed or added | |
|
| SocketAddress.h | | SocketAddress.h | |
| // | | // | |
| // SocketAddress.h | | // SocketAddress.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Net/include/Poco/Net/SocketAddress.h#2 $ | | // $Id: //poco/1.4/Net/include/Poco/Net/SocketAddress.h#3 $ | |
| // | | // | |
| // Library: Net | | // Library: Net | |
| // Package: NetCore | | // Package: NetCore | |
| // Module: SocketAddress | | // Module: SocketAddress | |
| // | | // | |
| // Definition of the SocketAddress class. | | // Definition of the SocketAddress class. | |
| // | | // | |
| // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 88 | | skipping to change at line 88 | |
| /// a service name. | | /// a service name. | |
| | | | |
| explicit SocketAddress(const std::string& hostAndPort); | | explicit SocketAddress(const std::string& hostAndPort); | |
| /// Creates a SocketAddress from an IP address or host name
and a | | /// Creates a SocketAddress from an IP address or host name
and a | |
| /// port number/service name. Host name/address and port num
ber must | | /// port number/service name. Host name/address and port num
ber must | |
| /// be separated by a colon. In case of an IPv6 address, | | /// be separated by a colon. In case of an IPv6 address, | |
| /// the address part must be enclosed in brackets. | | /// the address part must be enclosed in brackets. | |
| /// | | /// | |
| /// Examples: | | /// Examples: | |
| /// 192.168.1.10:80 | | /// 192.168.1.10:80 | |
|
| /// [::FFFF:192.168.1.120]:2040 | | /// [::ffff:192.168.1.120]:2040 | |
| /// www.appinf.com:8080 | | /// www.appinf.com:8080 | |
| | | | |
| SocketAddress(const SocketAddress& addr); | | SocketAddress(const SocketAddress& addr); | |
| /// Creates a SocketAddress by copying another one. | | /// Creates a SocketAddress by copying another one. | |
| | | | |
| SocketAddress(const struct sockaddr* addr, poco_socklen_t length); | | SocketAddress(const struct sockaddr* addr, poco_socklen_t length); | |
| /// Creates a SocketAddress from a native socket address. | | /// Creates a SocketAddress from a native socket address. | |
| | | | |
| ~SocketAddress(); | | ~SocketAddress(); | |
| /// Destroys the SocketAddress. | | /// Destroys the SocketAddress. | |
| | | | |
| skipping to change at line 127 | | skipping to change at line 127 | |
| | | | |
| int af() const; | | int af() const; | |
| /// Returns the address family (AF_INET or AF_INET6) of the
address. | | /// Returns the address family (AF_INET or AF_INET6) of the
address. | |
| | | | |
| std::string toString() const; | | std::string toString() const; | |
| /// Returns a string representation of the address. | | /// Returns a string representation of the address. | |
| | | | |
| IPAddress::Family family() const; | | IPAddress::Family family() const; | |
| /// Returns the address family of the host's address. | | /// Returns the address family of the host's address. | |
| | | | |
|
| | | bool operator < (const SocketAddress& addr) const; | |
| bool operator == (const SocketAddress& addr) const; | | bool operator == (const SocketAddress& addr) const; | |
| bool operator != (const SocketAddress& addr) const; | | bool operator != (const SocketAddress& addr) const; | |
| | | | |
| enum | | enum | |
| { | | { | |
| MAX_ADDRESS_LENGTH = | | MAX_ADDRESS_LENGTH = | |
| #if defined(POCO_HAVE_IPv6) | | #if defined(POCO_HAVE_IPv6) | |
| sizeof(struct sockaddr_in6) | | sizeof(struct sockaddr_in6) | |
| #else | | #else | |
| sizeof(struct sockaddr_in) | | sizeof(struct sockaddr_in) | |
| | | | |
End of changes. 3 change blocks. |
| 2 lines changed or deleted | | 3 lines changed or added | |
|
| SocketDefs.h | | SocketDefs.h | |
| // | | // | |
| // SocketDefs.h | | // SocketDefs.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Net/include/Poco/Net/SocketDefs.h#5 $ | | // $Id: //poco/1.4/Net/include/Poco/Net/SocketDefs.h#6 $ | |
| // | | // | |
| // Library: Net | | // Library: Net | |
| // Package: NetCore | | // Package: NetCore | |
| // Module: SocketDefs | | // Module: SocketDefs | |
| // | | // | |
| // Include platform-specific header files for sockets. | | // Include platform-specific header files for sockets. | |
| // | | // | |
| // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 235 | | skipping to change at line 235 | |
| #define POCO_HOST_NOT_FOUND HOST_NOT_FOUND | | #define POCO_HOST_NOT_FOUND HOST_NOT_FOUND | |
| #define POCO_TRY_AGAIN TRY_AGAIN | | #define POCO_TRY_AGAIN TRY_AGAIN | |
| #define POCO_NO_RECOVERY NO_RECOVERY | | #define POCO_NO_RECOVERY NO_RECOVERY | |
| #define POCO_NO_DATA NO_DATA | | #define POCO_NO_DATA NO_DATA | |
| #endif | | #endif | |
| | | | |
| #if defined(POCO_OS_FAMILY_BSD) || (POCO_OS == POCO_OS_TRU64) || (POCO_OS =
= POCO_OS_AIX) || (POCO_OS == POCO_OS_IRIX) || (POCO_OS == POCO_OS_QNX) ||
(POCO_OS == POCO_OS_VXWORKS) | | #if defined(POCO_OS_FAMILY_BSD) || (POCO_OS == POCO_OS_TRU64) || (POCO_OS =
= POCO_OS_AIX) || (POCO_OS == POCO_OS_IRIX) || (POCO_OS == POCO_OS_QNX) ||
(POCO_OS == POCO_OS_VXWORKS) | |
| #define POCO_HAVE_SALEN 1 | | #define POCO_HAVE_SALEN 1 | |
| #endif | | #endif | |
| | | | |
|
| #if POCO_OS != POCO_OS_VXWORKS | | #if POCO_OS != POCO_OS_VXWORKS && !defined(POCO_NET_NO_ADDRINFO) | |
| #define POCO_HAVE_ADDRINFO 1 | | #define POCO_HAVE_ADDRINFO 1 | |
| #endif | | #endif | |
| | | | |
| #if (POCO_OS == POCO_OS_HPUX) || (POCO_OS == POCO_OS_SOLARIS) || (POCO_OS =
= POCO_OS_WINDOWS_CE) | | #if (POCO_OS == POCO_OS_HPUX) || (POCO_OS == POCO_OS_SOLARIS) || (POCO_OS =
= POCO_OS_WINDOWS_CE) | |
| #define POCO_BROKEN_TIMEOUTS 1 | | #define POCO_BROKEN_TIMEOUTS 1 | |
| #endif | | #endif | |
| | | | |
| #if defined(POCO_HAVE_ADDRINFO) | | #if defined(POCO_HAVE_ADDRINFO) | |
| #if !defined(AI_ADDRCONFIG) | | #if !defined(AI_ADDRCONFIG) | |
| #define AI_ADDRCONFIG 0 | | #define AI_ADDRCONFIG 0 | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| TaskManager.h | | TaskManager.h | |
| // | | // | |
| // TaskManager.h | | // TaskManager.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Foundation/include/Poco/TaskManager.h#2 $ | | // $Id: //poco/1.4/Foundation/include/Poco/TaskManager.h#3 $ | |
| // | | // | |
| // Library: Foundation | | // Library: Foundation | |
| // Package: Tasks | | // Package: Tasks | |
| // Module: Tasks | | // Module: Tasks | |
| // | | // | |
| // Definition of the TaskManager class. | | // Definition of the TaskManager class. | |
| // | | // | |
| // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 119 | | skipping to change at line 119 | |
| /// Usage: | | /// Usage: | |
| /// Observer<MyClass, MyNotification> obs(*this, &MyClas
s::handleNotification); | | /// Observer<MyClass, MyNotification> obs(*this, &MyClas
s::handleNotification); | |
| /// notificationCenter.addObserver(obs); | | /// notificationCenter.addObserver(obs); | |
| | | | |
| void removeObserver(const AbstractObserver& observer); | | void removeObserver(const AbstractObserver& observer); | |
| /// Unregisters an observer with the NotificationCenter. | | /// Unregisters an observer with the NotificationCenter. | |
| | | | |
| static const int MIN_PROGRESS_NOTIFICATION_INTERVAL; | | static const int MIN_PROGRESS_NOTIFICATION_INTERVAL; | |
| | | | |
| protected: | | protected: | |
|
| void postNotification(Notification* pNf); | | void postNotification(const Notification::Ptr& pNf); | |
| /// Posts a notification to the task manager's | | /// Posts a notification to the task manager's | |
| /// notification center. | | /// notification center. | |
| | | | |
| void taskStarted(Task* pTask); | | void taskStarted(Task* pTask); | |
| void taskProgress(Task* pTask, float progress); | | void taskProgress(Task* pTask, float progress); | |
| void taskCancelled(Task* pTask); | | void taskCancelled(Task* pTask); | |
| void taskFinished(Task* pTask); | | void taskFinished(Task* pTask); | |
| void taskFailed(Task* pTask, const Exception& exc); | | void taskFailed(Task* pTask, const Exception& exc); | |
| | | | |
| private: | | private: | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| Thread.h | | Thread.h | |
| // | | // | |
| // Thread.h | | // Thread.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Foundation/include/Poco/Thread.h#3 $ | | // $Id: //poco/1.4/Foundation/include/Poco/Thread.h#5 $ | |
| // | | // | |
| // Library: Foundation | | // Library: Foundation | |
| // Package: Threading | | // Package: Threading | |
| // Module: Thread | | // Module: Thread | |
| // | | // | |
| // Definition of the Thread class. | | // Definition of the Thread class. | |
| // | | // | |
| // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 85 | | skipping to change at line 85 | |
| enum Priority | | enum Priority | |
| /// Thread priorities. | | /// Thread priorities. | |
| { | | { | |
| PRIO_LOWEST = PRIO_LOWEST_IMPL, /// The lowest thread prior
ity. | | PRIO_LOWEST = PRIO_LOWEST_IMPL, /// The lowest thread prior
ity. | |
| PRIO_LOW = PRIO_LOW_IMPL, /// A lower than normal thr
ead priority. | | PRIO_LOW = PRIO_LOW_IMPL, /// A lower than normal thr
ead priority. | |
| PRIO_NORMAL = PRIO_NORMAL_IMPL, /// The normal thread prior
ity. | | PRIO_NORMAL = PRIO_NORMAL_IMPL, /// The normal thread prior
ity. | |
| PRIO_HIGH = PRIO_HIGH_IMPL, /// A higher than normal th
read priority. | | PRIO_HIGH = PRIO_HIGH_IMPL, /// A higher than normal th
read priority. | |
| PRIO_HIGHEST = PRIO_HIGHEST_IMPL /// The highest thread prio
rity. | | PRIO_HIGHEST = PRIO_HIGHEST_IMPL /// The highest thread prio
rity. | |
| }; | | }; | |
| | | | |
|
| | | enum Policy | |
| | | { | |
| | | POLICY_DEFAULT = POLICY_DEFAULT_IMPL | |
| | | }; | |
| | | | |
| Thread(); | | Thread(); | |
| /// Creates a thread. Call start() to start it. | | /// Creates a thread. Call start() to start it. | |
| | | | |
| Thread(const std::string& name); | | Thread(const std::string& name); | |
| /// Creates a named thread. Call start() to start it. | | /// Creates a named thread. Call start() to start it. | |
| | | | |
| ~Thread(); | | ~Thread(); | |
| /// Destroys the thread. | | /// Destroys the thread. | |
| | | | |
| int id() const; | | int id() const; | |
| | | | |
| skipping to change at line 118 | | skipping to change at line 123 | |
| | | | |
| void setPriority(Priority prio); | | void setPriority(Priority prio); | |
| /// Sets the thread's priority. | | /// Sets the thread's priority. | |
| /// | | /// | |
| /// Some platform only allow changing a thread's priority | | /// Some platform only allow changing a thread's priority | |
| /// if the process has certain privileges. | | /// if the process has certain privileges. | |
| | | | |
| Priority getPriority() const; | | Priority getPriority() const; | |
| /// Returns the thread's priority. | | /// Returns the thread's priority. | |
| | | | |
|
| void setOSPriority(int prio); | | void setOSPriority(int prio, int policy = POLICY_DEFAULT); | |
| /// Sets the thread's priority, using an operating system sp
ecific | | /// Sets the thread's priority, using an operating system sp
ecific | |
| /// priority value. Use getMinOSPriority() and getMaxOSPrior
ity() to | | /// priority value. Use getMinOSPriority() and getMaxOSPrior
ity() to | |
|
| /// obtain mininum and maximum priority values. | | /// obtain mininum and maximum priority values. Additionally | |
| | | , | |
| | | /// a scheduling policy can be specified. The policy is curr | |
| | | ently | |
| | | /// only used on POSIX platforms where the values SCHED_OTHE | |
| | | R (default), | |
| | | /// SCHED_FIFO and SCHED_RR are supported. | |
| | | | |
| int getOSPriority() const; | | int getOSPriority() const; | |
| /// Returns the thread's priority, expressed as an operating
system | | /// Returns the thread's priority, expressed as an operating
system | |
| /// specific priority value. | | /// specific priority value. | |
| /// | | /// | |
| /// May return 0 if the priority has not been explicitly set
. | | /// May return 0 if the priority has not been explicitly set
. | |
| | | | |
|
| static int getMinOSPriority(); | | static int getMinOSPriority(int policy = POLICY_DEFAULT); | |
| /// Returns the mininum operating system-specific priority v
alue, | | /// Returns the mininum operating system-specific priority v
alue, | |
|
| /// which can be passed to setOSPriority(). | | /// which can be passed to setOSPriority() for the given pol
icy. | |
| | | | |
|
| static int getMaxOSPriority(); | | static int getMaxOSPriority(int policy = POLICY_DEFAULT); | |
| /// Returns the maximum operating system-specific priority v
alue, | | /// Returns the maximum operating system-specific priority v
alue, | |
|
| /// which can be passed to setOSPriority(). | | /// which can be passed to setOSPriority() for the given pol
icy. | |
| | | | |
| void setStackSize(int size); | | void setStackSize(int size); | |
| /// Sets the thread's stack size in bytes. | | /// Sets the thread's stack size in bytes. | |
| /// Setting the stack size to 0 will use the default stack s
ize. | | /// Setting the stack size to 0 will use the default stack s
ize. | |
| /// Typically, the real stack size is rounded up to the near
est | | /// Typically, the real stack size is rounded up to the near
est | |
| /// page size multiple. | | /// page size multiple. | |
| | | | |
| int getStackSize() const; | | int getStackSize() const; | |
| /// Returns the thread's stack size in bytes. | | /// Returns the thread's stack size in bytes. | |
| /// If the default stack size is used, 0 is returned. | | /// If the default stack size is used, 0 is returned. | |
| | | | |
| skipping to change at line 258 | | skipping to change at line 266 | |
| inline void Thread::yield() | | inline void Thread::yield() | |
| { | | { | |
| yieldImpl(); | | yieldImpl(); | |
| } | | } | |
| | | | |
| inline Thread* Thread::current() | | inline Thread* Thread::current() | |
| { | | { | |
| return static_cast<Thread*>(currentImpl()); | | return static_cast<Thread*>(currentImpl()); | |
| } | | } | |
| | | | |
|
| inline void Thread::setOSPriority(int prio) | | inline void Thread::setOSPriority(int prio, int policy) | |
| { | | { | |
|
| setOSPriorityImpl(prio); | | setOSPriorityImpl(prio, policy); | |
| } | | } | |
| | | | |
| inline int Thread::getOSPriority() const | | inline int Thread::getOSPriority() const | |
| { | | { | |
| return getOSPriorityImpl(); | | return getOSPriorityImpl(); | |
| } | | } | |
| | | | |
|
| inline int Thread::getMinOSPriority() | | inline int Thread::getMinOSPriority(int policy) | |
| { | | { | |
|
| return ThreadImpl::getMinOSPriorityImpl(); | | return ThreadImpl::getMinOSPriorityImpl(policy); | |
| } | | } | |
| | | | |
|
| inline int Thread::getMaxOSPriority() | | inline int Thread::getMaxOSPriority(int policy) | |
| { | | { | |
|
| return ThreadImpl::getMaxOSPriorityImpl(); | | return ThreadImpl::getMaxOSPriorityImpl(policy); | |
| } | | } | |
| | | | |
| inline void Thread::setStackSize(int size) | | inline void Thread::setStackSize(int size) | |
| { | | { | |
| setStackSizeImpl(size); | | setStackSizeImpl(size); | |
| } | | } | |
| | | | |
| inline int Thread::getStackSize() const | | inline int Thread::getStackSize() const | |
| { | | { | |
| return getStackSizeImpl(); | | return getStackSizeImpl(); | |
| | | | |
End of changes. 14 change blocks. |
| 13 lines changed or deleted | | 24 lines changed or added | |
|
| Thread_POSIX.h | | Thread_POSIX.h | |
| // | | // | |
| // Thread_POSIX.h | | // Thread_POSIX.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Foundation/include/Poco/Thread_POSIX.h#3 $ | | // $Id: //poco/1.4/Foundation/include/Poco/Thread_POSIX.h#5 $ | |
| // | | // | |
| // Library: Foundation | | // Library: Foundation | |
| // Package: Threading | | // Package: Threading | |
| // Module: Thread | | // Module: Thread | |
| // | | // | |
| // Definition of the ThreadImpl class for POSIX Threads. | | // Definition of the ThreadImpl class for POSIX Threads. | |
| // | | // | |
| // Copyright (c) 2004-2007, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2004-2007, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 75 | | skipping to change at line 75 | |
| | | | |
| enum Priority | | enum Priority | |
| { | | { | |
| PRIO_LOWEST_IMPL, | | PRIO_LOWEST_IMPL, | |
| PRIO_LOW_IMPL, | | PRIO_LOW_IMPL, | |
| PRIO_NORMAL_IMPL, | | PRIO_NORMAL_IMPL, | |
| PRIO_HIGH_IMPL, | | PRIO_HIGH_IMPL, | |
| PRIO_HIGHEST_IMPL | | PRIO_HIGHEST_IMPL | |
| }; | | }; | |
| | | | |
|
| | | enum Policy | |
| | | { | |
| | | POLICY_DEFAULT_IMPL = SCHED_OTHER | |
| | | }; | |
| | | | |
| struct CallbackData: public RefCountedObject | | struct CallbackData: public RefCountedObject | |
| { | | { | |
| CallbackData(): callback(0), pData(0) | | CallbackData(): callback(0), pData(0) | |
| { | | { | |
| } | | } | |
| | | | |
| Callable callback; | | Callable callback; | |
| void* pData; | | void* pData; | |
| }; | | }; | |
| | | | |
| ThreadImpl(); | | ThreadImpl(); | |
| ~ThreadImpl(); | | ~ThreadImpl(); | |
| | | | |
| TIDImpl tidImpl() const; | | TIDImpl tidImpl() const; | |
| void setPriorityImpl(int prio); | | void setPriorityImpl(int prio); | |
| int getPriorityImpl() const; | | int getPriorityImpl() const; | |
|
| void setOSPriorityImpl(int prio); | | void setOSPriorityImpl(int prio, int policy = SCHED_OTHER); | |
| int getOSPriorityImpl() const; | | int getOSPriorityImpl() const; | |
|
| static int getMinOSPriorityImpl(); | | static int getMinOSPriorityImpl(int policy); | |
| static int getMaxOSPriorityImpl(); | | static int getMaxOSPriorityImpl(int policy); | |
| void setStackSizeImpl(int size); | | void setStackSizeImpl(int size); | |
| int getStackSizeImpl() const; | | int getStackSizeImpl() const; | |
| void startImpl(Runnable& target); | | void startImpl(Runnable& target); | |
| void startImpl(Callable target, void* pData = 0); | | void startImpl(Callable target, void* pData = 0); | |
| | | | |
| void joinImpl(); | | void joinImpl(); | |
| bool joinImpl(long milliseconds); | | bool joinImpl(long milliseconds); | |
| bool isRunningImpl() const; | | bool isRunningImpl() const; | |
| static void sleepImpl(long milliseconds); | | static void sleepImpl(long milliseconds); | |
| static void yieldImpl(); | | static void yieldImpl(); | |
| static ThreadImpl* currentImpl(); | | static ThreadImpl* currentImpl(); | |
| static TIDImpl currentTidImpl(); | | static TIDImpl currentTidImpl(); | |
| | | | |
| protected: | | protected: | |
| static void* runnableEntry(void* pThread); | | static void* runnableEntry(void* pThread); | |
| static void* callableEntry(void* pThread); | | static void* callableEntry(void* pThread); | |
|
| static int mapPrio(int prio); | | static int mapPrio(int prio, int policy = SCHED_OTHER); | |
| static int reverseMapPrio(int osPrio); | | static int reverseMapPrio(int osPrio, int policy = SCHED_OTHER); | |
| | | | |
| private: | | private: | |
| class CurrentThreadHolder | | class CurrentThreadHolder | |
| { | | { | |
| public: | | public: | |
| CurrentThreadHolder() | | CurrentThreadHolder() | |
| { | | { | |
| if (pthread_key_create(&_key, NULL)) | | if (pthread_key_create(&_key, NULL)) | |
| throw SystemException("cannot allocate threa
d context key"); | | throw SystemException("cannot allocate threa
d context key"); | |
| } | | } | |
| | | | |
| skipping to change at line 147 | | skipping to change at line 152 | |
| pthread_key_t _key; | | pthread_key_t _key; | |
| }; | | }; | |
| | | | |
| struct ThreadData: public RefCountedObject | | struct ThreadData: public RefCountedObject | |
| { | | { | |
| ThreadData(): | | ThreadData(): | |
| pRunnableTarget(0), | | pRunnableTarget(0), | |
| pCallbackTarget(0), | | pCallbackTarget(0), | |
| thread(0), | | thread(0), | |
| prio(PRIO_NORMAL_IMPL), | | prio(PRIO_NORMAL_IMPL), | |
|
| osPrio(0), | | policy(SCHED_OTHER), | |
| done(false), | | done(false), | |
| stackSize(POCO_THREAD_STACK_SIZE) | | stackSize(POCO_THREAD_STACK_SIZE) | |
| { | | { | |
| #if defined(POCO_VXWORKS) | | #if defined(POCO_VXWORKS) | |
| // This workaround is for VxWorks 5.x where | | // This workaround is for VxWorks 5.x where | |
| // pthread_init() won't properly initialize the thre
ad. | | // pthread_init() won't properly initialize the thre
ad. | |
| std::memset(&thread, 0, sizeof(thread)); | | std::memset(&thread, 0, sizeof(thread)); | |
| #endif | | #endif | |
| } | | } | |
| | | | |
| Runnable* pRunnableTarget; | | Runnable* pRunnableTarget; | |
| AutoPtr<CallbackData> pCallbackTarget; | | AutoPtr<CallbackData> pCallbackTarget; | |
| pthread_t thread; | | pthread_t thread; | |
| int prio; | | int prio; | |
| int osPrio; | | int osPrio; | |
|
| | | int policy; | |
| Event done; | | Event done; | |
| std::size_t stackSize; | | std::size_t stackSize; | |
| }; | | }; | |
| | | | |
| AutoPtr<ThreadData> _pData; | | AutoPtr<ThreadData> _pData; | |
| | | | |
| static CurrentThreadHolder _currentThreadHolder; | | static CurrentThreadHolder _currentThreadHolder; | |
| | | | |
| #if defined(POCO_OS_FAMILY_UNIX) && !defined(POCO_VXWORKS) | | #if defined(POCO_OS_FAMILY_UNIX) && !defined(POCO_VXWORKS) | |
| SignalHandler::JumpBufferVec _jumpBufferVec; | | SignalHandler::JumpBufferVec _jumpBufferVec; | |
| | | | |
End of changes. 7 change blocks. |
| 7 lines changed or deleted | | 13 lines changed or added | |
|
| Thread_VX.h | | Thread_VX.h | |
| // | | // | |
| // Thread_VX.h | | // Thread_VX.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Foundation/include/Poco/Thread_VX.h#1 $ | | // $Id: //poco/1.4/Foundation/include/Poco/Thread_VX.h#4 $ | |
| // | | // | |
| // Library: Foundation | | // Library: Foundation | |
| // Package: Threading | | // Package: Threading | |
| // Module: Thread | | // Module: Thread | |
| // | | // | |
| // Definition of the ThreadImpl class for VxWorks tasks. | | // Definition of the ThreadImpl class for VxWorks tasks. | |
| // | | // | |
| // Copyright (c) 2004-2011, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2004-2011, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 67 | | skipping to change at line 67 | |
| | | | |
| enum Priority | | enum Priority | |
| { | | { | |
| PRIO_LOWEST_IMPL, | | PRIO_LOWEST_IMPL, | |
| PRIO_LOW_IMPL, | | PRIO_LOW_IMPL, | |
| PRIO_NORMAL_IMPL, | | PRIO_NORMAL_IMPL, | |
| PRIO_HIGH_IMPL, | | PRIO_HIGH_IMPL, | |
| PRIO_HIGHEST_IMPL | | PRIO_HIGHEST_IMPL | |
| }; | | }; | |
| | | | |
|
| | | enum Policy | |
| | | { | |
| | | POLICY_DEFAULT_IMPL = 0 | |
| | | }; | |
| | | | |
| enum | | enum | |
| { | | { | |
| DEFAULT_THREAD_STACK_SIZE = 65536 | | DEFAULT_THREAD_STACK_SIZE = 65536 | |
| }; | | }; | |
| | | | |
| struct CallbackData: public RefCountedObject | | struct CallbackData: public RefCountedObject | |
| { | | { | |
| CallbackData(): callback(0), pData(0) | | CallbackData(): callback(0), pData(0) | |
| { | | { | |
| } | | } | |
| | | | |
| skipping to change at line 88 | | skipping to change at line 93 | |
| Callable callback; | | Callable callback; | |
| void* pData; | | void* pData; | |
| }; | | }; | |
| | | | |
| ThreadImpl(); | | ThreadImpl(); | |
| ~ThreadImpl(); | | ~ThreadImpl(); | |
| | | | |
| TIDImpl tidImpl() const; | | TIDImpl tidImpl() const; | |
| void setPriorityImpl(int prio); | | void setPriorityImpl(int prio); | |
| int getPriorityImpl() const; | | int getPriorityImpl() const; | |
|
| void setOSPriorityImpl(int prio); | | void setOSPriorityImpl(int prio, int policy = 0); | |
| int getOSPriorityImpl() const; | | int getOSPriorityImpl() const; | |
|
| static int getMinOSPriorityImpl(); | | static int getMinOSPriorityImpl(int policy); | |
| static int getMaxOSPriorityImpl(); | | static int getMaxOSPriorityImpl(int policy); | |
| void setStackSizeImpl(int size); | | void setStackSizeImpl(int size); | |
| int getStackSizeImpl() const; | | int getStackSizeImpl() const; | |
| void startImpl(Runnable& target); | | void startImpl(Runnable& target); | |
| void startImpl(Callable target, void* pData = 0); | | void startImpl(Callable target, void* pData = 0); | |
| | | | |
| void joinImpl(); | | void joinImpl(); | |
| bool joinImpl(long milliseconds); | | bool joinImpl(long milliseconds); | |
| bool isRunningImpl() const; | | bool isRunningImpl() const; | |
| static void sleepImpl(long milliseconds); | | static void sleepImpl(long milliseconds); | |
| static void yieldImpl(); | | static void yieldImpl(); | |
| | | | |
| skipping to change at line 118 | | skipping to change at line 123 | |
| static int mapPrio(int prio); | | static int mapPrio(int prio); | |
| static int reverseMapPrio(int osPrio); | | static int reverseMapPrio(int osPrio); | |
| | | | |
| struct ThreadData: public RefCountedObject | | struct ThreadData: public RefCountedObject | |
| { | | { | |
| ThreadData(): | | ThreadData(): | |
| pRunnableTarget(0), | | pRunnableTarget(0), | |
| pCallbackTarget(0), | | pCallbackTarget(0), | |
| task(0), | | task(0), | |
| prio(PRIO_NORMAL_IMPL), | | prio(PRIO_NORMAL_IMPL), | |
|
| osPrio(0), | | osPrio(127), | |
| done(false), | | done(false), | |
| stackSize(POCO_THREAD_STACK_SIZE) | | stackSize(POCO_THREAD_STACK_SIZE) | |
| { | | { | |
| } | | } | |
| | | | |
| Runnable* pRunnableTarget; | | Runnable* pRunnableTarget; | |
| AutoPtr<CallbackData> pCallbackTarget; | | AutoPtr<CallbackData> pCallbackTarget; | |
| int task; | | int task; | |
| int prio; | | int prio; | |
| int osPrio; | | int osPrio; | |
| | | | |
End of changes. 5 change blocks. |
| 5 lines changed or deleted | | 10 lines changed or added | |
|
| Thread_WIN32.h | | Thread_WIN32.h | |
| // | | // | |
| // Thread_WIN32.h | | // Thread_WIN32.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Foundation/include/Poco/Thread_WIN32.h#1 $ | | // $Id: //poco/1.4/Foundation/include/Poco/Thread_WIN32.h#3 $ | |
| // | | // | |
| // Library: Foundation | | // Library: Foundation | |
| // Package: Threading | | // Package: Threading | |
| // Module: Thread | | // Module: Thread | |
| // | | // | |
| // Definition of the ThreadImpl class for WIN32. | | // Definition of the ThreadImpl class for WIN32. | |
| // | | // | |
| // Copyright (c) 2004-2009, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2004-2009, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 78 | | skipping to change at line 78 | |
| | | | |
| enum Priority | | enum Priority | |
| { | | { | |
| PRIO_LOWEST_IMPL = THREAD_PRIORITY_LOWEST, | | PRIO_LOWEST_IMPL = THREAD_PRIORITY_LOWEST, | |
| PRIO_LOW_IMPL = THREAD_PRIORITY_BELOW_NORMAL, | | PRIO_LOW_IMPL = THREAD_PRIORITY_BELOW_NORMAL, | |
| PRIO_NORMAL_IMPL = THREAD_PRIORITY_NORMAL, | | PRIO_NORMAL_IMPL = THREAD_PRIORITY_NORMAL, | |
| PRIO_HIGH_IMPL = THREAD_PRIORITY_ABOVE_NORMAL, | | PRIO_HIGH_IMPL = THREAD_PRIORITY_ABOVE_NORMAL, | |
| PRIO_HIGHEST_IMPL = THREAD_PRIORITY_HIGHEST | | PRIO_HIGHEST_IMPL = THREAD_PRIORITY_HIGHEST | |
| }; | | }; | |
| | | | |
|
| | | enum Policy | |
| | | { | |
| | | POLICY_DEFAULT_IMPL = 0 | |
| | | }; | |
| | | | |
| ThreadImpl(); | | ThreadImpl(); | |
| ~ThreadImpl(); | | ~ThreadImpl(); | |
| | | | |
| TIDImpl tidImpl() const; | | TIDImpl tidImpl() const; | |
| void setPriorityImpl(int prio); | | void setPriorityImpl(int prio); | |
| int getPriorityImpl() const; | | int getPriorityImpl() const; | |
|
| void setOSPriorityImpl(int prio); | | void setOSPriorityImpl(int prio, int policy = 0); | |
| int getOSPriorityImpl() const; | | int getOSPriorityImpl() const; | |
|
| static int getMinOSPriorityImpl(); | | static int getMinOSPriorityImpl(int policy); | |
| static int getMaxOSPriorityImpl(); | | static int getMaxOSPriorityImpl(int policy); | |
| void setStackSizeImpl(int size); | | void setStackSizeImpl(int size); | |
| int getStackSizeImpl() const; | | int getStackSizeImpl() const; | |
| void startImpl(Runnable& target); | | void startImpl(Runnable& target); | |
| void startImpl(Callable target, void* pData = 0); | | void startImpl(Callable target, void* pData = 0); | |
| | | | |
| void joinImpl(); | | void joinImpl(); | |
| bool joinImpl(long milliseconds); | | bool joinImpl(long milliseconds); | |
| bool isRunningImpl() const; | | bool isRunningImpl() const; | |
| static void sleepImpl(long milliseconds); | | static void sleepImpl(long milliseconds); | |
| static void yieldImpl(); | | static void yieldImpl(); | |
| | | | |
| skipping to change at line 166 | | skipping to change at line 171 | |
| inline int ThreadImpl::getPriorityImpl() const | | inline int ThreadImpl::getPriorityImpl() const | |
| { | | { | |
| return _prio; | | return _prio; | |
| } | | } | |
| | | | |
| inline int ThreadImpl::getOSPriorityImpl() const | | inline int ThreadImpl::getOSPriorityImpl() const | |
| { | | { | |
| return _prio; | | return _prio; | |
| } | | } | |
| | | | |
|
| inline int ThreadImpl::getMinOSPriorityImpl() | | inline int ThreadImpl::getMinOSPriorityImpl(int /* policy */) | |
| { | | { | |
| return PRIO_LOWEST_IMPL; | | return PRIO_LOWEST_IMPL; | |
| } | | } | |
| | | | |
|
| inline int ThreadImpl::getMaxOSPriorityImpl() | | inline int ThreadImpl::getMaxOSPriorityImpl(int /* policy */) | |
| { | | { | |
| return PRIO_HIGHEST_IMPL; | | return PRIO_HIGHEST_IMPL; | |
| } | | } | |
| | | | |
| inline void ThreadImpl::sleepImpl(long milliseconds) | | inline void ThreadImpl::sleepImpl(long milliseconds) | |
| { | | { | |
| Sleep(DWORD(milliseconds)); | | Sleep(DWORD(milliseconds)); | |
| } | | } | |
| | | | |
| inline void ThreadImpl::yieldImpl() | | inline void ThreadImpl::yieldImpl() | |
| | | | |
End of changes. 6 change blocks. |
| 6 lines changed or deleted | | 11 lines changed or added | |
|
| Thread_WINCE.h | | Thread_WINCE.h | |
| // | | // | |
| // Thread_WINCE.h | | // Thread_WINCE.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Foundation/include/Poco/Thread_WINCE.h#1 $ | | // $Id: //poco/1.4/Foundation/include/Poco/Thread_WINCE.h#3 $ | |
| // | | // | |
| // Library: Foundation | | // Library: Foundation | |
| // Package: Threading | | // Package: Threading | |
| // Module: Thread | | // Module: Thread | |
| // | | // | |
| // Definition of the ThreadImpl class for WIN32. | | // Definition of the ThreadImpl class for WIN32. | |
| // | | // | |
| // Copyright (c) 2004-2010, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2004-2010, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 77 | | skipping to change at line 77 | |
| | | | |
| enum Priority | | enum Priority | |
| { | | { | |
| PRIO_LOWEST_IMPL = THREAD_PRIORITY_LOWEST, | | PRIO_LOWEST_IMPL = THREAD_PRIORITY_LOWEST, | |
| PRIO_LOW_IMPL = THREAD_PRIORITY_BELOW_NORMAL, | | PRIO_LOW_IMPL = THREAD_PRIORITY_BELOW_NORMAL, | |
| PRIO_NORMAL_IMPL = THREAD_PRIORITY_NORMAL, | | PRIO_NORMAL_IMPL = THREAD_PRIORITY_NORMAL, | |
| PRIO_HIGH_IMPL = THREAD_PRIORITY_ABOVE_NORMAL, | | PRIO_HIGH_IMPL = THREAD_PRIORITY_ABOVE_NORMAL, | |
| PRIO_HIGHEST_IMPL = THREAD_PRIORITY_HIGHEST | | PRIO_HIGHEST_IMPL = THREAD_PRIORITY_HIGHEST | |
| }; | | }; | |
| | | | |
|
| | | enum Policy | |
| | | { | |
| | | POLICY_DEFAULT_IMPL = 0 | |
| | | }; | |
| | | | |
| ThreadImpl(); | | ThreadImpl(); | |
| ~ThreadImpl(); | | ~ThreadImpl(); | |
| | | | |
| TIDImpl tidImpl() const; | | TIDImpl tidImpl() const; | |
| void setPriorityImpl(int prio); | | void setPriorityImpl(int prio); | |
| int getPriorityImpl() const; | | int getPriorityImpl() const; | |
|
| void setOSPriorityImpl(int prio); | | void setOSPriorityImpl(int prio, int policy = 0); | |
| int getOSPriorityImpl() const; | | int getOSPriorityImpl() const; | |
|
| static int getMinOSPriorityImpl(); | | static int getMinOSPriorityImpl(int policy); | |
| static int getMaxOSPriorityImpl(); | | static int getMaxOSPriorityImpl(int policy); | |
| void setStackSizeImpl(int size); | | void setStackSizeImpl(int size); | |
| int getStackSizeImpl() const; | | int getStackSizeImpl() const; | |
| void startImpl(Runnable& target); | | void startImpl(Runnable& target); | |
| void startImpl(Callable target, void* pData = 0); | | void startImpl(Callable target, void* pData = 0); | |
| | | | |
| void joinImpl(); | | void joinImpl(); | |
| bool joinImpl(long milliseconds); | | bool joinImpl(long milliseconds); | |
| bool isRunningImpl() const; | | bool isRunningImpl() const; | |
| static void sleepImpl(long milliseconds); | | static void sleepImpl(long milliseconds); | |
| static void yieldImpl(); | | static void yieldImpl(); | |
| | | | |
| skipping to change at line 156 | | skipping to change at line 161 | |
| inline int ThreadImpl::getPriorityImpl() const | | inline int ThreadImpl::getPriorityImpl() const | |
| { | | { | |
| return _prio; | | return _prio; | |
| } | | } | |
| | | | |
| inline int ThreadImpl::getOSPriorityImpl() const | | inline int ThreadImpl::getOSPriorityImpl() const | |
| { | | { | |
| return _prio; | | return _prio; | |
| } | | } | |
| | | | |
|
| inline int ThreadImpl::getMinOSPriorityImpl() | | inline int ThreadImpl::getMinOSPriorityImpl(int /* policy */) | |
| { | | { | |
| return PRIO_LOWEST_IMPL; | | return PRIO_LOWEST_IMPL; | |
| } | | } | |
| | | | |
|
| inline int ThreadImpl::getMaxOSPriorityImpl() | | inline int ThreadImpl::getMaxOSPriorityImpl(int /* policy */) | |
| { | | { | |
| return PRIO_HIGHEST_IMPL; | | return PRIO_HIGHEST_IMPL; | |
| } | | } | |
| | | | |
| inline void ThreadImpl::sleepImpl(long milliseconds) | | inline void ThreadImpl::sleepImpl(long milliseconds) | |
| { | | { | |
| Sleep(DWORD(milliseconds)); | | Sleep(DWORD(milliseconds)); | |
| } | | } | |
| | | | |
| inline void ThreadImpl::yieldImpl() | | inline void ThreadImpl::yieldImpl() | |
| | | | |
End of changes. 6 change blocks. |
| 6 lines changed or deleted | | 11 lines changed or added | |
|
| WebSocketImpl.h | | WebSocketImpl.h | |
| // | | // | |
| // WebSocketImpl.h | | // WebSocketImpl.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Net/include/Poco/Net/WebSocketImpl.h#1 $ | | // $Id: //poco/1.4/Net/include/Poco/Net/WebSocketImpl.h#4 $ | |
| // | | // | |
| // Library: Net | | // Library: Net | |
| // Package: WebSocket | | // Package: WebSocket | |
| // Module: WebSocketImpl | | // Module: WebSocketImpl | |
| // | | // | |
| // Definition of the StreamSocketImpl class. | | // Definition of the StreamSocketImpl class. | |
| // | | // | |
| // Copyright (c) 2012, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2012, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 65 | | skipping to change at line 65 | |
| // StreamSocketImpl | | // StreamSocketImpl | |
| virtual int sendBytes(const void* buffer, int length, int flags); | | virtual int sendBytes(const void* buffer, int length, int flags); | |
| /// Sends a WebSocket protocol frame. | | /// Sends a WebSocket protocol frame. | |
| | | | |
| virtual int receiveBytes(void* buffer, int length, int flags); | | virtual int receiveBytes(void* buffer, int length, int flags); | |
| /// Receives a WebSocket protocol frame. | | /// Receives a WebSocket protocol frame. | |
| | | | |
| virtual SocketImpl* acceptConnection(SocketAddress& clientAddr); | | virtual SocketImpl* acceptConnection(SocketAddress& clientAddr); | |
| virtual void connect(const SocketAddress& address); | | virtual void connect(const SocketAddress& address); | |
| virtual void connect(const SocketAddress& address, const Poco::Times
pan& timeout); | | virtual void connect(const SocketAddress& address, const Poco::Times
pan& timeout); | |
|
| virtual void connectNB(const SocketAddress& address, const Poco::Tim
espan& timeout); | | virtual void connectNB(const SocketAddress& address); | |
| virtual void bind(const SocketAddress& address, bool reuseAddress =
false); | | virtual void bind(const SocketAddress& address, bool reuseAddress =
false); | |
| virtual void bind6(const SocketAddress& address, bool reuseAddress =
false, bool ipV6Only = false); | | virtual void bind6(const SocketAddress& address, bool reuseAddress =
false, bool ipV6Only = false); | |
| virtual void listen(int backlog = 64); | | virtual void listen(int backlog = 64); | |
| virtual void close(); | | virtual void close(); | |
| virtual void shutdownReceive(); | | virtual void shutdownReceive(); | |
| virtual void shutdownSend(); | | virtual void shutdownSend(); | |
| virtual void shutdown(); | | virtual void shutdown(); | |
| virtual int sendTo(const void* buffer, int length, const SocketAddre
ss& address, int flags = 0); | | virtual int sendTo(const void* buffer, int length, const SocketAddre
ss& address, int flags = 0); | |
| virtual int receiveFrom(void* buffer, int length, SocketAddress& add
ress, int flags = 0); | | virtual int receiveFrom(void* buffer, int length, SocketAddress& add
ress, int flags = 0); | |
| virtual void sendUrgent(unsigned char data); | | virtual void sendUrgent(unsigned char data); | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| WinRegistryConfiguration.h | | WinRegistryConfiguration.h | |
| // | | // | |
| // WinRegistryConfiguration.h | | // WinRegistryConfiguration.h | |
| // | | // | |
|
| // $Id: //poco/1.4/Util/include/Poco/Util/WinRegistryConfiguration.h#2 $ | | // $Id: //poco/1.4/Util/include/Poco/Util/WinRegistryConfiguration.h#3 $ | |
| // | | // | |
| // Library: Util | | // Library: Util | |
| // Package: Windows | | // Package: Windows | |
| // Module: WinRegistryConfiguration | | // Module: WinRegistryConfiguration | |
| // | | // | |
| // Definition of the WinRegistryConfiguration class. | | // Definition of the WinRegistryConfiguration class. | |
| // | | // | |
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | | // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | |
| // and Contributors. | | // and Contributors. | |
| // | | // | |
| | | | |
| skipping to change at line 75 | | skipping to change at line 75 | |
| | | | |
| protected: | | protected: | |
| ~WinRegistryConfiguration(); | | ~WinRegistryConfiguration(); | |
| /// Destroys the WinRegistryConfiguration. | | /// Destroys the WinRegistryConfiguration. | |
| | | | |
| bool getRaw(const std::string& key, std::string& value) const; | | bool getRaw(const std::string& key, std::string& value) const; | |
| void setRaw(const std::string& key, const std::string& value); | | void setRaw(const std::string& key, const std::string& value); | |
| void enumerate(const std::string& key, Keys& range) const; | | void enumerate(const std::string& key, Keys& range) const; | |
| void removeRaw(const std::string& key); | | void removeRaw(const std::string& key); | |
| | | | |
|
| std::string ConvertToRegFormat(const std::string& key, std::string&
keyName) const; | | std::string convertToRegFormat(const std::string& key, std::string&
keyName) const; | |
| /// takes a key in the format of A.B.C and converts it to | | /// takes a key in the format of A.B.C and converts it to | |
| /// registry format A\B\C, the last entry is the keyName, th
e rest is returned as path | | /// registry format A\B\C, the last entry is the keyName, th
e rest is returned as path | |
| | | | |
| private: | | private: | |
| std::string _rootPath; | | std::string _rootPath; | |
| REGSAM _extraSam; | | REGSAM _extraSam; | |
| }; | | }; | |
| | | | |
| } } // namespace Poco::Util | | } } // namespace Poco::Util | |
| | | | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|