diff options
| author | Alan Conway <aconway@apache.org> | 2006-11-06 16:43:31 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2006-11-06 16:43:31 +0000 |
| commit | 0c3f1084652f7d81f1ca992676e90c158eeb3e65 (patch) | |
| tree | 7488712d1ce7cc8ac5dcda656a36ee303d2d2e14 /cpp/README | |
| parent | 7847c1c0326e654845868ab4ab4ec27863a3e777 (diff) | |
| download | qpid-python-0c3f1084652f7d81f1ca992676e90c158eeb3e65.tar.gz | |
Minor source reorg, see README.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@471789 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/README')
| -rw-r--r-- | cpp/README | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/cpp/README b/cpp/README index 22eb925b91..789c535023 100644 --- a/cpp/README +++ b/cpp/README @@ -1,7 +1,5 @@ = Developer guide to C++ codebase = -See DESIGN for design notes, Makefile comment for build system notes. - == Prerequisites == Required to build: @@ -14,6 +12,7 @@ Optional: to generate documentation from source code comments you need: * graphviz 2.8: http://www.graphviz.org/ If you use yum to install packages: + # yum install apr apr-devel cppunit cppunit-devel boost boost-devel doxygen graphviz == Building == @@ -47,10 +46,17 @@ Main targets: * clean: cleans the current build only. Does not clean generated code. * spotless: cleans up all build output and removes the build directory. +=== Source Tree === + The source tree is structured as follows: * src/ - .h and .cpp source files, directories mirror namespaces. - * src_apr/ - source files that depend on APR - * src_linux/ - source files optimized for Linux. + * qpid/ + * sys/ - system abstractions: threading, IO. + * posix/ - posix implementation + * apr/ - portable APR implementation (for client side) + * framing - encoding/decoding AMQP messages + * client - client classes. + * broker - broker classes. * etc/ - Non-c++ resources, e.g. stylesheets. * test/ * unit/ - unit tests (cppunit plugins), directories mirror namespaces. @@ -63,6 +69,20 @@ Build system principles: * Corresponding .cpp and .h files in same directory for easy editing. * Source directory structure mirrors C++ namespaces. +=== Portability === + +All system calls are abstracted by classes in qpid/sys. This provides +an object-oriented C++ API and contains platform-specific code. + +These wrappers should be mainlly inline by-value classes so they +impose no run-time penalty compared do direct system calls. + +Initially we will have a full POSIX implementation and a portable +implementation suffcient for the client using the APR portability +library. The implementations may change in future but the interface +for qpid code outside the qpid/sys namespace should remain stable. + + === Unit tests === Unit tests are built as .so files containing CppUnit plugins. |
