DataReel 4.2.1 Beta Changes File


 Contents
Current Releases
Previous Releases
Include File Changes
Source Code Changes


 Current Releases

November 17, 2002 - DataReel version 4.2.1 Beta


 Previous Releases

June 5, 2002 - DataReel version 4.2.0 Beta
August 23, 2001 - DataReel version 4.1
August 21, 2001 - DataReel version 4.0 library kits
June 27, 2001 - DataReel version 4.0


 Include File changes

asprint.h
==============================================================
03/11/2002: Users now have the option to use the ANSI Standard 
C++ library by defining the __USE_ANSI_CPP__ preprocessor directive. 
By default the old iostream library will be used for all iostream 
operations.
==============================================================

btnode.h
==============================================================
02/08/2002: All B-tree node functions using non-persistent file 
address units have been modified to use FAU_t data types instead 
of FAU types. FAU_t types are native or built-in integer types 
and require no additional overhead to process. All persistent 
file address units still use the FAU integer type, which is a 
platform independent type allowing database files to be shared 
across multiple platforms.
==============================================================

bstreei.h
==============================================================
No Changes
==============================================================

btcache.h
==============================================================
Empty file - Placeholder for future B-tree cache classes.
==============================================================

btnode.h
==============================================================
02/08/2002: All B-tree node functions using non-persistent file 
address units have been modified to use FAU_t data types instead 
of FAU types. FAU_t types are native or built-in integer types 
and require no additional overhead to process. All persistent 
file address units still use the FAU integer type, which is a 
platform independent type allowing database files to be shared 
across multiple platforms.
==============================================================

btstack.h
==============================================================
02/08/2002: All B-tree stack functions using non-persistent file 
address units have been modified to use FAU_t data types instead 
of FAU types. FAU_t types are native or built-in integer types 
and require no additional overhead to process. All persistent 
file address units still use the FAU integer type, which is a 
platform independent type allowing database files to be shared 
across multiple platforms.
==============================================================

cdate.h
==============================================================
03/11/2002: By default C++ iostreams are no longer used. In order 
to use the iostream functions built into this class users must 
define __USE_CPP_IOSTREAM__ preprocessor directive. When using C++ 
iostreams users have the option to use the ANSI Standard C++ library 
by defining the __USE_ANSI_CPP__ preprocessor directive. By default 
the old iostream library will be used when the  __USE_CPP_IOSTREAM__ 
directive is defined.
==============================================================

dbasekey.h
==============================================================
11/05/2001: Added single comparison method to DatabaseKeyB class. 
To use a single compare instead of the greater then and equal to 
operators define the __USE_SINGLE_COMPARE__ preprocessor directive 
when compiling. NOTE: If a dual comparison is used the derived class 
must override the pure virtual greater than and equal to operators 
declared in the DatabaseKeyB base class. If the a single comparison
method is used the derived class must override the pure virtual 
DatabaseKeyB::CompareKey() function with return values of: -1 less 
than, 0 equal to, 1 greater than.
==============================================================

dbfcache.h
==============================================================
Experimental database cache classes added in version 4.2.
==============================================================

devcache.h
==============================================================
No changes
==============================================================

devtypes.h
==============================================================
No changes
==============================================================

dfileb.h
==============================================================
03/10/2002: The DiskFileB class no longer uses the C++ fstream 
class as the underlying file system. The gxDatabase file pointer 
routines are now used to define the underlying file system used 
by the DiskFileB class. This change was made to support large files
and NTFS file system enhancements for non-database applications. 

03/10/2002: The DiskFileB class now includes a full compliment of 
<< and >> overloads used to insert and extract integers, floating 
points, strings, and characters types. 

03/10/2002: Added the bin, text, hex, dec, flush, and clear 
DiskFileB class I/O manipulator functions used to format I/O 
within an I/O statement.

03/24/2002: Added the DiskFileB::df_gcount() and df_pcount() 
process control functions used to return the total number of 
bytes following read and write operations. 
==============================================================

eds101.h
==============================================================
No changes
==============================================================

eds201.h
==============================================================
No changes
==============================================================

edscfg.h
==============================================================
02/08/2002: All EDS Config functions using non-persistent file 
address units have been modified to use FAU_t data types instead 
of FAU types. FAU_t types are native or built-in integer types 
and require no additional overhead to process. All persistent 
file address units still use the FAU integer type, which is a 
platform independent type allowing database files to be shared 
across multiple platforms.

10/13/2002: Remove all function with non-const char * type
arguments.
==============================================================

edst101.h
==============================================================
No changes
==============================================================

ehandler.h
==============================================================
No changes
==============================================================

fstring.h
==============================================================
07/24/2001: Changed include path for the strutil.h include file
from <strutil.h> to "strutil.h"

03/11/2002: By default C++ iostreams are no longer used. In order 
to use the iostream functions built into this class users must 
define __USE_CPP_IOSTREAM__ preprocessor directive. When using C++ 
iostreams users have the option to use the ANSI Standard C++ library 
by defining the __USE_ANSI_CPP__ preprocessor directive. By default 
the old iostream library will be used when the  __USE_CPP_IOSTREAM__ 
directive is defined.

05/05/2002: Modified the FString default constructor to clear all 
the bytes in a string when a FString object is constructed.

10/13/2002: Removed the following conversion function from the FString
class due to excessive compiler warning under Linux: 
operator const int () const { return sptr[0] != 0; }

10/13/2002: Removed the following conversion function to avoid having
FString objects being automatically converted to int types: 
operator int () { return ((sptr != 0) && (s_length != 0)); }

10/13/2002: Added the FString::is_not_null() function to replace the
int conversion function. NOTE: The FString class no longer has any
conversion functions.
==============================================================

futils.h
==============================================================
03/11/2002: Added large file support for the futils_filelength()
function. Also, the file length function now takes the string
file name instead of an int type representing an open file
handle.

08/12/2002: Added the "dirent *entry = 0" parameter to the 
futils_readdir() function to support thread safe readdir calls
under UNIX.

10/17/2002: Added the futils_chmod(const char *fname, const char *mode_str)
function used to set file permission under UNIX.
==============================================================

gpersist.h
==============================================================
02/08/2002: All gxPersistent functions using non-persistent file 
address units have been modified to use FAU_t data types instead 
of FAU types. FAU_t types are native or built-in integer types 
and require no additional overhead to process. All persistent 
file address units still use the FAU integer type, which is a 
platform independent type allowing database files to be shared 
across multiple platforms. NOTE: This change was not applied to
any pure virtual functions.

02/22/2002: Changed default arguments for all functions using the
"flush" and "test_tree" variables to false. The caller or derived 
class must perform file flushing and tree testing as required by 
the application.

05/07/2002: Added the gxPersistent::Flush() function used by
applications to flush the POD database.

05/07/2002: Added the gxPersistent::TestDatabase() function
used by applications to test the POD database.

05/07/2002: Added the gxPersistent::GetDatabase() function
used to return the current POD database an object is bound
to.
==============================================================

gthreadt.h
==============================================================
No changes
==============================================================

gxbstree.h
==============================================================
03/24/2002: Added the Release() synchronization function. The 
release function is used to signal to the class destructor not  
to delete the tree when an object is deleted or no longer 
visible.
==============================================================

gxbtree.h
==============================================================
08/08/2001: Added gxBtree::PartialFind() function used to find a 
key equal to or greater then the specified key even if the specified 
key does not exist in the B-tree. 

