2010-08-01 tommi@tntnet.org
 - release 2.0

2010-06-16 tommi@tntnet.org
 - flush textstream in finish method of xml- and jsonserializer

2010-06-07 tommi@tntnet.org
  - fix race condition in http server when handling idle sockets

2010-04-05 tommi@tntnet.org
 - add template class Argp for reading arguments with parameter and add unit tests for Arg* template classes

2010-03-24 tommi@tntnet.org
 - add support for TCP_DEFER_ACCEPT

2010-03-22 tommi@tntnet.org
 - support for out of tree builds

2010-03-19 tommi@tntnet.org
 - replace errorOccured signal with throwing errors in endXXX-methods

2010-03-07 tommi@tntnet.org
 - make url settable in http xmlrpc client

2010-03-02 tommi@tntnet.org
 - add new BasicEvent template for easier event definition and use it in http server

2010-02-27 tommi@tntnet.org
 - add template class for (thread-)queue
 - add support for listen on any socket and connect to any local by passing an empty ip address
 - run http server in event loop
 - add exited signal to event loop

2010-02-07 tommi@tntnet.org
 - accept gets a inherit flag instead of closeOnExec

2010-02-06 tommi@tntnet.org
 - add new class cxxtools::Cache

2010-02-05 tommi@tntnet.org
 - add mutex to service list in httpserver, so that other threads may add or
   remove services while the server is running

2010-02-04 tommi@tntnet.org
 - extend number of parameters in xmlrpc clienth from 5 to 10

2010-02-03 tommi@tntnet.org
 - add cancel method to http client, xmlrpc client and iodevice

2009-12-27 tommi@tntnet.org
 - remove cxxtools::Dynbuffer (use std::vector instead)

2009-12-22 tommi@tntnet.org
 - split pipe class into generic and posix specific functionality

2009-12-21 tommi@tntnet.org
 - remove old compatibility typedefs cxxtools::net::Server and cxxtools::net::Stream

2009-12-17 tommi@tntnet.org
 - new static methods Utf8Codec::encode and Utf8Codec::decode

2009-12-06 tommi@tntnet.org
 - make building of demos and unittests optional by configure flags --disable-demos and --disable-unittest

2009-11-16 tommi@tntnet.org
 - support for FD_CLOEXEC flag on sockets and support for accept4 (conditional by configure check)

2009-11-15 tommi@tntnet.org
 - improve Process class

2009-11-03 tommi@tntnet.org
 - merge cxxtools::ext::Pipe and cxxtools::Pipe into cxxtools::Pipe

2009-10-30 tommi@tntnet.org
 - make SimpleRefCounted the default in RefCounted again

2009-10-16 tommi@tntnet.org
 - new class cxxtools::net::AddrInfo, which encapsulates ip and port
 - let cxxtools::RefCounted use atomic_t
 - support for multiple listeners to httpserver

2009-09-06 tommi@tntnet.org
 - extract http code from xmlrpc client into a separate class

2009-08-28 tommi@tntnet.org
 - do not indent json by default but make it optional

2009-08-25 tommi@tntnet.org
 - support for chunked encoding transfer in http-client

2009-08-18 tommi@tntnet.org
 - add support for authentication to http server

2009-08-02 tommi@tntnet.org
 - add http authorization to http client

2009-07-05 tommi@tntnet.org
 - compile iconvstream only if explicitely configured

2009-07-03 tommi@tntnet.org
 - implement json serializer

2009-07-03 d-marc
 - added settings and xml serialization

2009-06-21 tommi@tntnet.org
 - add serialization for all std container templates

2009-06-12 tommi@tntnet.org
 - add new rpcclient and server demo rpcecho

2009-06-02 tommi@tntnet.org
 - propagte connect error in http client through errorOccured signal

2009-05-31 tommi@tntnet.org
 - serialization for std::deque

2009-05-28 tommi@tntnet.org
 - improved exception handling in xmlrpc

2009-05-27 tommi@tntnet.org
 - serializer for std::list and std::set

2009-04-04 tommi@tntnet.org
 - move http to a separate library
 - move net-headers to own subdirectory

2009-04-03 d-marc
 - throw on endConnect if connect failed

2009-04-03 d-marc
 - added xmlrpc library

2009-04-02 d-marc
 - added xml reader and writer

