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


 File_UNIX.h   File_UNIX.h 
// //
// File_UNIX.h // File_UNIX.h
// //
// $Id: //poco/1.4/Foundation/include/Poco/File_UNIX.h#1 $ // $Id: //poco/1.4/Foundation/include/Poco/File_UNIX.h#3 $
// //
// Library: Foundation // Library: Foundation
// Package: Filesystem // Package: Filesystem
// Module: File // Module: File
// //
// Definition of the FileImpl class for Unix. // Definition of the FileImpl 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 83 skipping to change at line 83
void renameToImpl(const std::string& path); void renameToImpl(const std::string& path);
void removeImpl(); void removeImpl();
bool createFileImpl(); bool createFileImpl();
bool createDirectoryImpl(); bool createDirectoryImpl();
static void handleLastErrorImpl(const std::string& path); static void handleLastErrorImpl(const std::string& path);
private: private:
std::string _path; std::string _path;
friend class DirectoryIteratorImpl; friend class DirectoryIteratorImpl;
friend class LinuxDirectoryWatcherStrategy;
friend class BSDDirectoryWatcherStrategy;
}; };
// //
// inlines // inlines
// //
inline const std::string& FileImpl::getPathImpl() const inline const std::string& FileImpl::getPathImpl() const
{ {
return _path; return _path;
} }
 End of changes. 2 change blocks. 
1 lines changed or deleted 3 lines changed or added


 File_WIN32.h   File_WIN32.h 
// //
// File_WIN32.h // File_WIN32.h
// //
// $Id: //poco/1.4/Foundation/include/Poco/File_WIN32.h#1 $ // $Id: //poco/1.4/Foundation/include/Poco/File_WIN32.h#2 $
// //
// Library: Foundation // Library: Foundation
// Package: Filesystem // Package: Filesystem
// Module: File // Module: File
// //
// Definition of the FileImpl class for WIN32. // Definition of the FileImpl 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 85 skipping to change at line 85
void removeImpl(); void removeImpl();
bool createFileImpl(); bool createFileImpl();
bool createDirectoryImpl(); bool createDirectoryImpl();
static void handleLastErrorImpl(const std::string& path); static void handleLastErrorImpl(const std::string& path);
private: private:
std::string _path; std::string _path;
friend class FileHandle; friend class FileHandle;
friend class DirectoryIteratorImpl; friend class DirectoryIteratorImpl;
friend class WindowsDirectoryWatcherStrategy;
}; };
// //
// inlines // inlines
// //
inline const std::string& FileImpl::getPathImpl() const inline const std::string& FileImpl::getPathImpl() const
{ {
return _path; return _path;
} }
 End of changes. 2 change blocks. 
1 lines changed or deleted 2 lines changed or added


 File_WIN32U.h   File_WIN32U.h 
// //
// File_WIN32U.h // File_WIN32U.h
// //
// $Id: //poco/1.4/Foundation/include/Poco/File_WIN32U.h#1 $ // $Id: //poco/1.4/Foundation/include/Poco/File_WIN32U.h#2 $
// //
// Library: Foundation // Library: Foundation
// Package: Filesystem // Package: Filesystem
// Module: File // Module: File
// //
// Definition of the Unicode FileImpl class for WIN32. // Definition of the Unicode FileImpl class for WIN32.
// //
// 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 86 skipping to change at line 86
bool createFileImpl(); bool createFileImpl();
bool createDirectoryImpl(); bool createDirectoryImpl();
static void handleLastErrorImpl(const std::string& path); static void handleLastErrorImpl(const std::string& path);
private: private:
std::string _path; std::string _path;
std::wstring _upath; std::wstring _upath;
friend class FileHandle; friend class FileHandle;
friend class DirectoryIteratorImpl; friend class DirectoryIteratorImpl;
friend class WindowsDirectoryWatcherStrategy;
}; };
// //
// inlines // inlines
// //
inline const std::string& FileImpl::getPathImpl() const inline const std::string& FileImpl::getPathImpl() const
{ {
return _path; return _path;
} }
 End of changes. 2 change blocks. 
1 lines changed or deleted 2 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


 LogFile_STD.h   LogFile_STD.h 