08/17/2001: Added the following optimized un-cached sort order search 
and positioning functions: gxBtree::FindLast(), gxBtree::FindFirst(),
gxBtree::PartialFind(), gxBtree::Find(), gxBtree::FindNext(), 
gxBtree::FindPrev().

08/17/2001: Added the following functions and data members used
for B-tree tuning statistics: gxBtree::ResetStats(), 
gxBtree::node_writes, gxBtree::node_reads, gxBtree::header_writes,
gxBtree::header_reads.

02/03/2002: Changed default arguments for all functions using the
"flush" and "test_tree" variables to false. The caller or derived 
class must perform file flushing and tree testing as required by 
the application.

02/08/2002: All gxBtree functions using non-persistent file 
address units have been modified to use FAU_t data types instead 
of FAU types. FAU_t types are native or built-in integer types 
and require no additional overhead to process. All persistent 
file address units still use the FAU integer type, which is a 
platform independent type allowing database files to be shared 
across multiple platforms.

03/04/2002: Reassigned the optional gxBtreeHeader::class_id 
member to be used as a counter for the number of B-trees per
index file.  

04/15/2002: Added the gxBtree::ChangeKey() function used to 
change specified keys that already exist in the B-tree index.
==============================================================

gxcond.h
==============================================================
No changes
==============================================================

gxconfig.h
==============================================================
09/10/2002: Changed gxConfig::StoreCfgData() config line 
parameter from const UString type to const char * type.

10/13/2002: Removed all function with non-const char * type
arguments.
==============================================================

gxcrc32.h
==============================================================
No changes
==============================================================

gxcrctab.h
==============================================================
No changes
==============================================================

gxd_ver.h
==============================================================
02/03/2002: Changed GX database default revision letter to 
rev E.
==============================================================

gxdatagm.h
==============================================================
No changes
==============================================================

gxdbase.h
==============================================================
02/03/2002: Changed gxDatabase::Write() default arguments for 
flushing and bit testing. The Write() function will not flush
open file buffers and perform CRC testing by default. The caller
or derived class must perform file flushing and bit testing as
required by the application.

02/08/2002: All gxDatabase functions using non-persistent file 
address units have been modified to use FAU_t data types instead 
of FAU types. FAU_t types are native or built-in integer types 
and require no additional overhead to process. All persistent 
file address units still use the FAU integer type, which is a 
platform independent type allowing database files to be shared 
across multiple platforms.

02/22/2002: Added the gxDatabase::file_stats_header data member 
to keep persistent file statistics for the number of blocks 
allocated, deleted, and removed. The gxFileStatsHeader data 
structure is a new type declared in the gxheader.h include 
file added specifically for gxDatabase revisions 'D' and 'E'. 
Using persistent file statistics significantly reduces the 
amount of overhead normally required to obtain stats by 
sequentially searching the database file for normal, deleted, 
and removed blocks.
 
02/23/2002: Add three new functions to support persistent file 
statistics in revisions 'D' and 'E':
gxDatabaseError gxDatabase::WriteFileStatsHdr(const gxFileStatsHeader &hdr);
gxDatabaseError gxDatabase::ReadFileStatsHdr(gxFileStatsHeader &hdr);
void gxDatabase::InitFileStatsHdr(gxFileStatsHeader &hdr);

03/24/2002: Added the gxDatabase::Release() synchronization 
function. Used to signal to the class destructor not to close 
the file when an object is deleted or no longer visible.

03/25/2002: Added the gxdFPTR *gxDatabase::GetFP() function 
used to return an object's file pointer.

10/16/2002: Added the gxDatabase::TestBlockHeader() function used 
to test a block header to ensure that this is a valid block header 
and not a block of binary data containing words equal to a block 
checkword.
==============================================================

gxderror.h
==============================================================
08/14/2001: Added the gxDBASE_CACHE_ERROR error code to the 
gxDatabaseError enumeration.
==============================================================

gxdfp64.h
==============================================================
03/18/2002: Changed the return types for the gxdFPTR64Read() and
gxdFPTR64Write() fucntions to return the number of bytes read and
moved rather than the returning 0/1 to indicate a pass/fail 
condition. This change was made to support additional classes
throughout the library.
==============================================================

gxdfptr.h
==============================================================
02/01/2002: Add enhanced NTFS compatibility to all WIN32 functions 
by adding WIN32 file I/O. Define the __WIN32__ and __NTFS__ 
preprocessor directives to use the WIN32 file I/O API instead of 
the stdio file I/O.  

03/18/2002: Changed the return types for the gxdFPTRRead() and
gxdFPTRWrite() fucntions to return the number of bytes read and
moved rather than the returning 0/1 to indicate a pass/fail 
condition. This change was made to support additional classes
throughout the library.
==============================================================

gxdlcode.h
==============================================================
01/23/2002: Added the __MSVC_DLL__ preprocessor directive, which 
is now required to compile the DLL library. This directive was added 
to allow the DLL code base to be combined with the UNIX library and 
static library code bases. 

02/28/2002: Added the __USE_ANSI_CPP__ preprocessor directive
used to force compatibility with the new ANSI Standard C++ 
library. 
==============================================================

gxdlincs.h
==============================================================
01/23/2002: Added the __MSVC_DLL__ preprocessor directive, which 
is now required to compile the DLL library. This directive was added 
to allow the DLL code base to be combined with the UNIX library and 
static library code bases. 
==============================================================

gxdstats.h
==============================================================
No changes
==============================================================

gxdtyp64.h
==============================================================
02/21/2002: Add preprocessor directive for the GNU MINGW32
compiler.
==============================================================

gxdtypes.h
==============================================================
No changes
==============================================================

gxfloat.h
==============================================================
No changes
==============================================================

gxheader.h
==============================================================
02/08/2002: All gxheader constants using non-persistent file 
address units have been modified to use FAU_t data types instead 
of FAU types. FAU_t types are native or built-in integer types 
and require no additional overhead to process. All persistent 
file address units still use the FAU integer type, which is a 
platform independent type allowing database files to be shared 
across multiple platforms.

02/22/2002: Added the gxFileStatsHeader data structure to 
support persistent file statistics in gxDatabase revisions 
'D' and 'E'.

03/24/2002: Changed the length of the gxMaxNameLength constant
from 255 to 1024. This change was made to account for long file 
names plus directory information.
==============================================================

gxint16.h
==============================================================
No changes
==============================================================

gxint32.h
==============================================================
No changes
==============================================================

gxint64.h
==============================================================
03/11/2002: By default C++ iostreams are no longer used. In order 
to use the iostream functions built into this class users must 
define __USE_CPP_IOSTREAM__ preprocessor directive. When using C++ 
iostreams users have the option to use the ANSI Standard C++ library 
by defining the __USE_ANSI_CPP__ preprocessor directive. By default 
the old iostream library will be used when the  __USE_CPP_IOSTREAM__ 
directive is defined.
==============================================================

gxip32.h
==============================================================
No changes
==============================================================

gxslist.h
==============================================================
03/24/2002: Added the Release() synchronization function. The 
release function is used to signal to the class destructor not  
to delete the list when an object is deleted or no longer 
visible.
==============================================================

gxslistb.h
==============================================================
03/24/2002: Added the Release() synchronization function. The 
release function is used to signal to the class destructor not  
to delete the list when an object is deleted or no longer 
visible.
==============================================================

gxmac48.h
==============================================================
No changes
==============================================================

gxmutex.h
==============================================================
No changes
==============================================================

gxs_b64.h
==============================================================
No changes
==============================================================

gxs_ver.h
==============================================================
No changes
==============================================================