2009-04-02 d-marc
 - added serializer, deserializer and serializationinfo class

2009-04-01 d-marc
 - added stringstream

2009-04-01 d-marc
 - added codecs

2009-03-31 d-marc
 - added textstreams

2009-03-26 d-marc
 - added unicode capable string class

2009-03-26 tommi@tntnet.org
 - make httpserver multithreaded

2009-03-23 d-marc
 - added unicode char class

2009-03-23 d-marc
 - added getSystemTime method

2009-03-22 tommi@tntnet.org
 - http client rewritten and new http server

2009-02-27 tommi@tntnet.org
 - new FreeDestroyPolicy for smart pointers

2009-02-23 d-marc
 - added TCP iostream

2009-02-19 d-marc
 - added unit test for tcp

2009-02-18 d-marc
 - added unit testing library

2009-02-17 d-marc
 - sockets are always async

2009-02-16 tommi@tntnet.org
 - return std::string for ip adresses instead of system specific structure

2009-02-13 tommi@tntnet.org
 - make destroy policy methods of smart pointer public

2009-02-13 d-marc
 - added blocking connect

2009-02-11 d-marc
 - renamed to TcpServer

2009-02-10 d-marc
 - added signal for pending connections

2009-02-10 d-marc
 - TcpServersocket is a Selectable

2009-02-09 d-marc
 - moved tcp server socket to separate header

2009-02-09 d-marc
 - moved addrinfo to separate files

2008-12-19 d-marc
 - added streambuf for iodevices

2008-12-18 d-marc
 - added semaphore class

2008-12-17 d-marc
 - new classes EventLoop, Process, IODevice, Selectable, Selector, Application, Timer

2008-12-16 tommi@tntnet.org
 - new methods in pipe to easily redirect stdin, stdout and stderr

2008-12-16 tommi@tntnet.org
 - new method cxxtools::net::iostream::canRead()

2008-12-12 d-marc
 - added event soure and sink class

2008-12-02 d-marc
 - added singleton template and typetraits

2008-12-02 d-marc
 - added high precision system clock

2008-12-02 d-marc
 - added date and time classes

2008-12-01 tommi@tntnet.org
 - default to maxbackupindex of 2 instead of 10 in cxxtools-config-script

2008-12-01 tommi@tntnet.org
 - use spinlock instead of mutex in logger

2008-12-01 d-marc
 - added conversion algos

2008-11-26 d-marc
 - mutex class consolidation; Added more IOError types

2008-11-25 d-marc
 - added tryReadLock and tryWriteLock for ReadWriteMutex

2008-11-24 d-marc
 - added IOError and AccessFailed

2008-11-19 d-marc
 - renamed timedwait in condition

2008-11-05 tommi@tntnet.org
 - rename RWLock to RWMutex and add typedef for old name for compatibility

2008-11-04 d-marc
 - unified attached and detached thread classes

2008-10-30 d-marc
 - use callables as thread functors

2008-09-12 tommi@tntnet.org
 - add LGPL exception for large templates and macros

2008-08-14 d-marc
 - added tryLock method to SpinMutex

2008-08-08 tommi@tntnet.org
 - move mutex classes into separate files and add spinlock mutex

2008-07-03 tommi@tntnet.org
  - don't throw exceptions when logging fails

2008-06-18 tommi@tntnet.org
  - use non-atomic reference counting by default and add atomic refcounted class and smart pointer policy

2008-06-10 d-marc
  - added new file/dir API

2008-06-18 tommi@tntnet.org
  - split referencecounting into a thread safe and a non thread safe variant

2008-06-03 tommi@tntnet.org
  - release version 1.4.8

2008-05-02 tommi@tntnet.org
  - change the way of announcing configure results to headers

2008-05-01 tommi@tntnet.org
  - use pipl-idiom in cxxtools::Dir to remove needed includes in public header
  - allow ':' in httprequests and other small improvements and add
    documentation to http client classes
  - add wrapper for regex(3)

2008-03-31 marc
  - added conversion functions

2008-03-27 tommi@tntnet.org
  - increase default tcp buffer size from 256 to 8192 bytes

2008-03-09 tommi@tntnet.org
  - remove the queing of log messages since it was not reliable
  - translate api-documentation of network classes to english
  - add a flush parameter to cxxtools::net::Stream::write to allow partial
    writes and use this in cxxtools::net::iostream::overflow, so that overflow
    always tries to write the full buffer.

