Networking modules: CAVERNsoft 1.2
HIgher level modules: Modules_1.2
Networking modules: 26 October 2000
Higher level modules: 16 October 2000
Bug fixes made after 1.2 release version
1. CAVERNdb_client_c class
A memory leak was fixed in the CAVERNdb_client::process().The udpData character array is allocated here and was not deleted anywhere else. This has been corrected.
2. Makefile changes:
In CAVERN_MAKEFILE_INCLUDES.LINUX_X86 the default compiler has been set to g++ .
3. The perf_daemon directory was not set up when the distribution was installed. This has been corrected too.
Changes in higher level modules:
now available on Linux:
The higher level modules have been ported to linux and tested. New Makefiles have been added for compiling on linux. A script in the modules
directory called Make.script takes care of compiling all modules with the appropriate Makefile in each directory.
Performer Articulated Avatars:
New performer articulated avatars have been added to the distribution. The older perfavatars are now obsolete and moved into a directory called
obsolete. The articulated avatars have arm articulation incorporated, done with simple equation solving. The coanim and limbo programs now use the
articulated avatars instead.
New directories called armarticulation and perfarticavatar have files concerning articulated avatars.
New Modules Distribution:
The modules have been separated from the rest of the CAVERNsoft distribution. There are now two distribution files that can be downloaded - the networking modules and higher level modules.
Networking modules now on Solaris and Free BSD platforms:
Networking libraries have been compiled and tested on Solaris and Free BSD machines and the corresponding makefiles are included in the
An UDP Reflector has been included in the db server class to make a unreliable connection available for db clients to be used with the 'put' API. The init function of the server hence also takes in a parameter to specify a port to which the udp reflector is to be bound to.
1. The fetch remains to be only via a reliable connection
2. The user has to use an unreliable connection for all other clients while doing a 'put' - if the updates made in a key is to reach other clients. In other words using a reliable TCP connection makes sure that all other clients get updated by default, but when a UDP connection is used for a put, the updates only reach the clients who also use an unreliable connection.
Instrumenting Parallel File IO classes:
UDP reflector has a intercept callback incorporated - so the user can use this to intercept incoming messages and call a user defined callback, as in the tcp reflector. This was needed for using the datahandler in the db_server class, for using the udpreflector for a put function.
Fixed potential memory leaks in array functions
Fixed the bug in creating threads - a default pthread_detach() is done when a thread is created - this helps in automatic deallocation of memory when threads are created and allow us to create more threads asynchronously.
The following functions have been included to help in packing and unpacking arrays of numbers:
int packFloatArray(float* val, int sz) ;
int packDoubleArray(double* val, int sz) ;
int packIntArray(int* val, int sz) ;
int packInt32Array(int32* val, int sz) ;
int packInt64Array(int64* val, int sz) ;
int packLongArray(long* val, int sz) ;
int unpackFloatArray(float* Answer, int sz);
int unpackDoubleArray(double* Answer, int sz);
int unpackIntArray(int* Answer, int sz);
int unpackInt32Array(int32* Answer, int sz);
int unpackInt64Array(int64* Answer, int sz);
int unpackLongArray(long* Answer, int sz);
Read me instructions:
The Read me documents for installation have been slightly modified and rearranged. This changes page has been added, to give the date of a release and the changes from the previous release, starting from version 1.0b
New Cavern file list class:
The classes CAVERNmisc_fileInfo_c and CAVERNmisc_fileList_c have been added.
This is basically to obtain a list of files in a given path. A recursive listing option is also included. This is used in the CAVERNnet_remoteFileIOClient32_c and CAVERNnet_remoteParallelFileIOClient32_c classes, wherein a list of files, given a path from a remote machine can be obtained ( the getRemoteFileList() function)
These classes are available on SGI, Linux and Sun machines only (not windows and free bsd)
CAVERNnet_udp_c class - parameter for Non blocking mode:
The receive and send calls in CAVERNnet_udp_c take in parameters for the non blocking mode. The default is blocking mode (but
if makenonblocking() is called before these calls - the blocking mode remains non blocking)
CAVERNnet_tcpClient_c class - function to set socket options:
void setSockOptions (int option, int buffersize)
This is an interface to the setsockopt() function- currently just accepts a socket buffer size and sets it.
The target 'everything' in the Makefile has been modified to compile the library without globus. Globus can be compiled by typing
make everything_with globus
What was new in CAVERNG2 version 1.1 ?
If you have any problems or questions, send e-mail to firstname.lastname@example.org for direct support.