Tree [r60] /
 History



File Date Author Commit
 example 2012-05-21 iaelion [r60] fixed cp_list_iterator_insert and cp_list_itera...
 man3 2011-11-18 iaelion [r43] adding actual man pages
 svc 2012-01-23 iaelion [r57] cp_fatal no longer exits
 test 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 COPYING 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 ChangeLog 2012-05-21 iaelion [r60] fixed cp_list_iterator_insert and cp_list_itera...
 INSTALL 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 INSTALL.WIN32 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 LIBVERSION_CP_DBMS_MYSQL 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 LIBVERSION_CP_DBMS_POSTGRES 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 Makefile.in 2012-01-24 iaelion [r59] Makefile.in - move SHELL definition before LIBTOOL
 Makefile.vc 2011-11-28 iaelion [r47] updated makefiles to compile rtrie
 README 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 README.WIN32 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 VERSION 2012-01-23 iaelion [r58] release 0.1.12
 avl.c 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 avl.h 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 bit_sequence.c 2011-01-15 iaelion [r29] adding cp_rtrie_fetch_matches
 bit_sequence.h 2011-01-02 iaelion [r19] adding example code to test rtrie insert
 bstr.c 2011-11-29 iaelion [r49] use clz64 where available
 bstr.h 2011-11-28 iaelion [r48] use builtin CLZ with gcc and MSVC
 btree.c 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 btree.h 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 client.c 2012-01-23 iaelion [r57] cp_fatal no longer exits
 client.h 2012-01-23 iaelion [r57] cp_fatal no longer exits
 collection.c 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 collection.h 2011-11-29 iaelion [r49] use clz64 where available
 common.h 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 config.guess 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 config.h.in 2011-11-28 iaelion [r48] use builtin CLZ with gcc and MSVC
 config.h.vc 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 config.sub 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 configure.bat 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 configure.in 2012-01-09 pprindeville [r52] Fixes per: https://bugzilla.redhat.com/show_bug...
 db.c 2011-10-30 pprindeville [r35] Fix more signedness and other type mismatch iss...
 db.h 2011-10-30 pprindeville [r35] Fix more signedness and other type mismatch iss...
 db_mysql.c 2012-01-09 pprindeville [r52] Fixes per: https://bugzilla.redhat.com/show_bug...
 db_mysql.h 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 db_postgres.c 2011-10-30 pprindeville [r35] Fix more signedness and other type mismatch iss...
 db_postgres.h 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 hashlist.c 2011-10-30 pprindeville [r34] Fix compile warnings
 hashlist.h 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 hashtable.c 2011-10-30 pprindeville [r34] Fix compile warnings
 hashtable.h 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 heap.c 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 heap.h 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 http.c 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 http.h 2011-11-18 iaelion [r45] default http server name
 httpclient.c 2012-01-23 iaelion [r57] cp_fatal no longer exits
 httpclient.h 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 install-sh 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 libtool.m4 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 linked_list.c 2012-05-21 iaelion [r60] fixed cp_list_iterator_insert and cp_list_itera...
 linked_list.h 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 log.c 2012-01-23 iaelion [r57] cp_fatal no longer exits
 log.h 2010-11-28 iaelion [r2] adding wide char trie implementation
 ltmain.sh 2011-11-16 iaelion [r37] renaming cp_bit_sequence to cp_bstr
 makedepend.sh 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 mempool.c 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 mempool.h 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 mkinstalldirs 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 mtab.c 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 mtab.h 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 multimap.c 2011-10-30 pprindeville [r34] Fix compile warnings
 multimap.h 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 nary.c 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 nary.h 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 priority_list.c 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 priority_list.h 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 rb.c 2011-10-30 pprindeville [r34] Fix compile warnings
 rb.h 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 rtrie.c 2011-11-16 iaelion [r37] renaming cp_bit_sequence to cp_bstr
 rtrie.h 2011-11-16 iaelion [r37] renaming cp_bit_sequence to cp_bstr
 socket.c 2011-10-30 pprindeville [r34] Fix compile warnings
 socket.h 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 sorted_hash.c 2011-10-30 pprindeville [r34] Fix compile warnings
 sorted_hash.h 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 splay.c 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 splay.h 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 str.c 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 str.h 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 testhttpsrv.c 2012-01-23 iaelion [r57] cp_fatal no longer exits
 thread.c 2012-01-23 iaelion [r57] cp_fatal no longer exits
 thread.h 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 trie.c 2011-10-30 pprindeville [r34] Fix compile warnings
 trie.h 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 util.c 2011-11-29 iaelion [r49] use clz64 where available
 util.h 2011-10-30 pprindeville [r34] Fix compile warnings
 vector.c 2011-01-15 iaelion [r29] adding cp_rtrie_fetch_matches
 vector.h 2010-04-29 iaelion [r1] cprops 0.1.8 imported from cvs
 wtab.c 2010-11-28 iaelion [r2] adding wide char trie implementation
 wtab.h 2010-11-28 iaelion [r2] adding wide char trie implementation
 wtrie.c 2011-10-30 pprindeville [r34] Fix compile warnings
 wtrie.h 2010-11-28 iaelion [r2] adding wide char trie implementation

Read Me

cprops - c prototyping tools
============================

The c prototyping tools library consists of implementations for several widely 
used data structures and patterns, rudimentary tcp / httpd functionality and
a database abstraction layer. Object oriented development environments usually 
feature readymade implementations of such tools. 

Coding in c often allows better performance and closer control over application
behavior, which can be crucial in real life situations. libcprops provides 
generic tools for application development in plain c covering basic data 
structure implementations, persistence, threading and tcp communication. 

	data structures
	---------------
	o	linked list
	o	heap
	o	priority_list
	o	hashtable
	o	hashlist
	o	sorted hash
	o	AVL tree
	o	red-black tree
	o	splay tree
	o	N-ary tree
	o	PATRICIA tree - a character trie
	o	multimap - a data structure to support multiple indices
	
	application level
	-----------------
	o	cp_mempool, cp_shared_mempool - memory pool
	o	cp_thread - thread pool
	o	cp_client, cp_socket - tcp sockets
	o	cp_httpclient, cp_httpsocket - an HTTP socket api
	o	cp_dbms - a database abstraction layer


For your entertainment, the distribution comes with cpsvc, a web server based
on the cprops api and featuring support for CGI and cpsp, a c based page 
scripting environment. For more on cpsvc and cpsp see README under the svc/ 
directory.

Dependencies
============

 * libcprops relies on the POSIX threads api for synchronization features.

 * ssl features are implemented with OpenSSL. 

 * the build process uses libtool (see 
   http://www.gnu.org/software/libtool/libtool.html)

 * cp_dbms postgres support is based on libpq

 * cp_dbms mysql support is based on libmysqlclient
 
Compiling
=========
Once you've installed the library (see INSTALL), you should be able to compile
and link against either libcprops.a or libcprops.so, depending on the 
configuration settings you chose. Here's how you might compile the included
testhttpsrv.c program on linux:

$ gcc -D_REENTRANT -D_XOPEN_SOURCE=500 -c testhttpsrv.c
$ gcc -o testhttpsrv testhttpsrv.o -lcprops -lpthread -lssl

on Solaris, add -lsocket to the link command.

Documentation
=============
In the works. Man pages for data structures as well as socket, thread pool and 
http socket apis are available under man3 directory. To see an overview of the 
library before installing try 

$ man -M . cprops


Thank you for choosing libcprops. If you find a bug, please email 
iaelion@users.sourceforge.net.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks