summaryrefslogtreecommitdiff
path: root/cpp/lib/broker/BrokerChannel.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Changed u_int<n>_t to uint<n>_t for posix compliance.Alan Conway2007-03-151-7/+7
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9@518733 13f79535-47bb-0310-9956-ffa450edef68
* Merged revisions 496317 via svnmerge from Alan Conway2007-03-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid ........ r496317 | aconway | 2007-01-15 08:58:07 -0500 (Mon, 15 Jan 2007) | 12 lines 2006-12-08 Jim Meyering <meyering@redhat.com> Ensure that AccumulatedAck.range is not used uninitialized. * lib/broker/AccumulatedAck.h (AccumulatedAck): Make this a class, rather than a struct. (AccumulatedAck::AccumulatedAck): Add a constructor to require initialization of the "range" member. * lib/broker/BrokerChannel.cpp (Channel) [accumulatedAck]: Initialize. * tests/TxAckTest.cpp (TxAckTest) [acked]: Likewise. * tests/AccumulatedAckTest.cpp (testCovers): Initialize local. (testUpdateAndConsolidate): Likewise. ........ git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9@517849 13f79535-47bb-0310-9956-ffa450edef68
* r1237@fuschia: andrew | 2007-02-23 15:40:44 +0000Andrew Stitcher2007-02-231-3/+1
| | | | | | | Bug in acks - Small typo fixed git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9@510986 13f79535-47bb-0310-9956-ffa450edef68
* * cpp/lib/common/sys/ProducerConsumer.h:Alan Conway2007-02-141-2/+2
| | | | | | | | | | | | | | | General-purpose producer-consumer synchronization. Anywhere we have producer/consumer threads in qpid we should re-use this sync object rather than re-inventing the synchronization each time. * cpp/lib/common/sys/AtomicCount.h: Separated ScopedIncrement/ScopedDecrement into ScopedIncrement.h * cpp/tests/InProcessBroker.h: Added class InProcessBrokerClient, a self contained in-process client + broker convenience for tests. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9@507560 13f79535-47bb-0310-9956-ffa450edef68
* r1111@fuschia: andrew | 2007-02-09 15:51:10 +0000Andrew Stitcher2007-02-131-8/+21
| | | | | | | | | | Removed currently unused request tracking logic r1125@fuschia: andrew | 2007-02-13 21:51:30 +0000 Implemented receiveing batched Message.ok in c++ broker Implemented batched response frames in python client code git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9@507249 13f79535-47bb-0310-9956-ffa450edef68
* * gentools/templ.cpp/*Proxy*, CppGenerator.java: Changes to ProxyAlan Conway2007-02-131-51/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | classes to make them directly usable as an API for low-level AMQP access. - Proxies hold reference to a ChannelAdapter not just an output handler. - Removed MethodContext parameter, makes no sense on requester end. - Return RequestId from request methods so caller can correlate incoming responses. - Add RequestId parameter to response methods so caller can provide correlation for outgoing responses. - No longer inherit from *Operations classes as the signatures no longer match. Proxy is for caller (client/requester) and Operations is for callee (server/responder) * cpp/lib/client/ClientChannel.h: Channel provides a raw proxy to the broker. Normal users will still use the Channel API to deal with the broker, but advanced users (incl ourselves!) can use the raw API to directly send and receive any AMQP message. * cpp/lib/broker/BrokerChannel,BrokerAdapter: Refactor for new proxies. broker::Channel is also a ClientProxy * Sundry files: - Pass ProtcolVersion by value, it is only two bytes. - Misc. const correctness fixes. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9@506823 13f79535-47bb-0310-9956-ffa450edef68
* Handle invalid channels.Gordon Sim2007-02-091-10/+10
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9@505360 13f79535-47bb-0310-9956-ffa450edef68
* Fix to close connection when issuing a connection exception (ideally would ↵Gordon Sim2007-02-091-0/+2
| | | | | | wait a short while before doing so, but this is better than nothing for now). git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9@505291 13f79535-47bb-0310-9956-ffa450edef68
* r1104@fuschia: andrew | 2007-02-09 02:14:00 +0000Andrew Stitcher2007-02-091-4/+3
| | | | | | | Initial implementation of Message.get delivery git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9@505139 13f79535-47bb-0310-9956-ffa450edef68
* r1102@fuschia: andrew | 2007-02-09 00:52:04 +0000Andrew Stitcher2007-02-091-7/+14
| | | | | | | | Got ack working for the non batched case Small tidy up in broker Channel git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9@505108 13f79535-47bb-0310-9956-ffa450edef68
* * broker/BrokerMessage.cpp: Added ConnectionToken publisher.Alan Conway2007-02-071-1/+3
| | | | | | | | | | | | * cpp/lib/broker/BrokerMessageMessage.cpp: - Added ConnectionToken publisher. - Implemented getDeliveryMode, getApplicationHeaders * cpp/lib/broker/Reference.cpp: Holds MessageMessage instead of just MessageTransferBody. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9@504485 13f79535-47bb-0310-9956-ffa450edef68
* * cpp/lib/broker/BrokerQueue.cpp (): Centralized exceptions.Alan Conway2007-02-061-7/+8
| | | | | | | | | | | | | | | | | | | | | | | * cpp/lib/broker/BrokerAdapter.cpp (consume): Moved exceptions to Queue * cpp/lib/broker/BrokerChannel.cpp (consume): Moved exceptions to Queue * cpp/lib/broker/BrokerMessageBase.cpp: - Added getApplicationHeaders. * cpp/lib/broker/BrokerMessageMessage.cpp: - Fixed exchangeName/destination mix up. - Removed redundant constructor. - Added getApplicationHeaders * cpp/lib/broker/MessageHandlerImpl.cpp: - Added missing acknowledgements - Replaced assert(0) with throw "unimplemented". - Moved exchange existence exceptions to ExchangeRegistry - Handle transfers with references. * cpp/tests/Makefile.am (check): Don't run tests unless all libs built OK. * cpp/tests/python_tests: Re-enabled python tests. Not all passing. * python/tests/message.py (MessageTests.test_get): Replace get-ok with ok. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9@504305 13f79535-47bb-0310-9956-ffa450edef68
* Inline transferred messages deliveredAndrew Stitcher2007-02-061-0/+11
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9@504182 13f79535-47bb-0310-9956-ffa450edef68
* * broker/Reference, tests/ReferenceTest: class representing a reference.Alan Conway2007-02-061-14/+16
| | | | | | | | | | | | | | | | | * broker/BrokerChannel.cpp (complete): get destination exchange from Message, don't assume only one message in progress (could have multiple references open.) * broker/BrokerMessageMessage.cpp,.h: Contains transfer body and vector of append bodies. Construct from Reference. * broker/CompletionHandler.h: Extracted from BrokerMessage, used for MessageMessage also. * broker/ExchangeRegistry.cpp: Moved throw for missing exchanges to registry. * cpp/tests/start_broker: Increased wait time to 5 secs. * cpp/tests/*: renamed DummyChannel as MockChannel. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9@504172 13f79535-47bb-0310-9956-ffa450edef68
* * cpp/lib/common/framing/MethodContext.h: Reduced MethodContext toAlan Conway2007-02-021-14/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ChannelAdapter and Method Body. Request ID comes from body, ChannelAdapter is used to send frames, not OutputHandler. * cpp/lib/common/framing/ChannelAdapter.h,.cpp: Removed context member. Context is per-method not per-channel. * cpp/lib/broker/*: Replace direct use of OutputHandler and ChannelId with MethodContext (for responses) or ChannelAdapter (for requests.) Use context request-ID to construct responses, send all bodies via ChannelAdapter. * cpp/lib/broker/BrokerAdapter.cpp: Link broker::Channel to BrokerAdapter. * cpp/lib/broker/*: Remove unnecessary ProtocolVersion parameters. Fix bogus signatures: ProtocolVersion* -> const ProtocolVersion& * Cosmetic changes, many files: - fixed indentation, broke long lines. - removed unnecessary qpid:: prefixes. * broker/BrokerAdapter,BrokerChannel: Merged BrokerAdapter into broker::channel. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9@502767 13f79535-47bb-0310-9956-ffa450edef68
* There are a ton of FIXMES and request/response IDs are not yet working fullyAlan Conway2007-01-181-13/+22
| | | | | | | | | | | | | | | | | | | | | but all tests are passing. * broker::Broker: Removed requester/responder from broker. * framing::BodyHandler: added Requester/Responder to BodyHandler, becomes the base class for channel adapters in broker and client. * broker::BrokerAdapter: Inherit BodyHandler, wraps a broker::Channel. Hide private *HandlerImpl detail classes in BodyHandler.cpp. * broker::Connection: Requester/Responder/Adapter now per-channel. Connection channel map replaced with adapter map of BrokerAdapters. handle* functions moved to BrokerAdapter. All methods now handled by a BrokerAdapter for the relevant channel. ChannelHandlerImpl is repsonsible for checking that - No method on a non-0 channel is processed before open() - Channel 0 methods only happen on channel 0 and similar for non-zero methods Checks are not yet complete (see FIXMES) * client::ResponseHandler: fix for client hang if broker crashs. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9@497319 13f79535-47bb-0310-9956-ffa450edef68
* Separated adapter code from Connection class: Extracted allAlan Conway2007-01-171-6/+10
| | | | | | | | | | | HandlerImpl classes to BrokerAdapter. The Connection is now part of the version-invariant core, all version-dependent code is in BrokerAdapter. The extraction exposes some ugly dependencies between adapter, Connection and parts of the Broker. More refactoring to follow to improve encapsulation. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9@496926 13f79535-47bb-0310-9956-ffa450edef68
* Support for multi version, merge part 1. - can still refactor out dup use ofCarl C. Trieloff2006-12-201-5/+6
| | | | | | | | version object in client and server opperations. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@489212 13f79535-47bb-0310-9956-ffa450edef68
* * cpp/gen/Makefile.am: fixed generated code dependencies.Alan Conway2006-12-191-1/+1
| | | | | | | | * *Channel,SessionHandlerImpl,FramingTest: added FieldTable argument to consume() to conform to updated XML. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@488745 13f79535-47bb-0310-9956-ffa450edef68
* Allow xid to be associated with publication and acknowledgements.Gordon Sim2006-12-111-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@485594 13f79535-47bb-0310-9956-ffa450edef68
* Thanks Alan the static_cast does prevent the warning on rhel4/x86_64Steven Shaw2006-12-081-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@483943 13f79535-47bb-0310-9956-ffa450edef68
* Added new configuration option for staging threshold (size above which messages Gordon Sim2006-12-061-3/+3
| | | | | | | | | will be written to disk as content arrives rather than accumulating that content in memory). Pass this through to all channels and to the store on recovery. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@483046 13f79535-47bb-0310-9956-ffa450edef68
* 2006-12-01 Jim Meyering <meyering@redhat.com>Alan Conway2006-12-011-0/+257
This delta imposes two major changes on the C++ hierarchy: - adds autoconf, automake, libtool support - makes the hierarchy flatter and renames a few files (e.g., Queue.h, Queue.cpp) that appeared twice, once under client/ and again under broker/. In the process, I've changed many #include directives, mostly to remove a qpid/ or qpid/framing/ prefix from the file name argument. Although most changes were to .cpp and .h files under qpid/cpp/, there were also several to template files under qpid/gentools, and even one to CppGenerator.java. Nearly all files are moved to a new position in the hierarchy. The new hierarchy looks like this: src # this is the new home of qpidd.cpp tests # all tests are here. See Makefile.am. gen # As before, all generated files go here. lib # This is just a container for the 3 lib dirs: lib/client lib/broker lib/common lib/common/framing lib/common/sys lib/common/sys/posix lib/common/sys/apr build-aux m4 git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@481159 13f79535-47bb-0310-9956-ffa450edef68