gxscomm.h
==============================================================
01/29/2002: Added the gxSerialComm::Close(scommDeviceHandle h)
function to allow application to close device handles other
than the one a gxSerialComm object is bound to. 

01/29/2002: Added the gxSerialComm::ReleaseSerialPort()
function to release the serial device bound in a gxSerialComm
object to another device. After a release call the gxSerialComm 
destructor will not automatically close the serial device 
opened by this object.

01/29/2002: Added four new read and write function to
read and write data from a specified device handle:
int RawRead(scommDeviceHandle h, void *buf, int bytes);
int RawWrite(scommDeviceHandle h, const void *buf, int bytes);
int Recv(scommDeviceHandle h, void *buf, int bytes);
int Send(scommDeviceHandle h, const void *buf, int bytes);
==============================================================

gxsema.h
==============================================================
No changes
==============================================================

gxsftp.h
==============================================================
03/10/2002: The gxsFTPClient class no longer uses the C++ fstream 
class as the underlying file system. The gxDatabase file pointer 
routines are now to used define the underlying file system used by 
the gxsFTPClient class. This change was made to support large files 
and NTFS file system enhancements. To enable large file support 
users must define the __64_BIT_DATABASE_ENGINE__ preprocessor 
directive.

06/10/2002: Added gxsFTP_BUF_SIZE constant used to replace
gxsBUF_SIZE, which was previously used to set the fixed FTP 
replay buffer sizes. This change was made to accommodate larger 
fixed FTP reply buffers without changing the gxsFTP_BUF_SIZE 
constant.

06/10/2002: Added the gxsFTPClient::passive_mode variable 
used internally to toggle passive FTP mode on and off.

06/10/2002: Added the gxsFTPClient::FTPPassive() and 
gxsFTPClient::FTPActive() functions used to toggle passive FTP
mode on and off.
==============================================================

gxshtml.h
==============================================================
03/10/2002: The gxsHTML class no longer uses the C++ fstream 
class as the underlying file system. The gxDatabase file pointer 
routines are now used to define the underlying file system used by 
the gxsHTML class. This change was made to support large files 
and NTFS file system enhancements. To enable large file support 
users must define the __64_BIT_DATABASE_ENGINE__ preprocessor 
directive.
==============================================================

gxshttp.h
==============================================================
09/27/2001: Added the gxsHTTP_STATUS_DISK_ERROR and 
gxsHTTP_STATUS_NETWORK_ERROR constants to the HTTP status codes 
enumeration.

09/27/2001: Changed the gxsMAX_HTTP_STATUS_CODES integer constant
from 17 to 19 to match the number of enumerated constants defined
in the HTTP status codes enumeration.

09/28/2002: Changed the gxsMAX_HTTP_STATUS_CODES integer constant
from 19 to 20 to match the number of enumerated constants defined
in the HTTP status codes enumeration.

10/03/2002: Added the gxsHTTPHeader::Reset() function used to
reset HTTP header information.

10/03/2002: Moved the gxsHTTPHeader constructor and destructor
to the gxshttp.h include file.

10/03/2002: Added the __HTTP_RECV_TIMEOUT_SECS__ and
__HTTP_RECV_TIMEOUT_USECS__ constants used to set default
timeout values.
==============================================================

gxshttpc.h
==============================================================
09/27/2001: Added new gxsHTTPClient::Request() functions to 
replace the slower gxsHTTPClient::RequestFile() functions. The 
gxsHTTPClient::RequestFile() functions have been depreciated 
in version 4.11 and retained for backward compatibility.

03/10/2002: The gxsHTTPClient class no longer uses the C++ fstream 
class as the underlying file system. The gxDatabase file pointer 
routines are now used to define the underlying file system used by 
the gxsHTTPClient class. This change was made to support large files 
and NTFS file system enhancements. To enable large file support 
users must define the __64_BIT_DATABASE_ENGINE__ preprocessor 
directive.

10/03/2002: Added gxsHTTPClient::revc_loop, gxsHTTPClient::time_out_sec,
and gxsHTTPClient::time_out_usec data members used to break the receive 
loops and set timeout values.

10/03/2002: Added the following function used to break the receive  
loops and set timeout values: gxsHTTPClient::SetTimeOut(),
gxsHTTPClient::TerminateRevc(), gxsHTTPClient::ResetRecv() , 
gxsHTTPClient::ResetTimeOut(), and gxsHTTPClient::ResetRecv().
==============================================================

gxsmtp.h
==============================================================
09/03/2002: The return type on the gxsSMTPClient::GetSMTPTimeStamp()
was changed from void to char * to allow this function to be 
returned from another calling function.
==============================================================

gxsocket.h
==============================================================
01/29/2002: Added four new functions to accept, bind,
connect, and listen to specified sockets:
gxsSocket_t Accept(gxsSocket_t s, gxsSocketAddress *sa);
int Bind(gxsSocket_t s, gxsSocketAddress *sa);
int Connect(gxsSocket_t s, gxsSocketAddress *sa);
int Listen(gxsSocket_t s, int max_connections);

09/25/2002: Removed default parameter from all versions of the
gxSocket::ShutDown() function due to conflicting int types.

10/24/2002: Changed the buf parameter on all versions of the 
datagram SendTo() and ReadFrom() functions from a non-constant 
void * type to a constant void * type.

10/25/2002: Split the datagram functions into three categories, 
Client/Server, Client side, and Sever side. This change was made 
to make it easier for applications to associate Internet address 
data structures with the correct client or server.

10/25/2002: Added new server side datagram functions: 
RemoteRawReadFrom(), RemoteRecvFrom(), RemoteRawWriteTo(), and
RemoteSendTo().

10/25/2002: Added the gxSocket::Clear() helper function used to 
reset all gxSocket variables during object construction.

10/25/2002: Added gxSocket::InitSIN() helper function used to initialize 
socket Internet address data structures. 

10/25/2002: Added the following function used to construct and initialize 
gxSocket objects using socket Internet address data structures:
gxSocket(gxsSocket_t st, gxsSocketAddress *host_sin)
gxSocket(gxsSocket_t st, gxsProtocolFamily pf, gxsSocketAddress *host_sin);
gxsSocket_t InitSocket(gxsSocket_t st, gxsSocketAddress *host_sin);
gxsSocket_t InitSocket(gxsSocket_t st, gxsProtocolFamily pf, 
                       gxsSocketAddress *host_sin);
==============================================================

gxsping.h
==============================================================
No changes
==============================================================

gxspop3.h
==============================================================
No changes
==============================================================

gxstream.h
==============================================================
No changes
==============================================================

gxstring.h
==============================================================
06/05/2002: Added the gxStringw type definition for the Unicode
string class.
==============================================================

gxstypes.h
==============================================================
07/10/2001: Added __AIX__ conditional directive for the IBM xlC 
C and C++ Compilers.

07/19/2001: IANA service file updates for DataReel database 
port name and number:
-- Services file entries --
gxs-data-port   2073/tcp   DataReel Database Socket
gxs-data-port   2073/udp   DataReel Database Socket

04/15/2002: Added the gxSOCKET_FILELENGTH_ERROR and
gxSOCKET_FILEMODTIME_ERROR errors codes to the 
gxSocketError enumeration.

06/10/2002: Added embedded protocol error codes to the 
gxSocketError enumeration.
==============================================================

gxsurl.h
==============================================================
No changes
==============================================================

gxsutils.h
==============================================================
No changes
==============================================================

gxt_ver.h
==============================================================
No changes
==============================================================

