diff options
author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2014-10-01 08:07:52 +0200 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2014-10-01 08:07:52 +0200 |
commit | 6c4f0aa3eaa0de86457dbc734ea552cd03a67a0d (patch) | |
tree | 3a5d5161046f3c97d9a18bd16285a807a20c2466 /README.md |
Initial import of psocksxx version 0.0.5-1
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..b6fd0ea --- /dev/null +++ b/README.md @@ -0,0 +1,125 @@ +psocksxx +======== + +A C++ wrapper for POSIX sockets + +### Copyright and License + +Copyright (C) 2013 Uditha Atukorala. + +This software library is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 3 of the License, or +(at your option) any later version. + +This software library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +[GNU Lesser General Public License](http://www.gnu.org/licenses/lgpl.html) +for more details. + + +### The Concept + +This project was started to add to the features provided by the simple +[socket-library](https://github.com/uditha-atukorala/socket-library) project, +specially socket timeouts. But rather than sticking to the same class structure +it was decided to use [stream buffers](http://gcc.gnu.org/onlinedocs/libstdc++/manual/streambufs.html) +in C++ standard library. + +The inspiration to derive from std::streambuf came from the [socket++](http://www.linuxhacker.at/socketxx) +library initially developed by Gnanasekaran Swaminathan. While the +socket++ library seems to be stable and feature rich, the coding style +and the lack of API documentation makes it a little difficult for the +beginners. + +psocksxx library attempts to borrow the concepts from socket++ and +socket-library, but not the code, and create a well documented (and +hopefully easy to understand) POSIX socket communication wrapper in +C++. To keep the code simple and clean this project will only support +POSIX sockets. + + +### Downloads +You can download the source distributions from http://packages.geniusse.com/source/psocksxx/. + + +#### Debian/Ubuntu packages +First you should add the repository key to avoid warnings. + + $ wget -q -O - http://packages.geniusse.com/debian/packman.gpg.key | sudo apt-key add - + +Then add the following to your `/etc/apt/sources.list`; + + $ deb http://packages.geniusse.com/debian/ [release] main + +where the `[release]` being wheezy, jessie, sid etc. + +Finally update your package list and install psocksxx; + + $ sudo aptitude update + $ sudo aptitude install libpsocksxx-dev + + +### Dependencies + +* CppUnit >= 1.12.1 (for unit tests) +* Doxygen (for doxygen documentation, of course) + + +### Bugs and Feature Requests + +Please report all bugs and feature requests in [bugzilla](http://bugs.geniusse.com/) under the +[psocksxx](http://bugs.geniusse.com/enter_bug.cgi?product=psocksxx) project. +Known issues can be found [here](http://bugs.geniusse.com/buglist.cgi?query_format=specific&order=relevance%20desc&bug_status=__open__&product=psocksxx&list_id=130). + + +### Version history + +__0.0.5__ - _29th June 2014_ +* Fixing inconsistent timeout behaviour on different systems + +__0.0.4__ - _10th November 2013_ +* bug fix - member functions should not be throwing exceptions if the + signature does not specify it. + +__0.0.3__ - _31st October 2013_ +* Suppress SIGPIPE signals +* Code cleanup work + +__0.0.2__ - _29th September 2013_ +* Added timeout support for socket communications +* New base socket stream I/O class to reduce redundant code +* Added install targets for doxygen generated docs + +__0.0.1__ - _19th September 2013_ +* Initial release + + +### Compiling from source + +If you are using the github source then first you need to initialise +autotools. + + $ libtoolize (glibtoolize in OS X) + $ aclocal + $ autoheader + $ autoconf + $ automake --add-missing (you will need automake >= 1.13) + +Or you can grab the latest snapshot tar from [CI artifacts](http://jenkins.geniusse.com/job/psocksxx/). + +After that you can use the usual `./configure && make` + + +### Notes +#### Continuous Integration + +There is a continuous integration Jenkins job hosted [here](http://jenkins.geniusse.com/job/psocksxx/) +which contains the latest artifacts, unit test results and documentation etc. + + +#### Doxygen documentation + +The latest doxygen documentation can be found at http://jenkins.geniusse.com/job/psocksxx/doxygen/. + |