Browse Source

+ Added streamcoll

git-svn-id: trunk@5026 -
michael 19 years ago
parent
commit
c32ba4f211
4 changed files with 460 additions and 101 deletions
  1. 1 0
      .gitattributes
  2. 99 99
      fcl/Makefile
  3. 2 2
      fcl/Makefile.fpc
  4. 358 0
      fcl/inc/streamcoll.pp

+ 1 - 0
.gitattributes

@@ -891,6 +891,7 @@ fcl/inc/rtfpars.pp svneol=native#text/plain
 fcl/inc/rttiutils.pp svneol=native#text/plain
 fcl/inc/rttiutils.pp svneol=native#text/plain
 fcl/inc/simpleipc.pp svneol=native#text/plain
 fcl/inc/simpleipc.pp svneol=native#text/plain
 fcl/inc/ssockets.pp svneol=native#text/plain
 fcl/inc/ssockets.pp svneol=native#text/plain
+fcl/inc/streamcoll.pp svneol=native#text/plain
 fcl/inc/streamex.pp svneol=native#text/plain
 fcl/inc/streamex.pp svneol=native#text/plain
 fcl/inc/streamio.pp svneol=native#text/plain
 fcl/inc/streamio.pp svneol=native#text/plain
 fcl/inc/syncob.inc svneol=native#text/plain
 fcl/inc/syncob.inc svneol=native#text/plain

+ 99 - 99
fcl/Makefile

@@ -1,5 +1,5 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2006/10/17]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2006/08/20]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-palmos arm-wince arm-gba powerpc64-linux
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-palmos arm-wince arm-gba powerpc64-linux
@@ -356,250 +356,250 @@ ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_DIRS+=xml image db shedit passrc net fpcunit web
 override TARGET_DIRS+=xml image db shedit passrc net fpcunit web
 endif
 endif
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf
 endif
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-win32)
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf
 endif
 endif
 ifeq ($(FULL_TARGET),i386-os2)
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  resolve ssockets
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf
 endif
 endif
 ifeq ($(FULL_TARGET),i386-beos)
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  process ssockets resolve fpasync simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync simpleipc dbugmsg dbugintf
 endif
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf
 endif
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
 ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netware)
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  resolve ssockets
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  process ssockets resolve fpasync simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync simpleipc dbugmsg dbugintf
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf
 endif
 endif
 ifeq ($(FULL_TARGET),i386-emx)
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  resolve ssockets
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  resolve ssockets syncobjs
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  resolve ssockets syncobjs
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wince)
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  process ssockets resolve fpasync simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync simpleipc dbugmsg dbugintf
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  process ssockets resolve fpasync simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync simpleipc dbugmsg dbugintf
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  process ssockets resolve fpasync simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync simpleipc dbugmsg dbugintf
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
 ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
 ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  process ssockets resolve fpasync simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync simpleipc dbugmsg dbugintf
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf
 endif
 endif
 ifeq ($(FULL_TARGET),arm-linux)
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf
 endif
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
 ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),arm-wince)
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf
 endif
 endif
 ifeq ($(FULL_TARGET),arm-gba)
 ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree htmldefs xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf
 endif
 endif
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-win32)
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-os2)
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-beos)
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
 ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netware)
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-emx)
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wince)
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
 ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
 ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),arm-linux)
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
 ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),arm-wince)
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),arm-gba)
 ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLEDIRS+=tests
 override TARGET_EXAMPLEDIRS+=tests
@@ -2011,8 +2011,8 @@ ifeq ($(FULL_TARGET),i386-go32v2)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_PASJPEG=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-win32)
 ifeq ($(FULL_TARGET),i386-win32)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