2008-02-21 tommi@tntnet.org
  - new command line utility cxxlog to use the logger in shell scripts

2008-12-27 tommi@tntnet.org
  - add classes for creation of mime mails

2007-11-13 tommi@tntnet.org
  - optimization of logging

2007-11-03 tommi@tntnet.org
  - functions for handling endianess (cxxtools/byteorder.h)
  - atomic increment and decrement wrappers (Marc)

2007-11-01 tommi@tntnet.org
  - cxxtools::Any and compile-time typeinfo (Marc)

2007-10-17 tommi@tntnet.org
  - remove libltdl code completely
  - implement destroy-policy for cxxtools::SmartPtr

2007-10-12 tommi@tntnet.org
  - signal-slot (Marc)

2007-09-16 tommi@tntnet.org
  - don't use libltdl by default since it brings more problems than it solves.
    On linux we need RTLD_GLOBAL in dlopen to make exceptions and rtti
    working. libltdl does not pass that flag. On Aix shared libraries has a
    extension .a by default, which is not recognized by libltdl.

2007-07-07 tommi@tntnet.org
  - rewritten ini-file-parser
  - make iconv unconditional and make iconv-buffer bigger for better
    performance
  - properties-file-parser

2007-07-06 tommi@tntnet.org
  - add policy based smart pointer implementation
  - add NonCopyable-class, which can be used as a base-class for objects,
    which must not be copied
  - fix bug in subtraction-method of cxxtools::HiresTime

2007-05-12 tommi@tntnet.org
  - logging can be disabled completely now in the logging-properties by
    setting disabled to 1 (or 'y' or 'Y' or 't' or 'T')

2007-05-11 tommi@tntnet.org
  - make cxxtools::Pool working again
  - build-improvements (port to solaris/SunStudio)

2007-05-04 tommi@tntnet.org
  - replace std::string with char* as a buffer in udpstream-class
  - remove RWLOCK_MUTEX_INITIALIZER because this is unknown on Mac OS X and
    the rwlock_t-structure is anyway initalized with pthread_rwlock_init

2007-05-03 tommi@tntnet.org
  - bugfix: clear buffer of udpstream after sending message
  - make cxxtools::socket::doPoll-method public and rename to poll

2007-04-26 tommi@tntnet.org
  - try next addrinfo, when socket-creation fails. Previously cxxtools fails
    to create a socket, if first addrinfo-entry does not work.

2007-04-20 tommi@tntnet.org
  - fix stream-classes to conform ANSI

2007-04-18 tommi@tntnet.org
  - remove double-lock in pool-class, which resulted in a deadlock on solaris

2007-04-17 tommi@tntnet.org
  - another change in initialization in std::ios-derived classes after reading
    the c++-standard (now std::ios::init is used for initialization)

2007-04-11 tommi@tntnet.org
  - don't pass uninitialized std::streabuf to base-class in classes
    derived from std::[io]stream. This should be ok, but at least
    Sun Studio 11 fails here.

2007-03-25 tommi@tntnet.org
  - replace semaphore with condition in cxxtools::Pool and make max-size
    of pool settable

2007-03-23 tommi@tntnet.org
  - add error-checking for glob in cxxtools::multifstreambuf

2007-02-20 tommi@tntnet.org

  - fix stupid bug in tcp-class. Stream reported eof when only part of
    data was written.

2007-01-24 tommi@tntnet.org

  - wrappers for fork(2) and pipe(2) and a std::iostream on top of pipe(2)
  - cxxtools::Fdstream: std::iostream for filedescriptors

2007-01-21 tommi@tntnet.org
  - support for udp-broadcast
  - don't throw exception in tcpstream, when connection is closed
    report eof instead

2007-01-15 tommi@tntnet.org

  - make offset in hexdumper settable
  - logging-improvement (don't try to output current logstatement when
    exception occurs during creation of log-message)
  - Condition::timedwait

2006-12-31 tommi@tntnet.org

  - improve eof-handling in socket-class

2006-12-28 tommi@tntnet.org

  - log process-id
  - bugfix in cxxtools::UdpReceiver: adress-length-field was not initialized

2006-12-20 tommi@tntnet.org

  - make constuctor for QueryParams::const_iterator explicit to prevent
    accidentally converting QueryParams-objects into const_iterator