gxtelnet.h
==============================================================
10/29/2002: Added the gxsTelnetClient::RecvInitSeq() function used to 
process the initial connection sequence sent by the telnet server when 
the telnet session is first established. 

10/29/2002: Added the gxsTelnetClient::SendInitSeq() function used to 
send an  initialization sequence to the telnet server if the server 
does not send any initialization commands when the telnet session is 
first established.
==============================================================

gxthread.h
==============================================================
11/14/2002: Changed argument type from int to unsigned long in 
the gxThread::api_mSleep() and gxThread::api_sSleep() functions.

11/14/2002: Added the gxThread::api_uSleep() and 
gxThread::api_nSleep() fucntions used to sleep for a specified 
number of microseconds and nanoseconds.
==============================================================

gxuint16.h
==============================================================
No changes
==============================================================

gxuint32.h
==============================================================
No changes
==============================================================

gxuint64.h
==============================================================
03/11/2002: By default C++ iostreams are no longer used. In order 
to use the iostream functions built into this class users must 
define __USE_CPP_IOSTREAM__ preprocessor directive. When using C++ 
iostreams users have the option to use the ANSI Standard C++ library 
by defining the __USE_ANSI_CPP__ preprocessor directive. By default 
the old iostream library will be used when the  __USE_CPP_IOSTREAM__ 
directive is defined.
==============================================================

htmldrv.h
==============================================================
03/11/2002: Users now have the option to use the ANSI Standard 
C++ library by defining the __USE_ANSI_CPP__ preprocessor directive. 
By default the old iostream library will be used for all iostream 
operations.
==============================================================

httpgrab.h
==============================================================
The HTTPGrab class was not being used in the library and has been 
depreciated to eliminate excessive overhead during library builds. 
Only one standalone function was being in the 
examples.soc/gxshttpc/testprog.cpp file. That function has been moved 
to the examples.soc/gxshttpc/testprog.cpp file. NOTE: The httpgrab.h 
include file and the httpgrab.cpp src files are only included with 
this distribution for backward compatibly with existing makefiles that 
may have dependencies requiring these files to exist during a library 
build.
==============================================================

infohog.h
==============================================================
10/05/2001: Modified the InfoHog copy constructor to set the
member array to zero before copying to tell the AllocArray()
function that no memory has been allocated for the array.

02/08/2002: All InfoHog functions using non-persistent file 
address units have been modified to use FAU_t data types instead 
of FAU types. FAU_t types are native or built-in integer types 
and require no additional overhead to process. All persistent 
file address units still use the FAU integer type, which is a 
platform independent type allowing database files to be shared 
across multiple platforms.

05/07/2002: Fixed non-key change problem in the InfoHog<TYPE>::
ChangeObject() function. The ChangeObject() functions was not 
correctly changing non-key members for objects with the same 
key and different general purpose members.

05/08/2002: Fixed single general purpose member change problem 
in InfoHog<TYPE>::ChangeObject() function. The ChangeObject() 
function was not correctly changing objects with only one general 
purpose member.
==============================================================

keytypes.h
==============================================================
02/22/2002: Changed the BtreeNodeOrder_t, BtreeSize_t, 
BtreeKeyCount_t, BtreeKeyLocation_t to native integer types.

02/22/2002: Added the BtreeNodeOrder, BtreeSize, BtreeKeyCount, 
and the BtreeKeyLocation platform independent types.
==============================================================

leaktest.h
==============================================================
03/11/2002: By default C++ iostreams are no longer used. In order 
to use the iostream functions with leak test functions users must 
define __USE_CPP_IOSTREAM__ preprocessor directive. When using C++ 
iostreams users have the option to use the ANSI Standard C++ library 
by defining the __USE_ANSI_CPP__ preprocessor directive. By default 
the old iostream library will be used when the  __USE_CPP_IOSTREAM__ 
directive is defined.
==============================================================

logfile.h
==============================================================
03/10/2002: The LogFile class no longer uses the C++ fstream 
class as the underlying file system. The gxDatabase file pointer 
routines are now used to define the underlying file system used by 
the LogFile class. This change was made to support large files 
and NTFS file system enhancements. To enable large file support 
users must define the __64_BIT_DATABASE_ENGINE__ preprocessor 
directive.

09/30/2002: Added the LogFile::LogFile(const char *) constructor.
Used to open a log file for appending when a LogFile object is
constructed.

11/14/2002: Added the LogFile::Create() function used to create
a logfile overwriting any existing ogfile with the same name.
==============================================================

memblock.h
==============================================================
No changes
==============================================================

membuf.h
==============================================================
10/05/2001: Added the MemoryBuffer::MemSet() function used to 
fill a memory buffer starting at the specified offset with a 
specified number of bytes.

02/05/2002: Added the clean_buf argument to the MemoryBuffer::Clear()
function. If the clean_buf variable is true the contents of the buffer 
will be cleared, otherwise the logical length will be set to zero and 
the contents of the buffer will not cleared.

06/04/2002: Added the __MEMBUF_INT__ type definition and the
__MEMBUF_NO_MATCH__ constant used to eliminate signed and 
unsigned comparison warnings.
==============================================================

ostrbase.h
==============================================================
03/11/2002: Users now have the option to use the ANSI Standard 
C++ library by defining the __USE_ANSI_CPP__ preprocessor directive. 
By default the old iostream library will be used for all iostream 
operations.
==============================================================

pod.h
==============================================================
03/05/2002: Removed the PODIndexFile_t::cid optional class ID
member. Version 4.2 and higher no longer use the optional class
ID within B-tree headers.

03/05/2002: Modified the PODIndexFile::Open() function to allow
the number of trees and gxDatabase revision number to be specified
when creating a new index file. The optional class ID is no longer
used.

03/05/2002: Added the POD::Flush(), FlushDataFile(), and
FlushIndexFile() functions used by applications to flush
the POD database or the data and index files individually.

03/05/2002: Added the POD::TestDatabase(), TestDataFile(), and
TestIndexFile() functions used by applications to test the
POD database or the data and index files individually.
==============================================================

pscript.h
==============================================================
03/11/2002: Users now have the option to use the ANSI Standard 
C++ library by defining the __USE_ANSI_CPP__ preprocessor directive. 
By default the old iostream library will be used for all iostream 
operations.

03/24/2002: The PostScriptDrv::ConvertTextFile() function now 
uses a DiskFileB type for the input file. This change was made 
to support large files and NTFS file system enhancements.
==============================================================

scomserv.h
==============================================================
No changes
==============================================================

sreg101.h
==============================================================
No changes
==============================================================

stdafx.h
==============================================================
01/23/2002: Added the __MSVC_DLL__ preprocessor directive, which 
is now required to compile the DLL library. This directive was added 
to allow the DLL code base to be combined with the UNIX library and 
static library code bases. 
==============================================================

strutil.h
==============================================================
09/28/2001: Added a string length parameter to the FindMatch()
and IFindMatch() functions used to set the length of the string
variable when the string is not null-terminated.

03/10/2002: Added the ULLWORDToString(), LLWORDToString(), 
StringToULLWORD(), and StringToLLWORD() functions used to convert 
64-bit signed and unsigned integer values to and from string types. 
These functions are now used throughout the library by all classes 
that require string support for 64-bit integer types.

05/27/2002: Changed all char *s function arguments to const char *s 
in all functions. This change was made to make the conversion of 
string literals const safe

05/27/2002: Changed the return types from unsigned to int in all 
Find() functions. This change was made to eliminate signed/unsigned 
warnings and errors.