// //
// LogFile_STD.h // LogFile_STD.h
// //
// $Id: //poco/1.4/Foundation/include/Poco/LogFile_STD.h#1 $ // $Id: //poco/1.4/Foundation/include/Poco/LogFile_STD.h#2 $
// //
// Library: Foundation // Library: Foundation
// Package: Logging // Package: Logging
// Module: LogFile // Module: LogFile
// //
// Definition of the LogFileImpl class using iostreams. // Definition of the LogFileImpl class using iostreams.
// //
// 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 55 skipping to change at line 55
namespace Poco { namespace Poco {
class Foundation_API LogFileImpl class Foundation_API LogFileImpl
/// The implementation of LogFile for non-Windows platforms. /// The implementation of LogFile for non-Windows platforms.
/// The native filesystem APIs are used for /// The native filesystem APIs are used for
/// total control over locking behavior. /// total control over locking behavior.
{ {
public: public:
LogFileImpl(const std::string& path); LogFileImpl(const std::string& path);
~LogFileImpl(); ~LogFileImpl();
void writeImpl(const std::string& text); void writeImpl(const std::string& text, bool flush);
UInt64 sizeImpl() const; UInt64 sizeImpl() const;
Timestamp creationDateImpl() const; Timestamp creationDateImpl() const;
const std::string& pathImpl() const; const std::string& pathImpl() const;
private: private:
std::string _path; std::string _path;
mutable Poco::FileOutputStream _str; mutable Poco::FileOutputStream _str;
Timestamp _creationDate; Timestamp _creationDate;
}; };
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 LogFile_VMS.h   LogFile_VMS.h 
// //
// LogFile_VMS.h // LogFile_VMS.h
// //
// $Id: //poco/1.4/Foundation/include/Poco/LogFile_VMS.h#1 $ // $Id: //poco/1.4/Foundation/include/Poco/LogFile_VMS.h#2 $
// //
// Library: Foundation // Library: Foundation
// Package: Logging // Package: Logging
// Module: LogFile // Module: LogFile
// //
// Definition of the LogFileImpl class using C I/O with OpenVMS extensions. // Definition of the LogFileImpl class using C I/O with OpenVMS extensions.
// //
// 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 56 skipping to change at line 56
class Foundation_API LogFileImpl class Foundation_API LogFileImpl
/// The implementation of LogFile for OpenVMS. /// The implementation of LogFile for OpenVMS.
/// The C Standard Library functions for file I/O /// The C Standard Library functions for file I/O
/// are used with OpenVMS-specific extensions to /// are used with OpenVMS-specific extensions to
/// control sharing and locking behavior. /// control sharing and locking behavior.
{ {
public: public:
LogFileImpl(const std::string& path); LogFileImpl(const std::string& path);
~LogFileImpl(); ~LogFileImpl();
void writeImpl(const std::string& text); void writeImpl(const std::string& text, bool flush);
UInt64 sizeImpl() const; UInt64 sizeImpl() const;
Timestamp creationDateImpl() const; Timestamp creationDateImpl() const;
const std::string& pathImpl() const; const std::string& pathImpl() const;
private: private:
std::string _path; std::string _path;
mutable FILE* _file; mutable FILE* _file;
Timestamp _creationDate; Timestamp _creationDate;
}; };
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 LogFile_WIN32.h   LogFile_WIN32.h 
// //
// LogFile_WIN32.h // LogFile_WIN32.h
// //
// $Id: //poco/1.4/Foundation/include/Poco/LogFile_WIN32.h#1 $ // $Id: //poco/1.4/Foundation/include/Poco/LogFile_WIN32.h#2 $
// //
// Library: Foundation // Library: Foundation
// Package: Logging // Package: Logging
// Module: LogFile // Module: LogFile
// //
// Definition of the LogFileImpl class using the Windows file APIs. // Definition of the LogFileImpl class using the Windows file APIs.
// //
// 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 55 skipping to change at line 55
namespace Poco { namespace Poco {
class Foundation_API LogFileImpl class Foundation_API LogFileImpl
/// The implementation of LogFile for Windows. /// The implementation of LogFile for Windows.
/// The native filesystem APIs are used for /// The native filesystem APIs are used for
/// total control over locking behavior. /// total control over locking behavior.
{ {
public: public:
LogFileImpl(const std::string& path); LogFileImpl(const std::string& path);
~LogFileImpl(); ~LogFileImpl();
void writeImpl(const std::string& text); void writeImpl(const std::string& text, bool flush);
UInt64 sizeImpl() const; UInt64 sizeImpl() const;
Timestamp creationDateImpl() const; Timestamp creationDateImpl() const;
const std::string& pathImpl() const; const std::string& pathImpl() const;
private: private:
void createFile(); void createFile();
std::string _path; std::string _path;
HANDLE _hFile; HANDLE _hFile;
Timestamp _creationDate; Timestamp _creationDate;
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 LogFile_WIN32U.h   LogFile_WIN32U.h 
// //
// LogFile_WIN32U.h // LogFile_WIN32U.h
// //
// $Id: //poco/1.4/Foundation/include/Poco/LogFile_WIN32U.h#1 $ // $Id: //poco/1.4/Foundation/include/Poco/LogFile_WIN32U.h#2 $
// //
// Library: Foundation // Library: Foundation
// Package: Logging // Package: Logging
// Module: LogFile // Module: LogFile
// //
// Definition of the LogFileImpl class using the Windows file APIs. // Definition of the LogFileImpl class using the Windows file APIs.
// //
// 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 55 skipping to change at line 55
namespace Poco { namespace Poco {
class Foundation_API LogFileImpl class Foundation_API LogFileImpl
/// The implementation of LogFile for Windows. /// The implementation of LogFile for Windows.
/// The native filesystem APIs are used for /// The native filesystem APIs are used for
/// total control over locking behavior. /// total control over locking behavior.
{ {
public: public:
LogFileImpl(const std::string& path); LogFileImpl(const std::string& path);
~LogFileImpl(); ~LogFileImpl();
void writeImpl(const std::string& text); void writeImpl(const std::string& text, bool flush);
UInt64 sizeImpl() const; UInt64 sizeImpl() const;
Timestamp creationDateImpl() const; Timestamp creationDateImpl() const;
const std::string& pathImpl() const; const std::string& pathImpl() const;
private: private:
void createFile(); void createFile();
std::string _path; std::string _path;
HANDLE _hFile; HANDLE _hFile;
Timestamp _creationDate; Timestamp _creationDate;
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 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


 UnWindows.h   UnWindows.h 
// //
// UnWindows.h // UnWindows.h
// //
// $Id: //poco/1.4/Foundation/include/Poco/UnWindows.h#1 $ // $Id: //poco/1.4/Foundation/include/Poco/UnWindows.h#2 $
// //
// Library: Foundation // Library: Foundation
// Package: Core // Package: Core
// Module: UnWindows // Module: UnWindows
// //
// A wrapper around the <windows.h> header file that #undef's some // A wrapper around the <windows.h> header file that #undef's some
// of the macros for function names defined by <windows.h> that // of the macros for function names defined by <windows.h> that
// are a frequent source of conflicts (e.g., GetUserName). // are a frequent source of conflicts (e.g., GetUserName).
// //
// Remember, that most of the WIN32 API functions come in two variants, // Remember, that most of the WIN32 API functions come in two variants,
skipping to change at line 89 skipping to change at line 89
#undef CreateProcess #undef CreateProcess
#undef GetCommandLine #undef GetCommandLine
#undef GetEnvironmentVariable #undef GetEnvironmentVariable
#undef SetEnvironmentVariable #undef SetEnvironmentVariable
#undef ExpandEnvironmentStrings #undef ExpandEnvironmentStrings
#undef OutputDebugString #undef OutputDebugString
#undef FindResource #undef FindResource
#undef UpdateResource #undef UpdateResource
#undef FindAtom #undef FindAtom
#undef AddAtom #undef AddAtom
#undef GetSystemDirector #undef GetSystemDirectory
#undef GetTempPath #undef GetTempPath
#undef GetTempFileName #undef GetTempFileName
#undef SetCurrentDirectory #undef SetCurrentDirectory
#undef GetCurrentDirectory #undef GetCurrentDirectory
#undef CreateDirectory #undef CreateDirectory
#undef RemoveDirectory #undef RemoveDirectory
#undef CreateFile #undef CreateFile
#undef DeleteFile #undef DeleteFile
#undef SearchPath #undef SearchPath
#undef CopyFile #undef CopyFile
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 Version.h   Version.h 
// //
// Version.h // Version.h
// //
// $Id: //poco/1.4/Foundation/include/Poco/Version.h#9 $ // $Id: //poco/1.4/Foundation/include/Poco/Version.h#11 $
// //
// Library: Foundation // Library: Foundation
// Package: Core // Package: Core
// Module: Version // Module: Version
// //
// Version information for the POCO C++ Libraries. // Version information for the POCO C++ Libraries.
// //
// Copyright (c) 2004-2012, Applied Informatics Software Engineering GmbH. // Copyright (c) 2004-2012, Applied Informatics Software Engineering GmbH.
// and Contributors. // and Contributors.
// //
skipping to change at line 55 skipping to change at line 55
// - AA is the major version number, // - AA is the major version number,
// - BB is the minor version number, // - BB is the minor version number,
// - CC is the revision number, and // - CC is the revision number, and
// - DD is the patch level number. // - DD is the patch level number.
// Note that some patch level numbers have // Note that some patch level numbers have
// a special meaning: // a special meaning:
// Dx are development releases // Dx are development releases
// Ax are alpha releases // Ax are alpha releases
// Bx are beta releases // Bx are beta releases
// //
#define POCO_VERSION 0x01040300 #define POCO_VERSION 0x01040400
#endif // Foundation_Version_INCLUDED #endif // Foundation_Version_INCLUDED
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 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

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/