Qpid C++ AMQP implementation
=============================

= Project layout =

For Build system design see comment at start of Makefile.

Project contains:
 * Client library (lib/libqpid_client): src/qpid/client
 * Broker library (lib/libqpid_broker): src/qpid/broker
 * Common classes
  * src/qpid/framing: wire encoding/decoding
  * src/qpid/sys: io, threading etc
  * src/qpid/Exception.cpp, QpidError.cpp: Exception classes.
 * Qpid Daemon (bin/qpidd): src/qpidd.cpp

Unit tests in test/unit: each *Test.cpp builds a CppUnit plugin.

Client tests in test/client: each *.cpp builds a test executable.

Test utilities: test/include

= Client Design =

The client module is primarily concerned with presenting the
functionality offered by AMQP to users through a simple API that
nevertheless allows all the protocol functionality to be exploited.
[Note: it is currently nothing like complete in this regard!]

The code in the client module is concerned with the logic of the AMQP
protocol and interacts with the lower level transport issues through
the InputHandler and OutputHandler abstractions defined in
common/framing.  It uses these in conjunction with the Connector
interface, defined in common/io, for establishing a connection to the
broker and interacting with it through the sending and receiving of
messages represented by AMQFrame (defined in common/framing).

The Connector implementation is responsible for connection set up,
threading strategy and getting data on and off the wire.  It delegates
to the framing module for encode/decode operations.  The interface
between the io and the framing modules is primarily through the Buffer
and AMQFrame classes. 

A Buffer allows 'raw' data to be read or written in terms of the AMQP
defined 'types' (octet, short, long, long long, short string, long
string, field table etc.).  AMQP is defined in terms frames with
specific bodies and the frame (as well as these different bodies) are
defined in terms of these 'types'.  The AMQFrame class allows a frame
to be decoded by reading from the supplied buffer, or it allows a
particular frame to be constructed and then encoded by writing to the
supplied buffer.  The io layer can then access the raw data that
'backs' the buffer to either out it on the wire or to populate it from
the wire.

One minor exception to this is the protocol initiation.  AMQP defines
a protocol 'header', that is not a frame, and is sent by a client to
intiate a connection.  The Connector allows (indeed requires) such a
frame to be passed in to initialise the connection (the Acceptor, when
defined, will allow an InitiationHandler to be set allowing the broker
to hook into the connection initiation).  In order to remove
duplication, the ProtocolInitiation class and the AMQFrame class both
implement a AMQDataBlock class that defines the encode and decode
methods.  This allows both types to be treated generically for the
purposes of encoding.  In decoding, the context determines which type
is expected and should be used for decoding (this is only relevant to
the broker).



              
                  --------api--------                                     
                     Client Impl     ...............uses.....
input handler --> --------- --------- <-- output handler    .
                     A         |                            .
                     |         |                      framing utils   
                     |         V                            .
                  ------------------- <-- connector         .
                       IO Layer      ................uses....