06/05/2002: Added type defines, conditional includes, and the
gxStringType enumeration needed to support Unicode strings.

06/05/2002: Added standalone functions needed to work with both
ASCII and Unicode strings
 
06/05/2002: Added conversion functions used with ASCII and
Unicode string literals.

06/05/2002: Added the gxwchar class and gxwchar_t typedef used to 
operate on platform interoperable Unicode strings.

09/04/2002: Added Unicode versions of all strutil functions
included with release 4.1.

09/04/2002: All versions of the StringCat() functions now use 
null pointers as the default arguments and will return a null
string if no arguments are passed to the function from the 
caller.
==============================================================

systime.h
==============================================================
08/12/2002: The SysTime destructor is no longer inlined and is 
now defined in the systime.cpp file.

09/03/2002: Added the SysTime::GetSMTPTime() function used
to make SMTP time stamps.
==============================================================

terminal.h
==============================================================
07/19/2001: Added HPUX 11 preprocessor directives to this 
include file to avoid conflicts when building HPUX 11 static
libraries.
==============================================================

thelpers.h
==============================================================
No changes
==============================================================

thrapiw.h
==============================================================
11/14/2002: Changed argument type from int to unsigned long in 
the gxThreadAPIWrapper::api_mSleep() and 
gxThreadAPIWrapper::api_sSleep() functions.

11/14/2002: Added the gxThreadAPIWrapper::api_uSleep() and 
gxThreadAPIWrapper::api_nSleep() functions used to sleep for a 
specified number of microseconds and nanoseconds.
==============================================================

thrpool.h
==============================================================
No changes
==============================================================

thrtypes.h
==============================================================
No changes
==============================================================

ustring.h
==============================================================
03/10/2002: The UString class now includes a full compliment of 
<< and >> overloads used to insert and extract integers, floating 
points, strings, and characters types. 

03/10/2002: Added the hex, dec, reset, and clear UString class 
I/O manipulator functions used to format I/O within an I/O 
statement.

03/10/2002: Added 64-bit integer support to the UString class, 
which is enabled by defining the __64_BIT_DATABASE_ENGINE__ 
preprocessor directive.

03/11/2002: By default C++ iostreams are no longer used. In order 
to use the iostream functions built into this class users must 
define __USE_CPP_IOSTREAM__ preprocessor directive. When using C++ 
iostreams users have the option to use the ANSI Standard C++ library 
by defining the __USE_ANSI_CPP__ preprocessor directive. By default 
the old iostream library will be used when the  __USE_CPP_IOSTREAM__ 
directive is defined.

03/24/2002: Added the UString::Release() synchronization function. 
The release function is used to signal to the class destructor not to 
delete the string when an object is deleted or no longer visible.

04/07/2002: Added the UString::ConvertEscapeSeq() function used 
to convert hex escape sequences within a string to printable ASCII 
characters.

04/08/2002: Added the UString::GetSPtr() fucntion used to return
a pointer the objects string pointer.

04/09/2002: Added the UString::SetLength(...) functions used to
reset or set the logical length an object's string.

04/09/2002: Added the UString::SetSPrt() function used to bind
an object to another string.

05/27/2002: Changed all char *s function arguments to const char *s 
in all functions. This change was made to make the conversion of 
string literals const safe

05/27/2002: Changed the return types from unsigned to int in all 
Find() functions. This change was made to eliminate signed/unsigned 
warnings and errors.

06/05/2002: Added Unicode versions of all UStringB functions
included with release 4.1.

06/05/2002: Moved all UString functions to the UStringB class
and added the UStringw class used to operate on Unicode strings.

09/04/2002: The ustring.h and ustring.cpp modules are now
dependent on the strutil.h include file.

10/10/2002: Changes the default argument for the UString::Clear()
function "clear_all" variable from 1 to 0. This will only null
the first character of the string eliminating the overhead of
clearing the entire memory buffer.

10/13/2002: Added additional copy constructors, assignment operators, 
and overloaded += operators to support the wxString class.

10/13/2002: Removed the following conversion function from the UStringB 
class due to excessive compiler warning under Linux: 
operator const int () const { return ((sptr != 0) && (s_length != 0)); }

10/13/2002: Removed the following conversion function to avoid having
UStringB objects being automatically converted to int types: 
operator int () { return ((sptr != 0) && (s_length != 0)); }

10/13/2002: Added the UStringB::is_not_null() function to replace the
int conversion function. NOTE: The UStringB class no longer has any
conversion functions.
==============================================================

wserror.h
==============================================================
No changes
==============================================================

wx2incs.h
==============================================================
No changes
==============================================================

wxincs.h
==============================================================
No changes
==============================================================
 Source Code Changes

asprint.cpp
==============================================================
05/28/2002: Fixed out of bounds pointer in the ASPrint(const char c)
function.
==============================================================

bstreei.cpp
==============================================================
No changes
==============================================================

btcache.cpp
==============================================================
Empty file - Placeholder for future B-tree cache classes.
==============================================================

btnode.cpp
==============================================================
09/10/2001: Added binary search code to the BtreeNode::FindKeyLocation() 
function. To use the binary search method instead of a linear search 
define the __USE_BINARY_SEARCH__ preprocessor directive when compiling.

11/05/2001: Added single comparison method to BtreeNode::FindKeyLocation()
function. To use a single compare instead of the greater then and equal to 
operators define the __USE_SINGLE_COMPARE__ preprocessor directive when 
compiling. NOTE: Using the single comparison method will also affect the 
classes derived from the DatabaseKeyB. If a dual comparison is used the 
derived class must override the pure virtual greater than and equal to 
operators declared in the DatabaseKeyB base class. If the a single 
comparison is used the derived class must override the pure virtual 
DatabaseKeyB::CompareKey() function with return values of: -1 less than, 
0 equal to, 1 greater than.
==============================================================

btstack.cpp
==============================================================
No changes
==============================================================

cdate.cpp
==============================================================
No changes
==============================================================

dbasekey.cpp
==============================================================
No changes
==============================================================

dbfcache.cpp
==============================================================
Experimental database cache classes added in version 4.2.
==============================================================

devcache.cpp
==============================================================
No changes
==============================================================

dfileb.cpp
==============================================================
03/10/2002: The DiskFileB class no longer uses the C++ fstream 
class as the underlying file system. The gxDatabase file pointer 
routines are now used to define the underlying file system used 
by the DiskFileB class. This change was made to support large files
and NTFS file system enhancements for non-database applications. 

05/25/2002: Fixed possible out of bounds pointer in the 
DiskFileB::df_LoadNameBuffer() function.
==============================================================

eds101.cpp
==============================================================
08/12/2002: Modified the edsString::GenRandomNumber() function 
to use the reentrant rand_r() function instead of the srand()
function under UNIX.

08/12/2002: Modified the edsString::InitDynamicTable() function 
to use the reentrant rand_r() function instead of the srand()
function under UNIX.

09/04/2002: The __REENTRANT__ preprocessor directive must be 
defined during UNIX builds to enable the use of reentrant
rand_r calls within the edsString::GenRandomNumber() and
edsString::InitDynamicTable() functions.
==============================================================

eds201.cpp
==============================================================
No changes
==============================================================

edscfg.cpp
==============================================================
10/13/2002: Remove all function with non-const char * type
arguments.
==============================================================

ehandler.cpp
==============================================================
07/17/2001: Corrected BCC32 syntax error in EHandler::Message()
function. 

