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.