summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/framing
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Correction to interpretation of flags (B/E refer to the first/last segment ↵Gordon Sim2007-10-022-2/+2
| | | | | | in the frameset and should be set on all frames in such segments). git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@581214 13f79535-47bb-0310-9956-ffa450edef68
* Fixed bug introduced in r577027 where the header frame of a message is ↵Gordon Sim2007-10-021-0/+17
| | | | | | directly passed to output handler where the channel is changed. This causing problems when the message is sent to multiple channels concurrently. I've added a const modifier to preventthe message being altered by sendHeader(). git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@581185 13f79535-47bb-0310-9956-ffa450edef68
* * src/qpid/framing/ResumeHandler.cpp: Handle ack and resume logicAlan Conway2007-10-012-0/+125
| | | | | | | for broker and client. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@580984 13f79535-47bb-0310-9956-ffa450edef68
* Minor refactoring of execution layerGordon Sim2007-09-284-1/+13
| | | | | | | | Set sync bit when session is in sync mode git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@580380 13f79535-47bb-0310-9956-ffa450edef68
* Honour sync bit when processing L4 methodGordon Sim2007-09-282-1/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@580266 13f79535-47bb-0310-9956-ffa450edef68
* Some revisions to rubygen for packed structs and execution header (changes ↵Gordon Sim2007-09-271-0/+48
| | | | | | not yet enabled) git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@580094 13f79535-47bb-0310-9956-ffa450edef68
* Start execution mark from -1 (0xFFFFFFFF)Gordon Sim2007-09-261-1/+1
| | | | | | | | Rename ackFrequency as ackBatchSize in Dispatcher git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@579553 13f79535-47bb-0310-9956-ffa450edef68
* Use octet each for class and method id (changed c++ and python)Gordon Sim2007-09-214-10/+10
| | | | | | | | | | | | | | | | | | Modified indexes in xml for message.empty, message.offset and the c++ cluster class Fixed encoding for rfc1982-long-set in c++ and python (its a size not a count that is prepended) Fixed minor typo in configuration option help string Use session.open/close in python tests, handle session.closed Commented out the response tag in session.close due to pythons ambiguity as to whether session.closed is a response or not Disabled broker.test_closed_channel (due to above issue); broker behaves as expected but test fails; test_invalid_channel is safe enough for now. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@578053 13f79535-47bb-0310-9956-ffa450edef68
* Refactor HandlerImpl to use Session rather than CoreRefs.Alan Conway2007-09-183-21/+3
| | | | | | | Remove most uses of ChannelAdapter in broker code. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@577027 13f79535-47bb-0310-9956-ffa450edef68
* * rubygen/templates/Proxy.rb, src/qpid/framing/Proxy.cpp, Proxy.h:Alan Conway2007-09-184-13/+21
| | | | | | | | | | | | Drop ChannelAdapter, construct Proxy from FrameHandler. * src/qpid/framing/amqp_types.h: Added missing decl for class Uuid. * src/qpid/broker/HandlerImpl.h, src/qpid/broker/ConnectionAdapter.cpp: Fix Proxy constructor calls * src/qpid/framing/AMQFrame.h (class AMQFrame): construct from AMQBody only. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@576963 13f79535-47bb-0310-9956-ffa450edef68
* * src/qpid/broker/SessionHandler.cpp:Alan Conway2007-09-181-22/+27
| | | | | | | | | | - Make SessionHandler an InOutHandler. - SessionHandler::out sets channel ID on frames. * src/qpid/framing/Handler.h: Fixed InOutHandler template. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@576947 13f79535-47bb-0310-9956-ffa450edef68
* Added Dispatcher class (plus test). This converts incoming MessageTransfer ↵Gordon Sim2007-09-181-1/+1
| | | | | | framesets to Messages and pumps them to registered listeners. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@576935 13f79535-47bb-0310-9956-ffa450edef68
* Use frameset begin/end flags for determining frameset boundaries.Gordon Sim2007-09-138-23/+62
| | | | | | | | Set frameset & segment begin/end flags for content bearing methods (i.e. messages). git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@575377 13f79535-47bb-0310-9956-ffa450edef68
* * python/qpid/codec.pyAndrew Stitcher2007-09-122-19/+54
| | | | | | | | | | | | | | | | | Comment typo * cpp/src/qpid/broker/RecoveryManagerImpl.cpp Cruft removal * python/qpid/codec.py * python/qpid/connection.py * cpp/src/qpid/framing/AMQFrame.h * cpp/src/qpid/framing/AMQFrame.cpp Initial implementation of 0-10 framing - This uses the new 12 byte frame header, but doesn't support splitting segments/framesets over multiple frames yet. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@574735 13f79535-47bb-0310-9956-ffa450edef68