05/27/2002: Added break to terminating case switches in the 
EHandler::SignalException() function to eliminate flow control 
warnings.

10/10/2002: Modified the EHandler::Message() function to flush
the console buffers with each write operation.

10/10/2002: Modified the EHandler::DisplayException() function to 
flush the console buffers with each write operation.
==============================================================

fstring.cpp
==============================================================
10/05/2001: Modified the FString::SetString() function to clear 
the remaining bytes after the string's null terminator to ensure 
that the memory buffer is equal to other buffers with a copy of
this string.

05/05/2002: Modified the FString::Copy() function to use the 
FString::SetString() function when copying or assigning FString 
objects. This change was made to ensure that all bytes following 
string's null terminator are clear.
==============================================================

futils.cpp
==============================================================
03/11/2002: Added large file support for the futils_filelength()
function. Also, the file length function now takes the string
file name instead of an int type representing an open file
handle.

08/12/2002: Added the "dirent *entry" parameter to the 
futils_readdir() function to support reentrant readdir calls
under UNIX. If the "entry" variable is not null the reentrant 
version of the readdir fucntion will be called instead of the
non-thread safe version called by default. 

09/03/2002: Modified the futils_readdir() function to work
with POSIX and non-POSIX readdir_r() calls under Solaris.

09/04/2002: The __REENTRANT__ preprocessor directive must be 
defined during UNIX builds to enable the use of reentrant
readdir calls within the futils_readdir() function.
==============================================================

gpersist.cpp
==============================================================
05/27/2002: Fixed possible memory leak in the gxPersistent::ReadString()
function that could occur during a database read error condition.
==============================================================

gthreadt.cpp
==============================================================
No changes
==============================================================

gxbtree.cpp
==============================================================
05/28/2002: Fixed possible use of null pointer in the gxBtree::Create() 
function. Use of null pointer could have occurred if memory allocation 
for the "f" variable failed and the "f" variable was used.
==============================================================

gxcond.cpp
==============================================================
No changes
==============================================================

gxconfig.cpp
==============================================================
03/10/2002: The gxConfig class no longer uses the C++ fstream 
class as the underlying file system. The gxDatabase file pointer 
routines are now used to define the underlying file system used by 
the gxConfig class. This change was made to support large files 
and NTFS file system enhancements. To enable large file support 
users must define the __64_BIT_DATABASE_ENGINE__ preprocessor 
directive.

09/10/2002: Removed redundant temporary holding buffer from the 
gxConfig::Load() function.

09/10/2002: Changed gxConfig::StoreCfgData() config line 
parameter from const UString type to const char * type.

10/13/2002: Remove all function with non-const char * type
arguments.
==============================================================

gxcrc32.cpp
==============================================================
No changes
==============================================================

gxdatagm.cpp
==============================================================
No changes
==============================================================

gxdbase.cpp
==============================================================
10/16/2002: Modified the gxDatabase::FindFirstBlock() function to 
use the TestBlockHeader() function to test for valid blocks.

10/30/2002: Modified the gxDatabase::FindPrevBlock()function to 
use the TestBlockHeader() function to test for valid blocks.

10/30/2002: Modified the gxDatabase::WriteObjectChecksum() and 
gxDatabase::ReadObjectChecksum() functions to use the ReadBlockHdr() 
function to read and verify blocks.

10/30/2002: Modified the Database::ReadBlockHdr() function to use 
TestBlockHeader() function to test for valid blocks. NOTE: This change 
will affect all function that call ReadBlockHdr().

10/30/2002: Modified the following functions to use TestBlockHeader() 
function to test for valid blocks: gxDatabase::TotalBlocks(), 
gxDatabase::DeletedBlocks(), gxDatabase::UnDelete(), 
gDatabase::ReclaimBestFit(), and gxDatabase::ReclaimFirstFit().
==============================================================

gxderror.cpp
==============================================================
No changes
==============================================================

gxdfp64.cpp
==============================================================
01/30/2002: Modified all WIN32 functions to use the WIN32 file 
I/O API, which will provide large file support for both MSVC 
and BCC32. WIN32 file I/O also adds enhanced NTFS compatibility  
to all WIN32 functions.

01/30/2002: Fixed potential memory leak in the gxdFPTR64Create()
and gxdFPTR64Open() functions.

02/02/2002: Modified all versions of the file pointer close functions 
to set the stream pointer to zero after releasing it. This ensures that 
the caller will not use the stream pointer after it has been deleted 
provided the calling function tests for a null stream pointer prior 
to use. 

03/18/2002: Changed the return types for the gxdFPTR64Read() and
gxdFPTR64Write() fucntions to return the number of bytes read and
moved rather than the returning 0/1 to indicate a pass/fail 
condition. This change was made to support additional classes
throughout the library.
==============================================================

gxdfptr.cpp
==============================================================
01/30/2002: Fixed potential memory leak in the gxdFPTRCreate()
and gxdFPTROpen() functions.

02/01/2002: Add enhanced NTFS compatibility to all WIN32 functions 
by adding WIN32 file I/O. Define the __WIN32__ and __NTFS__ 
preprocessor directives to use the WIN32 file I/O API instead of 
the stdio file I/O.  

02/02/2002: Modified all versions of the file pointer close functions 
to set the stream pointer to zero after releasing it. This ensures that 
the caller will not use the stream pointer after it has been deleted 
provided the calling function tests for a null stream pointer prior 
to use. 

03/18/2002: Changed the return types for the gxdFPTRRead() and
gxdFPTRWrite() fucntions to return the number of bytes read and
moved rather than the returning 0/1 to indicate a pass/fail 
condition. This change was made to support additional classes
throughout the library.
==============================================================

gxdlcode.cpp
==============================================================
01/23/2002: Added the __MSVC_DLL__ preprocessor directive, which 
is now required to compile the DLL library. This directive was added 
to allow the DLL code base to be combined with the UNIX library and 
static library code bases. 
==============================================================

gxstats.cpp
==============================================================
03/25/2002: Modified all functions that print 64-bit native 
integers to the console to use the UString class overloads.
This correction was made to allow code to be compilers using 
the __USE_NATIVE_INT_TYPES__ preprocessor directive.
==============================================================

gxfloat.cpp
==============================================================
02/22/2002: The PackBits() function no longer uses heap space 
for temporary floating pointer buffer.

02/22/2002: The UnPackBits() function no longer uses heap space 
for temporary floating pointer buffer.
==============================================================

gxint16.cpp
==============================================================
No changes
==============================================================

gxint32.cpp
==============================================================
No changes
==============================================================

gxint64.cpp
==============================================================
02/21/2002: Modified the PackBits() and UnPackBits() functions
to work with the GNU MINGW32 compiler.
==============================================================

gxip32.cpp
==============================================================
No changes
==============================================================

gxlistb.cpp
==============================================================
No changes
==============================================================

gxmac48.cpp
==============================================================
03/10/2002: The gxMAC48 class no longer uses the C++ fstream 
class as the underlying file system. The gxDatabase file pointer 
routines are now used to define the underlying file system used by 
the gxMAC48 class. This change was made to support large files 
and NTFS file system enhancements. To enable large file support 
users must define the __64_BIT_DATABASE_ENGINE__ preprocessor 
directive.

06/02/2002: Corrected incorrect assignment in two if statements 
in all versions of the gxMAC48::SetMACAddress()function.
==============================================================

gxmutex.cpp
==============================================================
No changes
==============================================================

gxs_b64.cpp
==============================================================
No changes
==============================================================