@@ -2053,8 +2053,8 @@ ifeq ($(FULL_TARGET),i386-beos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_PASJPEG=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 ifeq ($(FULL_TARGET),i386-netbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
@@ -2083,15 +2083,15 @@ ifeq ($(FULL_TARGET),i386-qnx)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_PASJPEG=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netware)
 ifeq ($(FULL_TARGET),i386-netware)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_PASJPEG=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
 ifeq ($(FULL_TARGET),i386-openbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
@@ -2111,8 +2111,8 @@ ifeq ($(FULL_TARGET),i386-wdosx)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_PASJPEG=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
 ifeq ($(FULL_TARGET),i386-darwin)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
@@ -2140,15 +2140,15 @@ ifeq ($(FULL_TARGET),i386-watcom)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_PASJPEG=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
 ifeq ($(FULL_TARGET),i386-netwlibc)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_PASJPEG=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wince)
 ifeq ($(FULL_TARGET),i386-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
@@ -2208,15 +2208,15 @@ ifeq ($(FULL_TARGET),m68k-amiga)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_PASJPEG=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
 ifeq ($(FULL_TARGET),m68k-atari)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_PASJPEG=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
 ifeq ($(FULL_TARGET),m68k-openbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
@@ -2236,8 +2236,8 @@ ifeq ($(FULL_TARGET),m68k-palmos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_PASJPEG=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
 ifeq ($(FULL_TARGET),powerpc-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
@@ -2272,15 +2272,15 @@ ifeq ($(FULL_TARGET),powerpc-amiga)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_PASJPEG=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
 ifeq ($(FULL_TARGET),powerpc-macos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_PASJPEG=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
 ifeq ($(FULL_TARGET),powerpc-darwin)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
@@ -2301,8 +2301,8 @@ ifeq ($(FULL_TARGET),powerpc-morphos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_PASJPEG=1
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
@@ -2398,8 +2398,8 @@ ifeq ($(FULL_TARGET),arm-palmos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_PASJPEG=1
 endif
 endif
 ifeq ($(FULL_TARGET),arm-wince)
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
@@ -2415,8 +2415,8 @@ ifeq ($(FULL_TARGET),arm-gba)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_PASJPEG=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
@@ -2822,7 +2822,7 @@ ifeq ($(CPU_TARGET),powerpc)
 FPCCPUOPT:=-O1r
 FPCCPUOPT:=-O1r
 endif
 endif
 else
 else
-FPCCPUOPT:=-O2
+FPCCPUOPT:=-O1r
 endif
 endif
 override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n
 override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n
 override FPCOPTDEF+=RELEASE
 override FPCOPTDEF+=RELEASE

+ 2 - 2
fcl/Makefile.fpc

@@ -29,7 +29,7 @@ dirs=xml image db shedit passrc net fpcunit web
 units=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext \
 units=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext \
       iostream zstream cachecls avl_tree htmldefs xmlreg registry \
       iostream zstream cachecls avl_tree htmldefs xmlreg registry \
       eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream \
       eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream \
-      streamex blowfish zipper streamio inicol pooledmm libtar
+      streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 units_freebsd=process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf
 units_freebsd=process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf
 units_darwin=process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf
 units_darwin=process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf
 units_solaris=process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf
 units_solaris=process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf
@@ -43,7 +43,7 @@ units_os2=resolve ssockets
 units_emx=resolve ssockets
 units_emx=resolve ssockets
 units_netware=resolve ssockets
 units_netware=resolve ssockets
 units_netwlibc=resolve ssockets syncobjs
 units_netwlibc=resolve ssockets syncobjs
-rsts=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+rsts=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
 exampledirs=tests
 exampledirs=tests
 
 
 [compiler]
 [compiler]

+ 358 - 0
fcl/inc/streamcoll.pp

@@ -0,0 +1,358 @@
+{
+    This file is part of the Free Component Library (FCL)
+    Copyright (c) 1999-2000 by the Free Pascal development team
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+{$mode objfpc}
+{$h+}
+unit streamcoll;
+
+interface
+
+uses
+  Classes,SysUtils;
+
+type
+  TStreamCollectionItem = Class(TCollectionItem)
+  Protected
+    Procedure WriteInteger(S : TStream; AValue : Integer);
+    Procedure WriteBoolean(S : TStream; AValue : Boolean);
+    Procedure WriteString(S : TStream; AValue : String);
+    Procedure WriteCurrency(S : TStream; AValue : Currency);
+    Procedure WriteDateTime(S : TStream; AValue : TDateTime);
+    Procedure WriteFloat(S : TStream; AValue : Double);
+    Function ReadInteger(S : TStream) : Integer;
+    Function ReadBoolean(S : TStream) : Boolean;
+    Function ReadString(S : TStream) : String;
+    Function ReadCurrency(S : TStream) : Currency;
+    Function ReadDateTime(S : TStream) : TDateTime;
+    Function ReadFloat(S : TStream) : Double;
+    Procedure LoadFromStream(S : TStream; Streamversion : Integer); virtual; abstract;
+    Procedure SaveToStream(S : TStream); virtual; abstract;
+  end;
+
+  TStreamCollection = Class(TCollection)
+  Private
+    FStreaming : Boolean;
+  Protected
+    Procedure WriteInteger(S : TStream; AValue : Integer);
+    Procedure WriteBoolean(S : TStream; AValue : Boolean);
+    Procedure WriteString(S : TStream; AValue : String);
+    Procedure WriteCurrency(S : TStream; AValue : Currency);
+    Procedure WriteDateTime(S : TStream; AValue : TDateTime);
+    Procedure WriteFloat(S : TStream; AValue : Double);
+    Function ReadInteger(S : TStream) : Integer;
+    Function ReadBoolean(S : TStream) : Boolean;
+    Function ReadString(S : TStream) : String;
+    Function ReadCurrency(S : TStream) : Currency;
+    Function ReadDateTime(S : TStream) : TDateTime;
+    Function ReadFloat(S : TStream) : Double;
+    Procedure DoSaveToStream(S : TStream); virtual;
+    Function CurrentStreamVersion : Integer; Virtual;
+    Procedure DoLoadFromStream(S : TStream; Streamversion : Integer); virtual;
+  Public
+    Procedure LoadFromStream(S : TStream);
+    Procedure SaveToStream(S : TStream);
+    Property Streaming : Boolean Read FStreaming;
+  end;
+
+
+  EStreamColl = Class(Exception);
+
+Procedure ColWriteInteger(S : TStream; AValue : Integer);
+Procedure ColWriteBoolean(S : TStream; AValue : Boolean);
+Procedure ColWriteString(S : TStream; AValue : String);
+Procedure ColWriteCurrency(S : TStream; AValue : Currency);
+Procedure ColWriteDateTime(S : TStream; AValue : TDateTime);
+Procedure ColWriteFloat(S : TStream; AValue : Double);
+Function ColReadInteger(S : TStream) : Integer;
+Function ColReadBoolean(S : TStream) : Boolean;
+Function ColReadString(S : TStream) : String;
+Function ColReadCurrency(S : TStream) : Currency;
+Function ColReadDateTime(S : TStream) : TDateTime;
+Function ColReadFloat(S : TStream) : Double;
+
+implementation
+
+Resourcestring
+  SErrIllegalStreamVersion = 'Illegal stream version: %d > %d.';
+
+Procedure ColWriteInteger(S : TStream; AValue : Integer);
+
+begin
+  S.WriteBuffer(AValue,SizeOf(Integer));
+end;
+
+Procedure ColWriteBoolean(S : TStream; AValue : Boolean);
+
+begin
+  ColWriteInteger(S,Ord(AValue));
+end;
+
+Procedure ColWriteString(S : TStream; AValue : String);
+
+Var
+  L : Integer;
+
+begin
+  L:=Length(AValue);
+  ColWriteInteger(S,L);
+  If (L>0) then
+    S.WriteBuffer(AValue[1],L);
+end;
+
+Procedure ColWriteCurrency(S : TStream; AValue : Currency);
+
+begin
+  S.WriteBuffer(AValue,SizeOf(Currency));
+end;
+
+Procedure ColWriteDateTime(S : TStream; AValue : TDateTime);
+
+begin
+  S.WriteBuffer(AValue,SizeOf(TDateTime));
+end;
+
+Procedure ColWriteFloat(S : TStream; AValue : Double);
+
+begin
+  S.WriteBuffer(AValue,SizeOf(Double));
+end;
+
+Function ColReadInteger(S : TStream) : Integer;
+
+begin
+  S.ReadBuffer(Result,SizeOf(Integer));
+end;
+
+Function ColReadBoolean(S : TStream) : Boolean;
+
+Var
+  I : Integer;
+
+begin
+  S.ReadBuffer(I,SizeOf(Integer));
+  Result:=(I<>0);
+end;
+
+Function ColReadString(S : TStream) : String;
+
+Var
+  L : Integer;
+
+begin
+  L:=ColReadInteger(S);
+  SetLength(Result,L);
+  If (L>0) then
+    S.ReadBuffer(Result[1],L);
+end;
+
+Function ColReadCurrency(S : TStream) : Currency;
+
+begin
+  S.ReadBuffer(Result,SizeOf(Currency));
+end;
+
+Function ColReadDateTime(S : TStream) : TDateTime;
+
+begin
+  S.ReadBuffer(Result,SizeOf(TDateTime));
+end;
+
+Function ColReadFloat(S : TStream) : Double;
+
+begin
+  S.ReadBuffer(Result,SizeOf(Double));
+end;
+
+{ TStreamCollectionItem }
+
+function TStreamCollectionItem.ReadBoolean(S: TStream): Boolean;
+begin
+  Result:=ColReadBoolean(S);
+end;
+
+function TStreamCollectionItem.ReadCurrency(S: TStream): Currency;
+begin
+  Result:=ColReadCurrency(S);
+end;
+
+function TStreamCollectionItem.ReadDateTime(S: TStream): TDateTime;
+begin
+  Result:=ColReadDateTime(S);
+end;
+
+function TStreamCollectionItem.ReadFloat(S: TStream): Double;
+begin
+  Result:=ColReadFloat(S);
+end;
+
+function TStreamCollectionItem.ReadInteger(S: TStream): Integer;
+begin
+  Result:=ColReadinteger(S);
+end;
+
+function TStreamCollectionItem.ReadString(S: TStream): String;
+begin
+  Result:=ColReadString(S);
+end;
+
+procedure TStreamCollectionItem.WriteBoolean(S: TStream; AValue: Boolean);
+begin
+  ColWriteBoolean(S,AValue);
+end;
+
+procedure TStreamCollectionItem.WriteCurrency(S: TStream;
+  AValue: Currency);
+begin
+  ColWriteCurrency(S,AValue);
+end;
+
+procedure TStreamCollectionItem.WriteDateTime(S: TStream;
+  AValue: TDateTime);
+begin
+  ColWriteDateTime(S,AValue);
+end;
+
+procedure TStreamCollectionItem.WriteFloat(S: TStream; AValue: Double);
+begin
+  ColWriteFloat(S,AValue);
+end;
+
+procedure TStreamCollectionItem.WriteInteger(S: TStream; AValue: Integer);
+begin
+  ColWriteInteger(S,AValue);
+end;
+
+procedure TStreamCollectionItem.WriteString(S: TStream; AValue: String);
+begin
+  ColWriteString(S,AValue);
+end;
+
+{ TStreamCollection }
+
+function TStreamCollection.CurrentStreamVersion: Integer;
+begin
+  Result:=0;
+end;
+
+procedure TStreamCollection.DoLoadFromStream(S: TStream;
+  Streamversion: Integer);
+begin
+  If (Streamversion>CurrentStreamVersion) then
+    Raise EStreamColl.CreateFmt(SErrIllegalStreamVersion,[Streamversion,CurrentStreamVersion]);
+end;
+
+procedure TStreamCollection.DoSaveToStream(S: TStream);
+begin
+  // Do nothing.
+end;
+
+procedure TStreamCollection.LoadFromStream(S: TStream);
+
+Var
+  I,V,C : Integer;
+
+begin
+  FStreaming:=True;
+  Try
+    V:=ReadInteger(S);
+    DoLoadFromStream(S,V);
+    Clear;
+    C:=ReadInteger(S);
+    For I:=1 to C do
+      With Add as TStreamCollectionItem do
+        LoadFromStream(S,V);
+  Finally
+    FStreaming:=False;
+  end;
+end;
+
+function TStreamCollection.ReadBoolean(S: TStream): Boolean;
+begin
+  Result:=ColReadBoolean(S);
+end;
+
+function TStreamCollection.ReadCurrency(S: TStream): Currency;
+begin
+  Result:=ColReadCurrency(S);
+end;
+
+function TStreamCollection.ReadDateTime(S: TStream): TDateTime;
+begin
+  Result:=ColReadDateTime(S);
+end;
+
+function TStreamCollection.ReadFloat(S: TStream): Double;
+begin
+  Result:=ColReadFloat(S);
+end;
+
+function TStreamCollection.ReadInteger(S: TStream): Integer;
+begin
+  Result:=ColReadInteger(S);
+end;
+
+function TStreamCollection.ReadString(S: TStream): String;
+begin
+  Result:=ColReadString(S);
+end;
+
+procedure TStreamCollection.SaveToStream(S: TStream);
+
+Var
+  I : Integer;
+
+begin
+  FStreaming:=True;
+  Try
+    WriteInteger(S,CurrentStreamVersion);
+    DoSaveToStream(S);
+    WriteInteger(S,Count);
+    For I:=0 to Count-1 do
+      With TStreamCollectionItem(Items[i]) do
+        SaveToStream(S);
+  Finally
+    FStreaming:=False;
+  end;
+end;
+
+procedure TStreamCollection.WriteBoolean(S: TStream; AValue: Boolean);
+begin
+  ColWriteBoolean(S,AValue);
+end;
+
+procedure TStreamCollection.WriteCurrency(S: TStream; AValue: Currency);
+begin
+  ColWriteCurrency(S,AValue);
+end;
+
+procedure TStreamCollection.WriteDateTime(S: TStream; AValue: TDateTime);
+begin
+  ColWriteDateTime(S,AValue);
+end;
+
+procedure TStreamCollection.WriteFloat(S: TStream; AValue: Double);
+begin
+  ColWriteFloat(S,AValue);
+end;
+
+procedure TStreamCollection.WriteInteger(S: TStream; AValue: Integer);
+begin
+  ColWriteInteger(S,AValue);
+end;
+
+procedure TStreamCollection.WriteString(S: TStream; AValue: String);
+begin
+  ColWriteString(S,AValue);
+end;
+
+
+end.