From: Moshe M. <Mos...@Ka...> - 2008-06-23 13:55:28
|
I am looking for information on cpp-netlib, in order to evaluate it for possible use in a new project. I have been trying to find documentation of the library (high level and class level), but I haven't come across anything apart from two rather short pages (the Requirements specs and the Architecural doc) on the wiki. Is there anything beyond this available? Here is a summary of what we're looking for. I would very much appreciate it if someone here could tell me if cpp-netlib is appropriate for these requirements (or most of them): * Support for both UDP and TCP * Support for both synchronous and asynchronous I/O * A unified API for different transport types (TCP / UDP) * A chainable message filter interface * Asynchronous handling of tasks (separate from the network I/O) In particular, we are interested in a customizable concurrency model (single thread / thread pool / multiple thread pools), which allows the library user to specify parameters such as the following: * The size of the thread pool * The size of each thread's task queue * What policy to use for the task queue's size (fixed size vs. grow as needed) * What data structure to use for the queue (vector, list, etc.) We'd like an API that lets the user simply set these parameters, without having to write the code that acually implements it all. For a good example of what I'm talking about, see Apache MINA [<http://mina.apache.org/>] (which is for Java). All of its features [<http://mina.apache.org/features.html>] can, of course, be implemented by a developer working directly with Java's networking and concurrency API's -- but MINA provides a higher-level abstraction in which all the "plumbing" is already taken care of. Similarly, we could implement our needs by working directly with Boost.Asio, but I'm hoping that perhaps cpp-netlib already provides the sort of framework we're looking for. Does it? One other thing -- where can the sources be downloaded from? Is there a released tarball available (I haven't been able to find it), or do I need to check it out of SVN? Thanks for your help. Sincerely, Moshe Z. Matitya Kayote Networks, Ltd. |