gxscomm.cpp
==============================================================
07/10/2001: UNIX changes: Removed the 57600 and 115200 case 
labels to maintain compatibility with all UNIX variants that 
do not define baud rates higher then 19.2

09/20/2001: Corrected the gxSerialComm::RawRead() and RawWrite()
WINNT/2000 overlapped I/O errors by creating an overlapped I/O
event for every read and write call. This change does not affect
Windows 95/98 or UNIX read and write calls.

01/29/2002: Added the gxSerialComm::Close(scommDeviceHandle h)
function to allow application to close device handles other
than the one a gxSerialComm object is bound to.

01/29/2002: Modified the gxSerialComm::Close() function to 
test the device handle before closing the device. 

01/29/2002: Added the gxSerialComm::ReleaseSerialPort()
function to release the serial device bound in a gxSerialComm
object to another device. After a release call the gxSerialComm 
destructor will not automatically close the serial device 
opened by this object.

01/29/2002: Added four new read and write function to
read and write data from a specified device handle:
int RawRead(scommDeviceHandle h, void *buf, int bytes);
int RawWrite(scommDeviceHandle h, const void *buf, int bytes);
int Recv(scommDeviceHandle h, void *buf, int bytes);
int Send(scommDeviceHandle h, const void *buf, int bytes);

05/05/2002: Changed the WIN32 scommHARD_FLOW control option in 
the gxSerialComm::InitSerialPort() function from dcb.fRtsControl 
= DTR_CONTROL_HANDSHAKE; to dcb.fRtsControl = RTS_CONTROL_ENABLE;
==============================================================

gxsema.cpp
==============================================================
02/11/2002: Modified the gxSemaphore::SemaphoreDecrement() to 
correctly decrement the semaphore.
==============================================================

gxsftp.cpp
==============================================================
06/10/2002: Modified the gxsFTPClient::RecvResponse(gxsSocket_t s)
function to check for FTP error codes 400 and higher instead of
waiting for a timeout error.

06/10/2002: Modified the following functions to support
passive FTP mode: gxsFTPClient::FTPGet(), gxsFTPClient::FTPPut(),
gxsFTPClient::FTPList(), gxsFTPClient::OpenDataPort(),
gxsFTPClient::ReadDataPort(), gxsFTPClient::WriteDataPort()

06/17/2002: Modified the gxsFTPClient::SendCommand() function to
clear the command and reply buffers before send a command. This 
change was made to ensure that strings are always null-terminated.

06/17/2002: Modified the gxsFTPClient::FTPGet() and 
gxsFTPClient::FTPList() functions not to read the server 226
reply string following a list or a get. This change was made 
because the FTP client was hanging on the blocking receive 
while waiting for the servers reply. This problem occurred 
when connecting to Windows based FTP servers such as the WAR
FTP server and the IIS FTP server. 

06/17/2002: Modified the gxsFTPClient::OpenDataPort() function
to check for 226 and 227 replies from the server when in passive
FTP mode.

06/20/2002: Modified the gxsFTPClient::RecvResponse() function 
to handle 110, 120, 125, 202, 225, and 332 FTP reply codes.
==============================================================

gxshtml.cpp
==============================================================
06/02/2002: Corrected incorrect assignment in two if statements 
in the gxsHTML::CollectHTMLTags() function.

09/30/2002: Modified all versions of the gxsHTML::CollectHTMLTags() 
functions to account for tags using the ; character inside < > tags.
==============================================================

gxshttp.cpp
==============================================================
09/27/2001: Added 2 new strings to the gxsHTTP_STATUS_CODES 
array for internal client errors.

09/27/2001: Modified the gxsHTTPStatusCodeMessage() function to
return strings for internal client errors.

09/28/2002: Modified the gxsHTTPStatusCodeMessage() function to
return additional strings for internal client errors.

10/03/2002: Added the gxsHTTPHeader::Reset() function used to
reset HTTP header information.

10/03/2002: Moved the gxsHTTPHeader constructor and destructor
to the gxshttp.h include file.
==============================================================

gxshttpc.cpp
==============================================================
09/07/2001: Fixed the gxsHTTPClient::RequestHeader() function
to remove all characters after the end of the header marker.

09/27/2001: Added new gxsHTTPClient::Request() functions to 
replace the slower gxsHTTPClient::RequestFile() functions. The 
gxsHTTPClient::RequestFile() functions have been depreciated 
in version 4.11 and retained for backward compatibility.

01/24/2002: Added (const char *) and (unsigned) type casts
to all FindMatch() function calls to correct type errors
encountered during Linux library builds

04/05/2002: Removed the gxDEVICE_CONSOLE case from the 
gxsHTTPClient::Write() function. Writing to the console is
only used for test purposes.

04/08/2002: Changed the gxsHTTPClient() constructor to use
the version number set in the gxs_ver.h header file to set 
the HTTP client version number.

05/05/2002: Added the __GUI_THREAD_SAFE__ preprocessor directive 
used to conditionally omit functions calls that are not safe to
use within multithreaded GUI applications.

10/03/2002: Modified the gxsHTTPClient::RequestHeader() function
to reset the HTTP header before parsing it.

10/03/2002: Modified the gxsHTTPClient::SimpleRequest(), 
gxsHTTPClient::RequestHeader(), and gxsHTTPClient::Request() functions 
to use timeouts and external loop control.
==============================================================

gxsmtp.cpp
==============================================================
09/03/2002: The return type on the gxsSMTPClient::GetSMTPTimeStamp()
was changed from void to char * to allow this function to be 
returned from another calling function.

09/03/2002: The gxsSMTPClient::GetSMTPTimeStamp() now uses the 
SysTime class to format SMTP time/date strings.
==============================================================

gxsocket.cpp
==============================================================
01/29/2002: Added four new functions to accept, bind,
connect, and listen to specified sockets:
gxsSocket_t Accept(gxsSocket_t s, gxsSocketAddress *sa);
int Bind(gxsSocket_t s, gxsSocketAddress *sa);
int Connect(gxsSocket_t s, gxsSocketAddress *sa);
int Listen(gxsSocket_t s, int max_connections);

04/15/2002: Added the gxSOCKET_FILELENGTH_ERROR and
gxSOCKET_FILEMODTIME_ERROR errors messages to the 
gxsSocketExceptionMessages array.

06/10/2002: Added embedded protocol error codes to the 
gxsSocketExceptionMessages array.

09/25/2002: Removed unneeded (int) type casts from all versions
of the gxSocket send and recv fucntions.

10/24/2002: All gxSocket constructors have been modified to 
zero-out the sin and remote_sin data structures prior to using 
them. This change was implemented to eliminate the possibility 
of any erroneous data being set in the memory space of the data 
structures when a gxSocket object is constructed.

10/25/2002: All gxSocket constructors now use the gxSocket::Clear()
function to reset all the gxSocket() variables.

10/25/2002: Removed redundant code from the 
gxSocket::InitSocket(gxsSocket_t st, gxsPort_t port, char *hostname) 
function.

10/24/2002: All gxSocket constructors have been modified to 
zero-out the socket_data data structure prior to use. This 
change was implemented to eliminate the possibility of any 
erroneous data being set in the memory space of the data 
structure when a gxSocket object is constructed.
==============================================================

gxsping.cpp
==============================================================
01/24/2002: Added time.h include file to make time functions
visual during Linux library builds
==============================================================

gxspop3.cpp
==============================================================
No changes
==============================================================

gxstream.cpp
==============================================================
No changes
==============================================================

gxsurl.cpp
==============================================================
No changes
==============================================================

