summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/framing
Commit message (Collapse)AuthorAgeFilesLines
* Fix message delivery for 0-10 final codepathGordon Sim2008-03-061-2/+6
| | | | | | | | Convert two more python tests to use 0-10 client git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@634229 13f79535-47bb-0310-9956-ffa450edef68
* forked python tests for 0-10 preview and 0-10 finalGordon Sim2008-03-051-1/+4
| | | | | | | | | | | fixed result handling in c++ broker modified testlib in python to allow new 0-10 client to be run as well converted query tests for final 0-10 added python tests for 0-10 final to automated set for c++ broker (most unconverted still) git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@634003 13f79535-47bb-0310-9956-ffa450edef68
* Further updates to support final 0-10 specGordon Sim2008-03-043-5/+5
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@633627 13f79535-47bb-0310-9956-ffa450edef68
* Completed holders, visitors and serialization for 0-10 commands and controls.Alan Conway2008-03-041-1/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@633533 13f79535-47bb-0310-9956-ffa450edef68
* Fixed consolidation of ranges and added further validation to tests.Gordon Sim2008-03-031-6/+10
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@633206 13f79535-47bb-0310-9956-ffa450edef68
* A further step to final 0-10 spec.Gordon Sim2008-03-0310-4/+332
| | | | | | | | | The extra.xml fragment adds class defs for connection in session that are in line with latest spec but use old schema. The preview codepath (99-0) remains unaltered. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@633108 13f79535-47bb-0310-9956-ffa450edef68
* - Added Buffer::Iterator so amqp_0_10::Codec can use a BufferAlan Conway2008-02-293-3/+104
| | | | | | | | - AMQBody wrappers for amqp_0_10::Command and Control - Extended AMQBody for CommandBody and ControlBody. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@632490 13f79535-47bb-0310-9956-ffa450edef68
* Template visitors for amqp_0_10::Command, Control and Struct.Alan Conway2008-02-291-1/+1
| | | | | | | Serialization for all str/vbin types. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@632457 13f79535-47bb-0310-9956-ffa450edef68
* QPID-820 from trossCarl C. Trieloff2008-02-282-1/+55
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@632087 13f79535-47bb-0310-9956-ffa450edef68
* Some refactoring of the 0-10 codepath (being migrated to final spec) that ↵Gordon Sim2008-02-252-0/+2
| | | | | | primarily colocates the current session and execution layers to facilitate implementing the new session layer that will now encompass this behaviour. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@630934 13f79535-47bb-0310-9956-ffa450edef68
* Start moving towards final 0-10 spec:Gordon Sim2008-02-211-1/+1
| | | | | | | | | | | | | * marked preview spec as 99-0 to distinguish it from 0-10 (which will now be used for the final version) * modified python client to treat 99-0 as 0-10 for now * modified broker to have two paths for the two different versions: 99-0 uses PreviewConnection, PreviewConnectionHandler and PreviewSessionHandler which are straight copy & pastes of the Connection, ConnectionHandler and SessionHandler now associated with 0-10 (so we can migrate the 0-10 path to the final spec without affecting clients working with the preview version) git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@629883 13f79535-47bb-0310-9956-ffa450edef68
* AMQP 0-10 type system:Alan Conway2008-02-212-0/+6
| | | | | | | | | | | | | | | | | | - new lightweight templated serialization framework - all fixed-size built-in types tested and working - all vbin & str types implemented, tests disabled need to fix encoding. The following types remain to be implemented: byte-ranges 2 byte ranges within a 64-bit payload sequence-set 2 ranged set representation map 0xa8 4 a mapping of keys to typed values list 0xa9 4 a series of consecutive type-value pairs array 0xaa 4 a defined length collection of values of a single type struct32 0xab 4 a coded struct with a 32-bit size git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@629679 13f79535-47bb-0310-9956-ffa450edef68
* Broker::connect - connect to URL, return ConnectionInputHandler.Alan Conway2008-02-132-3/+37
| | | | | | | | | | | | | | | | | | M src/qpid/broker/Broker.cpp M src/qpid/broker/Broker.h M src/qpid/sys/Acceptor.h M src/qpid/sys/AsynchIOAcceptor.cpp AMQBody::match - test for matching frames. M src/qpid/framing/AMQBody.cpp M src/qpid/framing/AMQBody.h Url::throwIfEmpty() - test for empty URL. M src/qpid/Url.cpp M src/qpid/Url.h git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@627484 13f79535-47bb-0310-9956-ffa450edef68
* Re-enabled build of cluster code when openais is installed.Alan Conway2008-01-291-6/+4
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@616507 13f79535-47bb-0310-9956-ffa450edef68
* Deleted unused classes, adjusted files that still mention them.Alan Conway2008-01-293-210/+0
| | | | | | | | | | | D src/qpid/framing/ChannelAdapter.cpp D src/qpid/framing/ChannelAdapter.h D src/qpid/framing/HandlerUpdater.h D src/tests/BrokerChannelTest.cpp D src/tests/MockChannel.h git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@616353 13f79535-47bb-0310-9956-ffa450edef68
* Client always collects at least an entire frameset into a single bufferAlan Conway2008-01-102-8/+7
| | | | | | | | | | | | | when possible. Based on patch from Gordon Sim. - Refactor Connector::writebuff, ::send as Connector::Writer - Collect frames up to EOF notifying AIO write. - Encode all available complete framesets into buffers as compactly as possible. - Logging buffer size and frames encoded per write for client and broker. - framing::Buffer added getPosition(), getSize(), default ctor, copy ctor. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@610972 13f79535-47bb-0310-9956-ffa450edef68
* Fixes to max frame size default and fragmentation on broker.Gordon Sim2007-12-181-1/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@605251 13f79535-47bb-0310-9956-ffa450edef68
* * Limited time allowed for reading on a single connection in a single go to 2msAndrew Stitcher2007-12-171-1/+1
| | | | | | | | * Limit bytes allowed to be written on a connection on a single go to the max ever read * Small performance fix for appending to FrameSets git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@604983 13f79535-47bb-0310-9956-ffa450edef68
* Disable recoding of frames for replay where replay will not be required.Gordon Sim2007-11-282-3/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@598992 13f79535-47bb-0310-9956-ffa450edef68
* perftest improvements.Alan Conway2007-11-272-5/+3
| | | | | | | | | | | | | | | | | | | | | | NOTE: options have changed, see perftest --help. - Supports multiple publishers. - Subscribers set credit to receive exactly the expected no. of messages. - All transfers unconfirmed by default. client/Connector.cpp: Added connector ID to RECV/SENT logging client/Completion.h: Added default ctor. broker/Broker.cpp: --ack defaults to 0 - session acks disabled. client/SessionCore.cpp: Ignore surplus frames in CLOSING state. log/Options.cpp: By default log to stdout instead of stderr. Easier to grep. framing/AMQContentBody.h: Log message content even in NDEBUG mode. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@598770 13f79535-47bb-0310-9956-ffa450edef68
* QPID-689 from tross@redhat.com.Alan Conway2007-11-231-1/+2
| | | | | | | | This patch introduces formal schema specification for management and code generation for management classes. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@597662 13f79535-47bb-0310-9956-ffa450edef68
* Added framing::BodyHolder:Alan Conway2007-11-2215-319/+263
| | | | | | | | | | | | | | - Uniform holder for all body types, replaces MethodHolder. - Uses in_place constructors to avoid avoid body copy. framing::AMQFrame: - Holds body in heap-allocated intrusive_ptr<BodyHolder> - Uses in_place constructors to avoid avoid body copy. Removed/downgraded to TODO many redundant FIXME comments. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@597513 13f79535-47bb-0310-9956-ffa450edef68
* Drop annoying session sequence log messages.Alan Conway2007-11-201-2/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@596744 13f79535-47bb-0310-9956-ffa450edef68
* Fix printing of headersGordon Sim2007-11-201-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@596612 13f79535-47bb-0310-9956-ffa450edef68
* Added qpid::InlineVector - std::vector with inline storage to avoidAlan Conway2007-11-161-5/+6
| | | | | | | | | | | | heap allocation for small vectors. Made SequenceNumberSet : public InlineVector<SequenceNumber, 2> In 100k perftest reduces heap allocation in client by 40%, broker 9%. . git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@595808 13f79535-47bb-0310-9956-ffa450edef68
* Stopped frameset from assembling messages piecewise.Alan Conway2007-11-133-32/+25
| | | | | | | Roughly halves allocations on the broker, not much effect on client. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@594647 13f79535-47bb-0310-9956-ffa450edef68
* Minimal bounds checkingGordon Sim2007-11-122-0/+9
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@594198 13f79535-47bb-0310-9956-ffa450edef68
* Add DeliveryMode enum to AMQHeaderBody.h, remove from tests.Alan Conway2007-11-101-0/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@593726 13f79535-47bb-0310-9956-ffa450edef68
* Replace vector in AMQHeaderBody with boost::optional.Alan Conway2007-11-102-91/+61
| | | | | | | Eliminates 40% of allocs. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@593721 13f79535-47bb-0310-9956-ffa450edef68
* Get rid of BasicHeaderProperties, dead code from 0-8 protocol.Alan Conway2007-11-096-284/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@593692 13f79535-47bb-0310-9956-ffa450edef68
* Make standard exchanges durableGordon Sim2007-11-081-0/+6
| | | | | | | | Ensure flags are set correctly for recovered messages with no content git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@593159 13f79535-47bb-0310-9956-ffa450edef68
* Fix for QPID-639: c++ now includes sizes for all structs (enabled the same ↵Gordon Sim2007-11-073-6/+19
| | | | | | in python & java) git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@592895 13f79535-47bb-0310-9956-ffa450edef68
* Add support for array type to c++ (and python, decode only for now)Gordon Sim2007-11-065-2/+199
| | | | | | | | Change the type of the in-doubt field in dtx-coordination.recover to an array (to bring in line with amqp spec) git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@592494 13f79535-47bb-0310-9956-ffa450edef68
* locking around access to the unacked out bufferGordon Sim2007-11-012-2/+9
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@591026 13f79535-47bb-0310-9956-ffa450edef68
* Preparation for session thread safety overhaul:Alan Conway2007-11-012-6/+40
| | | | | | | | | | - simplified SessionState, responsibility for protocol states now in Handlers - qpid::RefCounted, qpid::intrusive_ptr reference counting support. - build boost unit tests as single exe, speeds up testing. - fixed leak in AsynchIOAcceptor.cpp git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@590869 13f79535-47bb-0310-9956-ffa450edef68
* Simplify SessionState, preparing for session thread safety fixes.Alan Conway2007-10-312-40/+6
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@590751 13f79535-47bb-0310-9956-ffa450edef68
* ##-*-text-*-Alan Conway2007-10-292-12/+35
| | | | | | | | | Added qpidd --ack option to set ack/solicit-ack interval. 0 disabled acks. Sessions with 0 timeout never ack and don't store replay frames. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@589731 13f79535-47bb-0310-9956-ffa450edef68
* Session resume support in client & broker: Client can resume a sessionAlan Conway2007-10-2622-233/+418
| | | | | | | | | | | | | | | | | | | | | | | | | after voluntary suspend() or network failure. Frames lost in network failure are automatically re-transmitted for transparent re-connection. client::Session improvements: - Locking to avoid races between network & user threads. - Replaced client::StateManager with sys::StateMonitor - avoid heap allocation. qpid::Exception clean up: - use QPID_MSG consistently to format exception messages. - throw typed exceptions (in reply_exceptions.h) for AMQP exceptions. - re-throw correct typed exception on client for exceptions from broker. - Removed QpidError.h rubygen/templates/constants.rb: - constants.h: Added FOO_CLASS_ID and FOO_BAR_METHOD_ID constants. - reply_constants.h: Added throwReplyException(code, text) log::Logger: - Fixed shutdown race in Statement::~Initializer() git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@588761 13f79535-47bb-0310-9956-ffa450edef68
* More tidying up of field table APIAndrew Stitcher2007-10-233-11/+32
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@587480 13f79535-47bb-0310-9956-ffa450edef68
* QPID-651 applied patch from TedCarl C. Trieloff2007-10-192-2/+12
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@586578 13f79535-47bb-0310-9956-ffa450edef68
* git-svn-id: ↵Andrew Stitcher2007-10-193-296/+5
| | | | https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@586520 13f79535-47bb-0310-9956-ffa450edef68
* More rearranging of template specialisation to avoid gccisms and conform ↵Andrew Stitcher2007-10-182-24/+12
| | | | | | correctly to the standard git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@586054 13f79535-47bb-0310-9956-ffa450edef68
* Recast int to FixedWidthValue conversions to avoid tamplate specialisation ↵Andrew Stitcher2007-10-182-130/+18
| | | | | | and be more general git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@585966 13f79535-47bb-0310-9956-ffa450edef68
* Fixed return of acquired message ranges (and added tests)Gordon Sim2007-10-181-5/+11
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@585952 13f79535-47bb-0310-9956-ffa450edef68
* * Summary: generalized Invoker visitor to all *Operations andAlan Conway2007-10-165-30/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | *Handler classes, client and broker. Single template free function invoke(Invocable, const AMQBody&); works for all invocable handlers. * rubygen/templates/OperationsInvoker.rb: Generates invoker visitors for all Operations classes, client and server. * src/qpid/framing/Invoker.h: Invoker base class and template invoke() function. * rubygen/templates/structs.rb: add generic invoke method template to invoke an arbitrary object with the correct memeber function. * src/qpid/framing/AMQMethodBody.cpp, .h: Removed invoke(), replaced by qpid::framing::invoke() * src/qpid/broker/SemanticHandler.cpp, ConnectionHandler.cpp: Replace AMQMethodBody::invoke with invoke() free function. * src/qpid/framing/StructHelper.h: Avoid un-necessary alloc and copy in encode/decode. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@585223 13f79535-47bb-0310-9956-ffa450edef68
* Include declarations of the specialisations we define to make sure they are ↵Andrew Stitcher2007-10-161-0/+16
| | | | | | picked up correctly by everything git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@585190 13f79535-47bb-0310-9956-ffa450edef68
* Implementation of 0-10 field tablesAndrew Stitcher2007-10-169-95/+577
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@585097 13f79535-47bb-0310-9956-ffa450edef68
* Additional tests and fixesGordon Sim2007-10-044-7/+16
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@581957 13f79535-47bb-0310-9956-ffa450edef68
* Fix (and refactor) processing of ranges in message handler.Gordon Sim2007-10-041-0/+16
| | | | | | | | Alter release() to push released messages onto head in reverse order (todo: make this atomic instead) git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@581869 13f79535-47bb-0310-9956-ffa450edef68
* fixed decoding of b/e bitsRafael H. Schloming2007-10-031-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@581468 13f79535-47bb-0310-9956-ffa450edef68