#13795: Initial commit for sflphone-android

includes: libexpat libyaml libdbus-c++ commoncpp ccrtp
          libdbus (from android-4.0.4 sources)

TODO:
- git ignores "/jni/sflphone", sflphone repo should be cloned.
- sflphone-android only needs daemon directory. Ideally it should be possible
to clone it without cloning the whole sflphone project.
into sfl-android (commit 6a0fa7a "#13961: Fix cipher handling" has been used here)
- add pjsip-android project as a git submodule
- sflphone-android needs pjsip android project. Ideally daemon git repository
should not embed pjsip. Instead pjsip should be clone from official repositories.

Considering this, structure should have three distincts git repos:

sflphone-android/.git
sflphone-android/jni/ccrtp-1.8.0-android
sflphone-android/jni/commoncpp2-1.8.1-android
sflphone-android/jni/dbus
sflphone-android/jni/libdbus-c++-0.9.0-android
sflphone-android/jni/libexpat
sflphone-android/jni/libyaml

sflphone-android/jni/sflphone-daemon/.git
sflphone-android/jni/sflphone-daemon/src/audio
sflphone-android/jni/sflphone-daemon/src/config
sflphone-android/jni/sflphone-daemon/src/dbus
sflphone-android/jni/sflphone-daemon/src/history
sflphone-android/jni/sflphone-daemon/src/hooks
sflphone-android/jni/sflphone-daemon/src/iax
sflphone-android/jni/sflphone-daemon/src/sip
sflphone-android/jni/sflphone-daemon/src/video

sflphone-android/jni/pjsip-android/.git