gxsutils.cpp
==============================================================
No changes
==============================================================

gxtelnet.cpp
==============================================================
06/02/2002: Modified the gxsTelnetClient::SetTermOption() to 
return the correct error condition in the err variable.
==============================================================

gxthread.cpp
==============================================================
No changes
==============================================================

gxuint16
==============================================================
No changes
==============================================================

gxuint32
==============================================================
No changes
==============================================================

gxuint64.cpp
==============================================================
02/21/2002: Modified the PackBits() and UnPackBits() functions
to work with the GNU MINGW32 compiler.
==============================================================

htmldrv.cpp
==============================================================
No changes
==============================================================

httpgrab.cpp
==============================================================
The HTTPGrab class was not being used in the library and has been 
depreciated to eliminate excessive overhead during library builds. 
Only one standalone function was being in the 
examples.soc/gxshttpc/testprog.cpp file. That function has been moved 
to the examples.soc/gxshttpc/testprog.cpp file. NOTE: The httpgrab.h 
include file and the httpgrab.cpp src files are only included with 
this distribution for backward compatibly with existing makefiles that 
may have dependencies requiring these files to exist during a library 
build.
==============================================================

leaktest.cpp
==============================================================
No changes
==============================================================

logfile.cpp
==============================================================
No changes
==============================================================

memblock.cpp
==============================================================
No changes
==============================================================

membuf.cpp
==============================================================
10/05/2001: Added the MemoryBuffer::MemSet() function used to 
fill a memory buffer starting at the specified offset with a 
specified number of bytes.
==============================================================

ostrbase.cpp
==============================================================
No changes
==============================================================

pod.cpp
==============================================================
No changes
==============================================================

pscript.cpp
==============================================================
No changes
==============================================================

scomserv.cpp
==============================================================
No changes
==============================================================

sreg101.cpp
==============================================================
No changes
==============================================================

stdafx.cpp
==============================================================
01/23/2002: Added the __MSVC_DLL__ preprocessor directive, which 
is now required to compile the DLL library. This directive was added 
to allow the DLL code base to be combined with the UNIX library and 
static library code bases. 
==============================================================

strutil.cpp
==============================================================
07/10/2001: Added __AIX__ conditional directive for the IBM xlC 
C and C++ Compilers. This compiler does not define the 
strcasecmp() function.

09/28/2001: Added a string length parameter to the FindMatch()
and IFindMatch() functions used to set the length of the string
variable when the string is not null-terminated.

06/05/2002: Added standalone functions needed to work with both
ASCII and Unicode strings
 
06/05/2002: Added conversion functions used with ASCII and
Unicode string literals.

09/04/2002: Added Unicode versions of all strutil functions
included with release 4.1.

09/04/2002: All versions of the CaseICmp() functions are no 
longer using compiler dependent string case insensitive 
functions.

09/04/2002: All versions of the StringCat() functions now use 
null pointers as the default arguments and will return a null
string if no arguments are passed to the function from the 
caller.
==============================================================

systime.cpp
==============================================================
05/03/2002: The SysTime::FormatTime() will output use 4-digit 
dates under Linux gcc. This change was made to eliminate 2-
digit year warnings.

08/12/2002: The SysTime destructor will free heap space for the
SysTime::TimeBuffer variable for all objects using the reentrant
localtime_r() and gmtime_r() functions.

08/12/2002: Modified the SysTime::InitTimeBuffers() function to
call the reentrant localtime_r() function instead of localtime()
under UNIX.

08/12/2002: Removed the duplicate declaration of "time_t STime"
and "struct tm *TimeBuffer" from the SysTime::GetSystemDateTime()
function.

08/12/2002: Removed the duplicate declaration of "time_t STime"
and "struct tm *TimeBuffer" from the SysTime::GetSystemTime()
function.

08/12/2002: Removed the duplicate declaration of "time_t STime"
and "struct tm *TimeBuffer" from the SysTime::GetSystemDate()
function.

08/12/2002: Modified the SysTime::DateSpan() function to call 
the reentrant localtime_r() function instead of localtime()
under UNIX.

08/12/2002: Modified the SysTime::DaysOld() function to call 
the reentrant localtime_r() function instead of localtime()
under UNIX.

08/12/2002: Removed the duplicate declaration of "time_t STime"
and "struct tm *TimeBuffer" from the SysTime::GetGMTDateTime()
function.

08/12/2002: Modified the SysTime::GetGMTDateTime() function to 
call the reentrant gmtime_r() function instead of gmtime()
under UNIX.

09/03/2002: Added the SysTime::GetSMTPTime() function used
to make SMTP time stamps.

09/03/2002: Modified the SysTime::GetSystemDateTime function to 
call the reentrant localtime_r() function instead of localtime()
under UNIX.

09/03/2002: Modified the SysTime::GetSystemTime function to call
the reentrant localtime_r() function instead of localtime()
under UNIX.

09/03/2002: Modified the SysTime::GetSystemDate function to call
the reentrant localtime_r() function instead of localtime()
under UNIX.

09/04/2002: The __REENTRANT__ preprocessor directive must be 
defined during UNIX builds to enable the use of reentrant
localtime_r and gmtime_r calls within all SysTime functions
that initialize the internal time buffers.
==============================================================

terminal.cpp
==============================================================
03/24/2002: The DOS and Windows emulation no longer uses the 
C++ iostream to write to the console. The stdio library is now 
used to write to the console. 
==============================================================

thelpers.cpp
==============================================================
11/14/2002: Corrected bug in the gxThreadConditionTimedWait()
function for POSIX threads preventing the pthread_cond_timedwait() 
function from behaving in a predictable manner.
==============================================================

thrapiw.cpp
==============================================================
11/14/2002: Modified the gxThreadAPIWrapper::api_mSleep() to 
use the timed condition instead of the usleep() function 
under UNIX/POSIX.
==============================================================

thrpool.cpp
==============================================================
No changes
==============================================================

ustring.cpp
==============================================================
07/10/2001: Added __AIX__ conditional directive for the IBM xlC 
C and C++ Compilers. This compiler does not define the 
strcasecmp() function.

09/12/2001: Modified the UString::SetString() function to 
ensure that the "s" pointer is initialized before calling 
the strlen() function.

09/12/2001: Modified the UString::InsertAt() function to check 
the byte size to ensure that caller specified a number of bytes 
greater then zero.

11/15/2001: Modified the overloaded + const chat *s operator
to append the null terminated "s" string to the end of the
UString object.

02/27/2002: The logical length in the UString(unsigned bytes) 
constructor is now set to zero when this constructor is called.

06/05/2002: Added Unicode versions of all UStringB functions
included with release 4.1.

06/05/2002: Moved all UString functions to the UStringB class
and added the UStringw and gxwchar_t class used to operate on
Unicode strings.

09/04/2002: All versions of the CaseICmp() functions are no 
longer using compiler dependent string case insensitive 
functions.

09/10/2002: Added global null pointers used internally to 
return null character and null strings.

09/19/2002: Modified the UString::UString(unsigned nchars) and
UStringw::UStringw(unsigned nchars) constructors not to set the
logical length of the string object. The logical length will be
set when a string is assigned or copied into the string object.

10/13/2002: Added additional copy constructors, assignment operators, 
and overloaded += operators to support the wxString class.
==============================================================

wserror.cpp
==============================================================
07/10/2001: Changed include path for the gxstypes.h include file
from <gxstypes.h> to "gxstypes.h"
==============================================================


DataReel Copyright © 2001-2002 glNET Software, All Rights Reserved