2006-11-22 tommi@tntnet.org

  - make loggers more private and instantiate existing loggers later
  - "putchar" is a macro somewhere - rename member-method to workaround
    this name-conflict

2006-11-20 tommi@tntnet.org

  - fix tcpstream to correctly report end-of-file in all circumstances

2006-09-11 tommi@tntnet.org

  - fixed buffer-overflow in logger when formatting dates

2006-08-10 tommi@tntnet.org

  - new helper-class IConverter for easier usage of iconv(3) and iconvstream

2006-07-27 tommi@tntnet.org

  - fix iconvstream

2006-06-21 tommi@tntnet.org

  - license changed to LGPL

2006-05-24 tommi@tntnet.org

  - fix tcp-client: create socket when known, which to create
    this fixes also problems in running any applications on systems without
    IPv6

2006-04-27 tommi@tntnet.org

  - support for IPv6

2006-04-16 tommi@tntnet.org

  - fixes for AIX-compatibility

2006-04-06 tommi@tntnet.org

  - faster formatting of logmessages

2006-04-04 tommi@tntnet.org

  - flushdelay works now with rolling-files
  - ANSI-C++-fixes

2006-03-02 tommi@tntnet.org

  - new logging-parameter flushdelay, which speeds up logging
    by starting a backgroundthread, which flushes asynchronous

2005-01-20 tommi@tntnet.org

  - thread-classes simplified and demo improved
  - output of log-messages speed-optimized

2005-12-12 tommi@tntnet.org

  - improved error-checking in network-classes
  - logging integrated into base-lib (no libcxxtools-log.so any more)

2005-11-08 tommi@tntnet.org

  - cxxtools::Thread split into cxxtools::AttachedThread and cxxtools::DetachedThread

2005-11-04 tommi@tntnet.org

  - bugfix in cxxtools::HttpRequest

2005-09-18 tommi@tntnet.org

  - udp-reply

2005-07-19 tommi@tntnet.org

  - new namingconventions: classfiles start with capitals, methods with lower
    case
  - support for udp-messages (cxxtools::UdpSender, cxxtools::UdpReceiver)
  - logging through udp

2005-07-15 tommi@tntnet.org

  - fixed some method-names to conform common naming convetions

2005-06-18 tommi@tntnet.org

  - version 1.3.1 released
  - fixed copy-constructor for query_params

2005-01-29 tommi@tntnet.org

  - version 1.3.0 released
  - modified timeout-handling in tcpstream
  - simple http-client added
  - cxxtools::Condition is not derived from cxxtools::Thread any more

2005-01-05 tommi@tntnet.org

  - version 1.2.3 released
  - missing errno.h in iconvstream.cpp added
  - support in cxxtools::arg for multiple alternative switches
    in a single arg-variable (set-method)
  - use gethostbyname to determine address to listen, so you can
    specify a hostname as a listener-parameter

2004-12-14 tommi@tntnet.org

  - version 1.2.2 released
  - bug fixed: cxxtools::arg does not find user-specific inputstreamoperators
  - support for log4cxx
  - logging-library selectable at build-time

2004-12-03 tommi@tntnet.org

  - version 1.2.1 released
  - removed obsolete timeclass.cpp
  - switched dl-classes to libtool for better portability
  - skip iconvstream if libiconv is not installed
  - new library: logging-wrapper for log4cplus (log4cxx-support will follow)
  - simple lightweight logging-library as a alternative for log4cplus

2004-11-25 tommi@tntnet.org

  - version 1.2 released
  - all classes moved to namespace cxxtools
  - documentation-updates (most classes documented with doxygen-style comments

2004-11-11 tommi@tntnet.org

  - version 1.1.3 released
  - error in eof-handling in base64 fixed

 -- Tommi Maekitalo <tommi@epgmbh.de>  Thu, 11 Nov 2004 12:33:47 +0100

2004-11-03 tommi@tntnet.org

  - version 1.1.2 released
  - new class base64stream

2004-10-04 tommi@tntnet.org

  - use libtool/autoconf/automake

2004-09-16 tommi@tntnet.org

  - version 1.1 released
  - unused variable in tcpstream.h removed
    this breaks binary-compatibility

2004-03-23 tommi@tntnet.org

  - Initial Release 1.0.