Signed-off-by: Emeric Vigier <emeric.vigier@savoirfairelinux.com>
diff --git a/jni/commoncpp2-1.8.1-android/ChangeLog b/jni/commoncpp2-1.8.1-android/ChangeLog
new file mode 100644
index 0000000..46eb6eb
--- /dev/null
+++ b/jni/commoncpp2-1.8.1-android/ChangeLog
@@ -0,0 +1,1053 @@
+From Common C++ 1.8.0 to 1.8.1
+- zero length udp in sender and peer.
+- use of long int in sock option.
+- various exception fixes.
+- thread subscribe/unsubscribe fix.
+
+From Common C++ 1.7.3 to 1.8.0
+- sigwait argument detection fixed for pedantic compiles.
+- pedantic fixups for gcc 4.4
+- application logging
+- patch for persistant stream compression
+- patch for linked object insert placement
+- patch for linked double insert method
+
+From Common C++ 1.7.2 to 1.7.3
+- missing dccp demo apps and socket exceptions added.
+
+From Common C++ 1.7.1 to 1.7.2
+- missing server accept constructor for DCCP sockets.
+- fix ThreadQueue win32 compile error
+- update test
+- missing get{Tx,Rx}CCID methods for DCCP sockets.
+- fix wrong type for setCCID method
+- demo app for dccp sockets
+
+From Common C++ 1.7.0 to 1.7.1
+- const fix from Marty Jack.
+- memory leak fixed for ThreadLock.
+- dccp socket support contributed by Leandro Melo de Sales and David Sugar.
+
+From Common C++ 1.6.4 to 1.7.0
+- Pedantic code cleanup.
+- Some fix for multicast.
+
+From Common C++ 1.6.3 to 1.6.4
+- New library naming policy for RPM packages
+
+From Common C++ 1.6.2 to 1.6.3
+- Debian patches applied upstream
+- Some code cleanup
+
+From Common C++ 1.6.1 to 1.6.2
+- fix pointer.h for recursive/multiple include
+- dsp files updated.
+
+From Common C++ 1.6.0 to 1.6.1
+- some fixups for mingw32 based builds
+
+From Common C++ 1.5.9 to 1.6.0
+- patch for ThreadQueue from Angelo Naselli
+- patch for LinkedDouble from Sergio Repetto, changed abi.
+
+From Common C++ 1.5.7 to 1.5.9
+- changes for make-in-place builds
+- a few gentoo patches, such as for --as-needed build link option and for
+  gnutls/openssl selection
+
+From Common C++ 1.5.6 to 1.5.7
+- fix for w32 overlapped serial i/o from Thomas Pfaff
+- downstream gcc 4.3 and isRunning fix from Mark Purcell
+- sha digest cleanup
+
+From Common C++ 1.5.5 to 1.5.6
+- visibility for shared library symbols
+- upstream debian patches
+
+From Common C++ 1.5.4 to 1.5.5
+- missing lz in ccext2.pc, ssl/zstream links for libccext2 in 
+  src/Makefile.am
+
+From Common C++ 1.5.3 to 1.5.4
+- hi resolution and monotonic timers for TimerPort
+- TimerPort synchronized sleep
+- Mingw compile fix for ll consts in epoch calculation
+- Angelo Naselli's revised timed buffer thread queue
+- other minor patches and fixes, code cleanup
+- fixes for mingw32 (cross compile) targets and building dll's
+- fix for relative build path in configure
+
+From Common C++ 1.5.2 to 1.5.3
+- some code cleanup of operators and const members
+- removal of -local-data hook in main Makefile for ease of 
+  cross-compiler use
+
+From Common C++ 1.5.1 to 1.5.2
+- fix for include path passed in .pc files.
+- small Solaris patch
+
+From Common C++ 1.5.0 to 1.5.1
+- gnutls support used for SSLStream
+
+From Common C++ 1.4.3 to 1.5.0
+- added IPV4/V6Cidr objects for use in routing policies.
+- removed libxml2 wrapper option so we can better focus on Common C++'s
+  built-in sax parser.
+- addition of "clean" MemPager protected member, used by Keydata to
+  assure dynamic object behavior is correct and non-leaking.
+
+From Common C++ 1.4.2 to 1.4.3
+- fix for getThread id if priv is NULL.
+- fix for extern "C" of handlers and types.
+- fix for keydata loadPrefix for w32.
+- use readData/writeData for overflow/underflow in TCPStream to allow
+  override in SSLStream
+- optional introduction of SSLStream class
+- new SSLStream class cannot be built substituting gnutls yet because 
+  openssl emulation is not thread-safe and so class must be rewritten 
+  explicitly for gnutls.  Hence for now ssl is disabled by default
+- one small change to w32 serial
+
+From Common C++ 1.4.1 to 1.4.2
+- fix for possible race condition in detach
+- fix for url.get with relocated objects without path
+- use of MSG_NOSIGNAL in ::send( to avoid signals with disconnect
+- a fix for mingw32 and file.cpp
+
+From Common C++ 1.4.0 to 1.4.1
+- set etctest correctly for posix targets with forced sysconfdir.
+
+From Common C++ 1.3.26 to 1.4.0
+- Templates no longer DLL export managed.  Explicit DLL interface instanciation 
+  is now recommended instead for building native .dll's with templates 
+  on broken Microsoft compilers.
+- export templates cleaned up and __EXPORT_TEMPLATE added
+- RefPointer and RefObject classes for reference count managed objects
+- LinkedSingle and LinkedDouble self managing linked list classes
+- MapTable and mapObject classes for managed hash indexes
+- Some convenience functions for keydata
+- conditional build for extras library
+- isRealtime check for thread priority management
+- moved templates into main header
+
+From Common C++ 1.3.25 to 1.3.26
+- page request overflow triggers abort.
+- small code cleanups.
+- keydata uses bigger default paging for >32 bit pointers.
+- new errLockFailure indicator for Thread shared files.
+- added exception handling for SocketService and SerialService constructors.
+
+From Common C++ 1.3.24 to 1.3.25
+- fix for XMLRPC
+- bindings for templates in dll's
+
+From Common C++ 1.3.23 to 1.3.24
+- persistance engine exceptions unified
+
+From Common C++ 1.3.22 to 1.3.23
+- fix for std:: in mutex.cpp.
+
+From Common C++ 1.3.21 to 1.3.22
+- some fixups for casting for w32.
+- new spec file...
+- small fix for socket writeData and url parsing.
+- allow SO_REUSEADDR in w32...
+- fix w32 socket disconnect.
+- _POSIX_PTHREAD_SEMANTICS defined before signal.h
+- freebsd6 nat fix
+- improvements in generated documentation
+
+From Common C++ 1.3.20 to 1.3.21
+- use ios header for gcc atomics
+- spec file fixed
+- fix for null keys for Keydata loadFile
+
+From Common C++ 1.3.19 to 1.3.20
+- fix for pthread platforms with expiration....
+- always explicity set protocol numbers for tcp & udp
+- fix for some header inlines and define checks...
+
+From Common C++ 1.3.18 to 1.3.19
+- fix w32/Makefile.bcc error in clean target when -DBMODE=DEBUG
+- fix tests/thread1.cpp to compile with Microsoft Visual C++ 6.0
+- fix Microsoft build file line end convention from -kb to -ko
+- fix for w32 TCPSession connect issue
+ 
+From Common C++ 1.3.17 to 1.3.18
+- fix for w32 platform sdk/ipv6 dependencies and entanglements from Pino
+- fix for Borland w32 from Pino
+
+From Common C++ 1.3.16 to 1.3.17
+- freebsd nanosleep define fix
+
+From Common C++ 1.3.15 to 1.3.16
+- inline header fix.
+
+From Common C++ 1.3.14 to 1.3.15
+- dupString added as alias to newString.
+- parent notify disabled, in case parent already deleted, will be fixed
+  later by using tids...
+
+From Common C++ 1.3.13 to 1.3.14
+- some fixups for AIX and Visual Age C++.
+
+From Common C++ 1.3.12 to 1.3.13
+- fix for automake generated install of ccgnu2-config.
+- important fix for string class from Migel Nick.
+- setUpper/setLower added.
+
+From Common C++ 1.3.11 to 1.3.12
+- some stuff for fussy compilers.
+- fix for w32 setting of active thread id.
+- better deadlock debugging support
+- mutex deadlock trace support added for win32.
+
+From Common C++ 1.3.10 to 1.3.11
+- socket public inheritence for SimpleTCPStream.
+
+From Common C++ 1.3.9 to 1.3.10
+- fix for macosx 10.4
+
+From Common C++ 1.3.8 to 1.3.9
+- fix for socket.cpp from Uwe Buchholz
+- fix for suspend/resume and exchange atomics..
+
+From Common C++ 1.3.7 to 1.3.8
+- fix for missing mime.cpp
+
+From Commom C++ 1.3.6 to 1.3.7
+- start of MIME multipart support
+- seperate test for mlock()
+- better support for w32 vs6 with platform sdk installed; ipv6 now enabled!
+
+From Common C++ 1.3.5 to 1.3.6
+- fix for w32 gettimeofday implimentation.
+
+From Common C++ 1.3.4 to 1.3.5
+- fix critical bug in assoc getPointer().
+- alternate keydata constructor.
+
+From Common C++ 1.3.3 to 1.3.4
+- detached thread exiting cleanup (posix).
+- fix for more general case multicast when no interface binding on posix.
+- GNU/Hurd target support.
+
+From Common C++ 1.3.2 to 1.3.3
+- multicast support for w32 platform from dmcamens patch.
+- kill final delete this in TCPSession and add virtual destructor.
+- added virtual destructor for TTYSession, UnixSession
+
+From Common C++ 1.3.1 to 1.3.2
+- fix for keydata exit close on non-opened objects.
+- string.h pragma pack wrapped.
+- pkgconfig fix for libccext2.pc.
+- gcc atomics patch
+- HAVE_SNPRINTF defined for docs
+- posix getValue for semaphore removed.
+
+From Common C++ 1.3.0 to 1.3.1
+- serialization of pairs...
+- run-list non-blocking callback semaphore-like operation class
+- fix for demo tcpservice
+- fix for TTYStream underflow.
+- fix for missing overlap on strlcpy/strlcat
+- two level /etc check
+- security fix; keydata config file paths can no longer be "relocated"
+  through environment manipulation!  "CONFIG_KEYDATA" env gone!
+- security fix; config files must be root owned or match process uid
+- virtuals no longer have inline defs
+- update to change exception notice to match GNU libstdc++ runtime exception.
+- named assoc misc base class.
+
+From Common C++ 1.2.4 to 1.3.0
+- separation of tested Common C++ compile options from passed CXXFLAGS
+- Buffer class moved into base library
+- getopt moved to ext library
+- Buffer, sockt streaming, and xml 64 bit clean...breaks prior signatures
+- new compressed stream classes
+- use of conditional to impliment posix semaphore class!  Timed 
+  semaphore support in both win32 and posix.
+- system-wide Lockfile class.
+- killed old fifo class.
+- new memory locking options for MappedFile.
+- more portable process system / resource info functions
+- portable lastAccessed and lastModified functions
+- better support for posix realtime extensions
+- some tru64 configure issues resolved
+- all uses of signal use Process:: based signal classes build from 
+  sigaction rather than default "signal()" function, hence behavior
+  is known and consistent.
+- hpux loader fix
+- start of transitional interface to using getaddrinfo and char strings
+  for fast connection lookup.  Eventually all classes will use this 
+  method by 1.4.0 (as well as retaining current methods by addr object).
+- odd tcpstream class family gone; TCPStream can now be used same way.
+- demo apps updated for new interfaces
+- socketport moved to ccext2
+- greater flexibility in use of Keydata objects and new keydump demo app.
+- StringTokenizer moved to ext library
+- tcp streaming rewritten to make use of segment sizing and buffering.
+- local build instance defaults can be in ~/.configure.
+- MemPagerObject and StringObject added to live in pager memory.
+- DirTree added to walk recursive directory structures quickly.
+- StackPager to cache objects.
+- new OST_CCXX2_CHECK macro for cleaner autoconf/automake interface.
+- support of IPV6 for w32 target when built native from vs.net.
+- windows registry support for keydata.
+- updated for latest FreeBSD, OpenBSD, and NetBSD.
+
+From Common C++ 1.2.3 to 1.2.4
+- patch for url proxy by Andrey Kulikov
+- fix for ambigious exception handling
+- Chad Yates patches for unit tests and persistence engine
+- Ricardo Gameiro's nat/netfilter support
+
+From Common C++ 1.2.2 to 1.2.3
+- w32 mutex now possible to base on critical section or w32 mutex using
+  kulikov patch.
+- save stack value for w32 thread start, which was moved to start().
+- only use alignmed pages in MemPager for those systems which require
+  BYTE_ALIGNMENT > 1.
+- fixes for platforms which emulate recursive mutex behavior based on
+  Conditional's emulation code.
+- w32 specific thread attributes now hidden in priv data structure.
+- support for more unix targets...
+- support for cygwin dll compile...
+- more 64 bit clean
+- borlandc makefile updates and compile fixes from Darko
+- tmpString broken, dangerous, and removed!  
+
+From Common C++ 1.2.1 to 1.2.2
+- fix for datetime constructor.
+- w32 distributed build issues.
+- vic fix for some w32 builds on atomics and setAddress.
+
+From Common C++ 1.2.0 to 1.2.1
+- major fix for deleting dummy thread when shadowing non-commonc++ 
+  threads.
+
+From Common C++ 1.1.9 to 1.2.0
+- initial ipv6 support!
+- MemPager uses posix_memalign to align allocated pages when available.
+- now uses pkgconfig system.
+- more String functions.
+- ability to use std::string in String constructor.
+- Conditional & Event now uses ordinary (non-recursive) mutex!
+- Marcelo patches for EXPORTS and m4 underquoting.
+- fix for win32 restartable threads.
+- some fixes tried for signal handled quit when no immediate cancel.
+- use of enterCancel/exitCancel for building cancellation point wrappers.
+- w32 file access and isPending operations now cancellation points 
+  through enterCancel/exitCancel for more consistent behavior with 
+  posix which treats select/poll/read/write as cancellation point.
+- fix for broken signaling version code to clear act structure.
+- added Thread::sync() for suspending until cancel/join.
+- socket close order changed.
+- faster atomic ops, aix atomic support.
+- cleanup of endian detection.
+
+From Common C++ 1.1.8 to 1.1.9
+- second fix in date.cpp and unquoted definition in m4 files, from 
+  Marcelo Dalmas
+- make sure original object exists in TTYStream during closure.
+- consistent type casting of String for exceptions.
+- fix String operator=.
+
+From Common C++ 1.1.7 to 1.1.8
+- use /etc/configure.conf for options as well as ~/.configure.
+- reconfig supports aclocal path option and ~./configure options.
+- improved handling of connetError when thrown as exception to make
+  sure stream is correct.
+- fix for process deamonfy attach.
+- SysTime patch to support re-entrant time.
+- fix shadowing of parms and members.
+
+From Common C++ 1.1.6 to 1.1.7
+- doxygen/docgen cleanup patch from Matthew Burgess.
+- automake patch for newer automake from Matthew Burgess.
+- readdir_r patch from Vyacheslav Hryhoryev.
+- some fix for configure.in and package build for rpm.
+
+From Common C++ 1.1.5 to 1.1.6
+- some changes in include path versioning.
+- some changes for /opt vs "lsb compliant" /opt paths.
+- possible race condition fix in terminate!
+- extra safety check for slog.
+
+From Common C++ 1.1.4 to 1.1.5
+- improved /opt prefix and lsb layout handling.
+- improved PATH stuff to find configure.
+- fixes for gcc-3.4.0.
+- patch for Time::getTime.
+- patch for PosixThread::waitSignal.
+
+From Common C++ 1.1.3 to 1.1.4
+- fix for ETC_PREFIX setting.
+- getThread changed for less confusion, member version now ::get.
+- fix for string assignment overuse.
+
+From Common C++ 1.1.2 to 1.1.3
+- --with-lsb=name option to build lsb compliant package.
+- major fix for String class copy, assignment, and space reuse.
+
+From Common C++ 1.1.1 to 1.1.2
+- fix typo in serial.cpp.
+- CBuilder patch for borland compilers & w32 targets.
+- match change in numbers for dealing with const values.
+- fix in ThreadQueue code.
+- path fixups in w32 dsp projects.
+- qnx6 compile fixes for serial.cpp and network.cpp.
+- more compiler optimizations when not using exceptions.
+- clarification of w32 build projects and new common workspace.
+
+From Common C++ 1.1.0 to 1.1.1
+- use CCXX_EXCEPTIONS for old HAVE_EXCEPTION_HANDLING
+- some compile fixups for use when no exception handling is available
+- "configure --without-exceptions" can now be used!  Also kills rtti
+  and adds omit-frame-pointer optimization back in.  This can be used
+  to produce smaller and more efficient code for targetted uses.
+  NOTE: some broken c++ stdlibs have inline dynamic_cast's in common
+  headers and hence can NEVER be compiled -fno-rtti.
+- support for new ~/.configure mechanism for setting default options.
+- fix potential memory leak in self exiting threads, and more advanced
+  support for "join" method with immediate stack cleanup on posix.
+- fix for pathname not properly initialized in main RandomFile 
+  constructor.
+- new --without-libxml2 and --without-compression options to further
+  optimize library.
+- missing __EXPORT for ThreadQueue.
+- Jeffry Reed's string patch for stl use.
+- fix for w32 "syslog" logging.
+- fix for w32 terminate setting self to NULL when not terminating self.
+- new automatic stack frame locking objects for member function calls
+  including semaphore and read/write locks.
+- new automatic cancellation object to do stack frame automatic setting
+  and auto-restore on exit of cancel modes.
+- Abid Taraben's patch for overlapped serial i/o.
+- mempager alignment patch
+- auditing for use of safe string functions.
+- added new safe string functions "newString" and "tmpString" to get
+  strings from memory and stack frame.
+
+From Common C++ 2 1.0.x and 1.1.0 beta to 1.1.0 release
+- merge of 1.1.0 beta and 1.0.x source trees
+- configure system updated for autoconf 2.5x or later.
+- fix of ssl Makefile
+- new Process methods for managing process user identity
+- expansion of Dir class to many more dir operations and iterator
+  behavior
+- patch for persist for namespace situations
+- portable filename manipulations
+- realpath() support and emulation for systems without.
+- Common C++ String class introduced
+- Date functions now use new string class
+- Date class now uses iso date formats as standard
+- Network class updated for new string class
+- embed memmove code for portability.
+- make use of win32 version of snprintf.
+- use const for mempager string alloc.
+- consolidation of missing libc functions.
+- fix for Conditional::wait().
+- keydata now has win32 specific mode for parsing .ini files and support
+  for other keydata extensions.
+- xml support now always enabled; if libxml2 is not found, a new built in 
+  C++ coded mini-xml parser (non-validating, fairly simple) will be used!  
+  The mini-parser will be expanded to support "well formedness" detection and
+  improved over time...
+- win32 support for mapped files and other features!
+- Digest::initDigest is now public instead of protected.
+- TCPStream "printf" method.
+- varous slog methods (error, info, etc) can do varargs.
+- setAutostack used as global means to tune posix stack usage.
+- emulate detached for w32 and detached threads now auto delete on exit
+
+From Common C++ 2 1.0.0 to 1.1.0 (beta set)
+- include/cc++/socket.h: doc. updated to new constants and Win32 implementation
+- src/xml.cpp: bug fixes from Norber Koch.
+- doc/Doxyfile and many header files: fixed doxygen warnings and included demos
+- doc/commoncpp2.texi, doc/fdl.texi, doc/fdlnotice.texi, doc/gpl.texi: 
+  OVERVIEW.TXT formatted in texinfo and partially updated.
+- doc/developer/CodingStyle and doc/developer/PortingProblem incorporated to 
+  doc/commoncpp2.texi
+- win32: appended d to MSVC debug libraries. Fixed warnings from VC7.
+- include/cc++/url.h: splitted into url.h and urlstring.h so that
+  ccgnu2.dll does not depend on ccext2.dll.
+- start of experimental GNU Common C++ "ssl" stream class support and new 
+  libccssl library.
+- "common.reg" for win32 registry initialization of CONFIG_KEYDATA stuff
+  planned.
+- src/url.cpp: small fix from David Genest.
+- src/date.cpp, include/cc++/numbers.h: patches from Norbert Koch
+- configure.in, include/cc++/xml.h, src/xml.cpp and url.cpp, 
+  win32/cc++/config.h: HAVE_SSTREAM #ifdefs
+- src/simplesocket.cpp, include/cc++/socket.h, src/Makefile.am,
+  win32/Makefile.gcc, win32/ccgnu2.dsp: added SimpleTCPStream from Mark Millard
+- commoncpp2.spec.in, Makefile.am: fixes for correctly building rpms from
+  Marcelo Dalmas
+- piostream from Daniel E Baumann.
+  acconfig.h, configure.in: added --with-piostream configure option.
+  new headers in include/cc++/: piostream, pistream, pistream.tcc, postream, 
+	postream.tcc, pios, piosfwd, pios_init.h (Makefile.am also updated)
+  new sources in src/: pios.cpp, pio_globals.cpp (Makefile.am also updated)
+  new demos in demo/: pio.cpp (Makefile.am also updated)
+  win32/Makefile.gcc, win32/CCXX2demo.dsw, win32/demo/pio.dsp
+  src/private.h, include/cc++/thread.h: added Thread::getThreadID().
+- fix (constructor parameters) for serialecho demo from Daniel E Baumann.
+- include/cc++/piomanip, include/cc++/Makefile.am, demo/pio.cpp: added 
+  manipulators for piostreams from Daniel E. Baumann.
+- src/serial.cpp: fixed recursive call in ttystream::close().
+- exception construction fix.
+- src/port.cpp: fixed TimerPort::getElapsed() Win32 implementation.
+- src/thread.cpp:(Win32) sleep(0) replaced with sleep(1) -from Leonard Thornton
+- acconfig.h, m4/ost_pthread.m4: removed HAVE_ASM_ATOMIC... checks and defines
+  -From Mark Purcell
+- thread.cpp: siginstall renamed to sigInstall to match declaration in thread.h
+- src/socket.cpp, src/peer.cpp, src/port.cpp, simplesocket.cpp, unix.cpp: 
+	before ::connect, change INADDR_ANY to INADDR_LOOPBACK so that it 
+	does not crash on Win32.
+- include/cc++/socket.h, src/port.cpp: non-blocking outboud tcp	connection
+	constructor for SocketPort from Christian Prochnow
+- include/cc++/xml.h, src/xml.cpp: rearranged xml related #ifdefs.
+- include/cc++/file.h: File::Access and File::Error are now public.
+- include/cc++/network.h, src/network.cpp, include/cc++/common.h: new 
+	NetworkDeviceInfo class, from Christian Prochnow. netdevices demo.
+- acconfig.h, m4/ost_reentrant.m4, include/cc++/exception.h, 
+  include/cc++/ftp.h, include/cc++/socket.h, src/exception.cpp, src/ftp.cpp,
+  src/port.cpp, src/socket.cpp, demo/tcp.cpp: better error/exception messages
+  for socket classes, from Christian Prochnow.
+- include/cc++/numbers.h: CCXX_CLASS_EXPORT Time and DateTime.
+- include/cc++/digest.h, src/sha.cpp, demo/shadigest.cpp: new SHA1Digest and
+	SHA256Digest classes, from Elizabeth Barham.
+- src/file.cpp: fixes for open, fetch, update and append methods from 
+	Andrew L. Shwaika
+- src/ost_check2.m4: added OST_CCXX2_XML, from Ari Johnson.
+- include/cc++/thread.h, src/thread.cpp: added support for periodic itimer
+	based timers, from Jakob Skov-Pedersen.
+- include/cc++/thread.h, src/thread.cpp: added Thread::join, from Jakob
+	Skov-Pedersen.
+- configure.in, src/Makefile.am demo/Makefile.am, tests/Makefile.am, and
+	several source files: added '-Wall -ansi -pedantic' compiling options
+	and corrected the warnings that show up, from Albert Strasheim.
+- src/thread.cpp: detached threads created with detach attribute.
+- src/thread.cpp, include/cc++/thread.h: isDetached() support.
+- src/thread.cpp: close fix if deleted, detached threads loose parent.
+- demo/thread3.cpp: test whether thread cancel unwinds stack frame and
+	calls destructors on auto objects.
+- src/dir.cpp, include/cc++/file.h: dir object has close member now.
+- include/cc++/socket.h: added InetAddress assignment operator
+	from unsigned int, from Mark Purcell and Gerhard Tonn.
+- include/cc++/urlstring.h, src/urlstring.cpp: new b64 encode and
+	        decode methods for string. From Chad Yates.
+- configure.in, src/Makefile.am: added --with-cppunit option and
+	WITH_CPPUNIT_TESTS conditional.
+- tests/Makefile.am, SampleObject.h, SampleSubObject.h,
+	Test_Date.h, Test_Digest.h, Test_Engine.h, Test_SHATumbler.h,
+	Test_URLString.h, ccxx_tests.cpp SampleObject.cpp
+	SampleSubObject.cpp, Test_Date.cpp, Test_Digest.cpp,
+	Test_Engine.cpp, Test_SHATumbler.cpp, Test_URLString.cpp: new
+	cppunit based test suite, From Chad Yates.
+- win32/CCXX2tests.dsw, win32/tests/ccxx_testsuite.dsp: added
+	project file for the new test suite, from Chad Yates.
+- tests/Test_TCPStream.h, tests/Test_TCPStream.cpp: new test, from Chad Yates.
+- include/cc++/socket.h, src/socket.cpp: new read and write methods for socket,
+        and new getInterfaceIndex and join (with interface specifier)
+	methods, from Donald Wycoff.
+	
+From Common C++ 2 1.0rc2 to 1.0.0
+- Added timeout optional parameter to TTYStream and URLStream constructors.
+- include/cc++/strchar.h: removed deprecated and unused #include <strstream>.
+- rpm specs updated to build optional extras package and devel package.
+- include/cc++/ftp.h, src/ftp.cpp: fixed namespaces.
+- src/url.cpp: more improvements from Norbert Koch. removed #include <strstream>
+- template/template.h: removed cc++/string.h and cc++/objkeys.h (missing)
+- Other fixes so that all templates compile.
+	
+From Common C++ 2 1.0rc1 to Common C++ 2 1.0rc2
+- url.cpp split between url.cpp and urlstring.cpp; urlstring.cpp part of
+  libccgnu2.
+- ccgnu2-config reports version as "1.0.0" to fix problems with config
+  scripts.
+	
+From Common C++ 2 0.99.7 to Common C++ 2 1.0rc1
+- updated mingw32 support from Frederico!
+- post updates for even better mingw32 builds...
+- all win32/posix sources merged.
+- new ccgnu2.dll and ccext2.dll split dll build.
+- include/cc++/digest.h: CRC32Digest exported for dll's
+- include/cc++/xml.h, src/xml.cpp: XMLRPC fixed and improved with patches 
+  from Norbert Koch. Now uses the newer <sstream> rather than <strstream>.
+- include/cc++/digest.h, include/cc++/slog.h: removed unused <strstream> -nkoch
+- src/mempager.cpp: added std namespace to endl -nkoch
+- include/cc++/misc.h: used the [] version of delete -Mike Suchoff
+- some persist patches from Pierre Bacquet.
+- PersistException now derived from Exception.
+- XML support, demo and tests workspaces for MSVC++.
+	
+From Common C++ 2 0.99.6 to Common C++ 2 0.99.7
+- slight restructure of libs and we make sure -lc_r is inserted for 
+  FreeBSD
+- support --with-pthread= option to specify pthread library directly.
+- support for new pthread flag and function tests
+- support for virtual i/o methods in URLStream for possible async i/o
+  override.
+- win32 serial support from Leonard Thornton.
+- serial i/o can be overloaded for async i/o methods.
+- added --with-linuxthreads option for FreeBSD with Linux threads support.
+
+From Common C++ 2 0.99.5 to Common C++ 2 0.99.6
+- fix for freebsd build and ports
+- addition of kdevelop project
+- added getCount to Keydata
+- added configure --with-ftp option
+- fix for FreeBSD segfault when destroying main thread!
+- cygwin dll builds now work automatically with latest cygwin!
+
+From Common C++ 2 0.99.4 to Common C++ 2.0 0.99.5
+- fixed memory leak in thread creation?
+- fix small bug in regression test.
+
+From Common C++ 2 0.99.2 (2pre2) to Common C++ 2 0.99.3 (2pre3)
+- fixed compile with STLport (tested on Linux and FreeBSD)
+- use only needed include (including all cause some problem with gcc 2.95.3)
+- compile getopt_long if not available
+- SocketService now work on win32
+- Removed global sleep and yield
+- Make Thread::sleep and Thread::yield static members
+- fixed bug in StringTokenizer
+- Added constructor to PosixThread
+- used private implementation for Thread
+- removed global ccxx_sleep and ccxx_yield
+- made Thread::sleep and Thread::yield static member
+- Fixed bug on cygwin
+
+From Common C++ 2 0.99.1 (2pre1) to Common C++ 2 0.99.2 (2pre2)
+- cleanup of URLStream
+- fixed buffer overflow in Socket::readLine
+- fixed buffer overflow in b64Encode
+- new base64 function
+- fix timeout hang using URLStream
+- fixed socket duplication for win32 
+- fixed handle leak in thread (win32)
+
+From GNU Common C++ 1.9.5 to GNU Common C++ 2 0.99.1 (2.0pre-1)
+- new "common.h" master include file to simplify library use.
+- contributed unix socket i/o class.
+- fixed memory leak when calling getThread from non Common C++ thread.
+- updated some documentation
+- put some global enum inside class (URLStream and Thread)
+- implement SocketPort/SocketService in win32
+  (not stable, test required)
+  (ReadFile on anonymous pipe is blocking... it not work)
+- getThread in win32 now alloc a new Thread class
+- correct Thread::isRunning behaviour in win32
+- start implementing THREAD_CANCEL_MANUAL on win32
+- other minor fix on win32 implementation of Thread
+- Anad Narwi's url interface binding patch.
+- fix for some problem with Solaris and some version of g++
+- fix for detecting atomic operations on no i386 machine
+- made some automatic regression tests (tests directory)
+- fix md5 calculation on 64bit machine (like alpha)
+- fix some buffer overflow on base64 encoding
+- fix memory leak and signal registering problem on Thread class
+- many other small fixes
+- written a coding style convenction (see doc/developer/CodingStyle)
+  and applied to code (this broken compatibility with old cc++1)
+- change include method assusing uniqueness (<cc++/xxx.h> even for cc++2)
+- added a common.h header to include all stuff of cc++ with a single include
+
+From Common C++ 1.9.4 to 1.9.5
+- xml.h header fixes.
+- some fixes from Vladimir Kokovic.
+- new "win32/Makefile.gcc" to build mingw32 cross targets.
+- lots of changes for suspend and such from Freddy.
+- some AIX cleanups from Bernhard Tummer.
+
+From Common C++ 1.9.3 to 1.9.4
+- cygwin and pthread_suspend/continue support!
+- virtual to add to generated http headers.
+- fix for Solaris and atomic
+- XMLRPC core support.
+- base64 character encoding.
+- patch from Barnaby Gray for SocketPort.
+
+From Common C++ 1.9.2 to 1.9.3
+- fixup of defines.
+- fix of UDPSocket::getPeer
+- can use --without-xml to disable xml support.
+- LoadPrefix option for keydata parsing.
+- slog patch for locals from Marcelo
+- date patch from Marcelo
+
+From Common C++ 1.9.1 to 1.9.2
+- many small changes for HP/UX and other oddities from Peter Koerber.
+- support for echo in slog.
+- fixes in udp for use with new ccrtp release.
+
+From Common C++ 1.9.0 to 1.9.1
+- small fixes in socket code.
+- fix for gcc 3.0 problems in new code.
+- make sure sigwait always shielded by HAVE_SIGWAIT2.
+- a lot of corrected headers for win32 exports.
+- some fixes for older gcc compilers.
+
+From Common C++ 1.5.1 to 1.9.0
+- unsigned long arg for setCompletion for win32.
+- mutex change for win32.
+- Federico's patch for atomic counters with old kernels.
+- Merged source trees for pending 2.0 release.
+- Frederico's patchs for multicast for use with ccrtp.
+- fixed FILE_GET_METHOD to close any leftover socket first.
+- fixed close socket in file open in URLStream.
+- added syslog test and generic syslog support.
+- added Slog to win32.
+- Date and Time classes being added.
+- number manipulations and random number generation being added.
+- cvs COMMONV2 defined in automake for splitting release builds.
+- cvs configure.in has new flag option for --with-v2.
+- added string.h for 1.6.1 and above so people can get used to using it.
+- timeout fix for TCPSTream from Tommi Makitalo.
+- "ost" namespace support added.
+- new Exception class hierarchy.
+- dynamic loading info exported thru ccgu-config.
+- source directories merged and libraries redistributed.
+- Common C++ template library added.
+
+From Common C++ 1.5.0 to 1.5.1
+- some further changes and corrections for gcc 3.0.
+- fix from adam for autoconf 2.50 bug.
+- namespace tweaks.
+- added COMMON_XML_PARSING to test for XML support.
+- new contributed socket port demo.
+- added Wallace Owens patch to support NoDelay socket option.
+- added Craig Emery's patch for port numbers in urls.
+- changed DSO loader by adding alternate constructor to pass lazy
+  option to dlopen linker.
+- big change in auto-detect for iostream support.  Old style iostream
+  constructors with explicit init now used when autoconf detected.  This
+  fixes segfaults for many older C++ ansi libraries.
+- setLinger option added for ending sockets.
+- some Solaris patches from Radu Greab.
+
+From Common C++ 1.4.3 to 1.5.0
+- fix for out of data exception handling in persistance engine.
+- added timeout option to Readline() method.
+- added timeout to TTYStream and TCPStream object for future timed i/o.
+- changed slog.open() to support basis for win32 slog and portable use
+  of passing argv[0] to get a daemon name and in win32 a log file path.
+- timeout control for underflows and url streaming.
+- added Conditional to posix synchronization objects.
+- changes for gcc 3.0
+- added elapsed time for timer ports.
+- better support for thread priority scheduling.
+- SysV semaphore support option.
+- setCompletion now bool and in socket "flags".
+- streaming and timeout fixes based on suggestions from Macro Coulombe.
+
+From Common C++ 1.4.2 to 1.4.3
+- fix for freebsd build checks.
+- inf. timeout in wait event.
+- InetAddress count initialization and delete of null lists.
+- no longer use shutdown when closing sockets in case the object
+  was "dupped" since newer kernels pass shutdown thru all instances.
+- make friends __EXPORT in win32 as suggested by Hwu
+- added Wolfgang Schmieder's changes to enable common directory to be
+  used with MSVC project.
+- fixed execHandler to set _tid to self.
+- patch from Eric Peters related to polling with timer signal handlers.
+- added Suspend and Resume to win32 threads.
+- added Detach() as alternate Start() method.
+- notification of parent threads more restrictive.
+- other win32 fixes including items not initialized in constructors.
+
+From Common C++ 1.4.1 to 1.4.2
+- xmlfetch and test.xml work file in demo directory test xml parsing.
+- setFollow() option for urlstream.
+- setProtocol() option for urlstream.
+- install our autoconf macros locally.
+
+From Common C++ 1.4.0 to 1.4.1
+- for posix build, -DSTLPORT removed from ccgnu-config --flags.
+- FreeBSD ports collection package building restored to Common C++.
+- fix for Serial I/O attribute setting.
+- fix problem for keydata reaching eof.
+- improved detection of libxml2.
+
+From Common C++ 1.3.3 to 1.4.0
+- Meno Abels provided a great little patch for using STLPORT with Common C++
+- added "-with-stlport[=dir]" to configure to enable STLPORT usage
+  and specify where STLPORT is.
+- fix for intel solaris.
+- added multicast to socket support.
+- made URLStream work and have added urlfetch demo code.
+- URLStream extended features added.
+- new method of handling Common C++ Win32 "dllexport" vs "dllimport";
+  export.h included during dll build to export remaining symbols,
+  otherwise cc++ headers always act as "import" for target app.
+- XMLStream parser added to posix tree, uses libxml2 underneath.
+- Fuller support for HTTP/1.1 including "chunked" transfer encoding.
+- URLStream seperated from "socket" code for easier editing.
+
+From Common C++ 1.3.2 to 1.3.3
+- added httpHeader to allow derived object to receive and parse headers.
+- added -I and -L flags to ccgnu-config.
+- OST_CCXX_VERSION macro added to check for a minimum version of CommonC++:
+  OST_CCXX_VERSION([MINIMUM-VERSION [,ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]]])
+- make sure getThread returns _mainthread if no threads are active.
+- ost_commoncxx.m4 merged with ost_check.m4.
+- added testCancel for non-yielding test.
+- socket address structures pre-initialized to zero.
+- added cmdoptions from Gianni@mariani.ws
+- sem_getvalue added to Semaphore class.
+- millisecond timers with itimer option.
+- cleanup for inaddr.cpp and Borland C++ compiler.
+- fixed and improved Borland C++ makefiles.
+- keydata now 32 chars.
+
+From Common C++ 1.3.1 to 1.3.2
+- fix for SunOS and other minor target compile issues.
+- fix for iflag vs lflag for flow control settings.
+- url client processing classes added.
+- borland compile fixes from Rupert Curwen.
+- RTLD_GLOBAL added for DSO loading.
+- zoner's suggested use of Event class for thread cancellation control.
+
+From Common C++ 1.3.0 to 1.3.1
+- new multi-host support in socket address classes.
+- fix for segfault in fifo objects.
+- serial i/o and multi-address changes suggested by Gary Murphy.
+
+From Common C++ 1.2.6 to 1.3.0
+- UDPTransmit/UDPReceive/UDPDuplex classes redesigned based on ccrtp
+  work.  These now form base RTP stack components rather than duplicated
+  in ccrtp.  Matches ccrtp 0.3.0 release.
+- slog now uses thread-safe buffering to assure consistency.
+- exception handling mode is now part of thread rather than global, and
+  is inherited from parent to child.
+- restructure address class slightly to allow symbolic hostnames to be
+  used in base InetAddress object.
+- select rather than "poll" is the preferred default method of pending
+  and selection timeouts if sys/stream.h is also present.  This is to cover
+  systems which do not impliment "poll" for socket descriptors or outside
+  of stream device drivers.
+- new ccgnu-config mechanism to get attributes and compiler options.
+- new test for single argument sigwait for older sunos, etc.
+- test for namespace support.  Common C++ will soon use namespaces.
+- fix for win32 socket.h problems.
+- updated as protected members buffer manipulation.
+- doxygen now used for documentation.
+- added ETC_PREFIX for locating config files.
+- late addition, hashing function classes.
+- getThread() must create temp thread objects if unknown threads found...
+
+From Common C++ 1.2.5.1 to 1.2.6
+- fix inaddr locking in posix for non-threadsafe host address lookup.
+- updated TCPSocket for isPendingConnection in win32 sources.
+- added _POSIX_PTHREAD_SEMANTICS to "config.h"
+- default all sockets to SO_REUSEADDR
+- fix for duplex interconnect.
+- fix for socket ports from Petr Ferschmann
+- new global exception handling control.
+
+From Common C++ 1.2.5 to 1.2.5.1
+- nessisary fix because fpathconf doesnt link correctly in FreeBSD.
+
+From Common C++ 1.2.4 to 1.2.5
+- some fix for new resolver for sun.
+- --enable-profiling and --enable-debug added to "configure"
+- change setsockopt for broadcast
+- added serial example from Gary Lawrence.
+- some fixes suggested for IRIX compatibility.
+- one fix for FreeBSD pthread usage.
+- test whether compiler supports "mutable" members.
+
+From Common C++ 1.2.3 to 1.2.4
+- updated solaris sigwait use.
+- fixed win32 typo.
+- new threadsafe resolver support.
+
+From Common C++ 1.2.2 to 1.2.3
+- updated mempager for auditing correctly.
+- fixed stream constructor issues.
+- changed xxxStream base classes so streambuf always first for ?broken?
+  compilers.
+- changes for memory leak issues.
+- uflow problem in TCPStream has been fixed. Thanks to Gerald L. Gay.
+
+From Common C++ 1.2.1 to 1.2.2
+- support for FreeBSD dynamic loader.
+
+From Common C++ 1.2.0 to 1.2.1
+- now must define __USE_GNU to work with newest GLIBC.
+- debian packaging addded.
+- fix include for common subdirectory and multi-target builds.
+- John Connor's fixes for nonblocking win32 sockets when supported,
+  for a win32 implimentation of setCompletion, and for other win32
+  improvements.
+- setSpeed of Serial class accepts 0 parameter which does a modem "hang up".
+- fixed inaddr issue with "INADDR_ANY" miscast as char.
+
+From Common C++ 1.1.0 to 1.2.0
+- making a whole stuff const where needed and appropriate,
+  and did many cleanups regarding constness etc.
+- cleaned up configuration process
+- fixed typo in win32 mutex.
+- bind address "*" = 0.0.0.0
+- iostream is constructed with streambuf argument in for the
+  TTYStream class similar to TCPStream; now TTYStream and
+  ttystream class works properly.
+- resolved interesting inline issue with == and bool coercion.
+- added powerful StringTokenizer
+- added macros for older source compatibility
+- recursive mutex fix
+- added FreeBSD "ports" package build to distribution.
+- added stream aware isPending for TTYStream and TCPStream, and made
+  isPending base virtual.
+
+From Common C++ 1.0.3 to 1.1.0
+- pthread.m4 supports cross compiler sys-include directory
+- support of "thread.h" header other than sunos.
+- unsigned socklen_t for unixware.
+- use of XOPEN removed from file.cpp.
+- use of sys/termiox.h with unixware.
+- unixware now cross-compiles gcc 2.95.2!  May need "-D_THR_UNIXWARE" native.
+  Some of the changes for Unixware may also work for AIX.
+- thread initiation and signal handling now thru "C" friend functions.
+- new poll service for SocketService and SerialService; not binary
+  compatible with old library.
+- new win32 mutex code that supports winnt/win95/win98 from Michael
+  Furmanczyk.
+- fix getIndex.
+
+From Common C++ 1.0.2 to 1.0.3
+- more setsockopt problems on different platforms.
+- support of -lthread check for Unixware.
+- some additional cross compiler build support.
+
+From Common C++ 1.0.1 to 1.0.2
+- close _cancellation handle in win32 thread object.
+- fix mutexcounter usage for host protection.
+- replaced tid_t with cctid_t to avoid AIX collision.
+- odd VC quirks.
+- tcpservice.cpp demo app contributed by Gianni Mariani.
+- TryEnterMutex added to win32
+- fixed a number of socket options
+- fixed bug in mapped file without initial map
+
+From Common C++ 1.0.0 to 1.0.1
+- fcntl.h now tested for in autoconf system, as well as sys/fcntl.h.
+- fixed atomic.h test to include test for atomic_t.
+- cleaned up delayed connection code in posix tree.
+- caddr_t (a bsdism) introduced as a general purpose type.
+- moved __EXPORT from class definition so kdoc can process.
+- __EXTENSIONS__ added for Solaris
+- we took in some FreeBSD 4.0 patches.
+- TCPStream and Serial sync is public.
+- fixed fatel crash when loading more than one dso!
+
+From Common C++ 0.9.7 to GNU package Common C++ 1.0.0
+- more liberal use of namespace.h.
+- split of Common C++ between GNU Common C++ and "Extras" libraries.
+- overview documentation.
+- official designation as a GNU package.
+- changed win32 "remove" to "DeleteFile".
+- missing int() operator in posix AtomicCounter.
+- endian testing added.
+
+From Common C++ 0.9.6 to 0.9.7
+- local config file access bug (~/.xxxrc) in keydata fixed.
+- cfgfile closure bug in keydata fixed.
+- isDir, isFile, and isDevice checks added.
+- canAccess and canModify checks added.
+- simple DSO support for win32 added.
+- new level option to control and filter slog() logging.
+- major work done on win32 support for (cross)compiling under mingw32 &
+  cygwin32.
+- Fixed InterlockExchangeAdd support in win32 which seems missing.
+
+From Common C++ 0.9.5 to 0.9.6
+- typo fix in socket.h for evaluating open ttystream's.
+- added ldconfig to RPM spec.
+- AtomicCounter class contributed by Sean Cavanaugh.
+- Rewritten file classes based on new RandomFile base.
+- old win32 "fileio" routines removed.
+- zip target in main Makefile for building distribution for windows users.
+- serial I/O name processing improved in ttystream::open.
+- certain runtime optimizations crash gcc exception handling and are
+  now stripped as part of the OST_CXX_EXCEPTIONS macro.
+
+From Common C++ 0.9.4 to 0.9.5
+- intruduce mutex protected mempager.
+- getLocal() added to TCPSocket.
+- alloc() and first() now virtual memory allocators.
+- slog() also invokes clog() if not running as true daemon.
+- empty slog() used for continuation lines.
+- DSO getError() added for catch handlers.
+- start of Bayonne script engine code.
+- new and much simpler autoconf macros for building user applications.
+- a simple low level directory scanning class was added.
+- some stream fixes from Fulko Hew
+- new handling of Solaris thread.h include for use with cross-compiling.
+- spec and lsm file automated.
+- rwlock support for thread synchronization added!
+
+From Common C++ 0.9.3 to 0.9.4
+- operator!() for tcpstream updated in socket.h
+- new "slog" syslog facility; similar to "clog" buffered error messages.
+- isPending() fixed in win32 for infinite timeout support.
+- Persistence TypeManager suffered with some problems. They should be fixed
+- typos in socket fixed from contributed changes by Fulko Hew.
+- ..and a semaphore fix for win32.
+- added virtual methods for extending serial and socket service threads.
+- endSocket() cleaned up in win32.
+- endSocket() cleaned up in posix.
+- final was missed in win32.
+- fifo stream support added.
+- not all compilers considered ~ operator valid for mutexcounter.  The
+  host lookups now implicity call base class LeaveMutex directly.
+- setb fix for stream handlers.
+- set failbit on stream socket/serial errors.
+- StringFunctionMap has to be public to compile.
+- sync stream method handlers no longer clear get buffer.
+- sync simplified further, and dummy doallocate added.
+
+From Common C++ 0.9.2 to 0.9.3
+- Woops!  serial.cpp was supposed to build in libccio.so, not libccxx.so!
+- autoconf options loader has been fixed and improved.
+- html.cpp temporarily pulled; incomplete linkage.
+- zstream added to config.def.
+- fix in keydata.cpp for "/etc/".
+- config.def simplified!
+
+From Common C++ 0.9.1 to 0.9.2
+- Socket::Terminate changed to Socket::endStream to avoid confusion
+  with Thread::Terminate when using derived TCPSession class.
+- win32 updated to include new "tcpstream"; tcp.cpp demo should be
+  usable under win32 again.
+- == operator moved to InetAddress base class.
+- ! operator added for testing if an InetAddress is valid.
+- turn of throw error handling on SocketPort once service thread
+  takes over.  This is nessisary since throw is not inter-thread.
+- test for "poll()" now used for isPending support.
+- thread Final() method was called too early for self deleting objects.
+- timerport moved from socket.h to thread.h
+- posix streamable C++ serial port I/O classes added.
+- fixed 64 bit types for Tru64 Unix.
+- fixed warnings in persist, engine, and html classes.
+
+From Common C++ 0.9.0 to 0.9.1
+- implementation of MutexCounter operator ~ matches prototype.
+- last fileio.h reference squashed. 
+- fixed win32 "install.bat"; still thought it was APE
+- added dummy macros.h for win32.
+- fixed posix/trunk.h inclusion of macros.h.
+- fixed int64 type check.
+
+From APE 1.2.3 and Common C++ 0.2 to Common C++ 0.9.0
+- Found big bug in Thread::Start().  Replaced ++_start with _start->Post().
+- Modified tcpthread.cpp demo app.
+- Oh, lots of stuff changed for the merged code base...
+- Added ~ operator for MutexCounter so catch handler can unlock. 
+
+
+
+