summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/SemanticState.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Optimized handling of accepts and completions.Alan Conway2009-08-121-15/+39
| | | | | | | | | | SemanticState::accept/completed now make a single pass through the SequenceSet of commands and the unacked DeliveryRecord list in parallel, rather than doing a pass through unacked for every range in the SequenceSet. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@803655 13f79535-47bb-0310-9956-ffa450edef68
* Remove some unnecessary promotions of char* to std::string.Alan Conway2009-07-211-1/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@796333 13f79535-47bb-0310-9956-ffa450edef68
* Add directory to #includeAlan Conway2009-07-141-11/+11
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@793909 13f79535-47bb-0310-9956-ffa450edef68
* Performance improvements in AggregateOutput and SemanticState.Alan Conway2009-06-161-28/+30
| | | | | | | | | | | | | | Replaced AggregateOutput hierarchy with a flat list per connection holding only the OutputTasks that are potentially active. Tasks are droped from the list as soon as they return false, and added back when they may have output. Inlined frequently-used SequenceNumber functions. Replace std::list in QueueListeners with std::vector. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@785408 13f79535-47bb-0310-9956-ffa450edef68
* ConsumerImpl optimization - use atomic value for queueHasMessages.Alan Conway2009-05-251-17/+8
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@778452 13f79535-47bb-0310-9956-ffa450edef68
* ConsumerImpl optimization - only dispatch on queue if we were notified of ↵Alan Conway2009-05-251-2/+18
| | | | | | messages. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@778443 13f79535-47bb-0310-9956-ffa450edef68
* DeliveryRecord optimizations.Alan Conway2009-05-061-10/+10
| | | | | | | | Replace linear search with binary search. Collapse multi-pass mark-then-erase to a signle pass. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@772384 13f79535-47bb-0310-9956-ffa450edef68
* Remove useless qpid/shared_ptr.h wrapper.Alan Conway2009-05-061-2/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@772294 13f79535-47bb-0310-9956-ffa450edef68
* Undo buggy commit 770802.Alan Conway2009-05-041-4/+4
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@771354 13f79535-47bb-0310-9956-ffa450edef68
* Replace std::list with std::deque for SemanticState::unacked - more ↵Alan Conway2009-05-011-4/+4
| | | | | | efficient, improves latency. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@770802 13f79535-47bb-0310-9956-ffa450edef68
* cluster: fix delivery-property.exchange-name set on updated messages.Alan Conway2009-03-051-12/+4
| | | | | | | | | Logging improvements, useful for debugging: - qpid/SessionState.cpp: show frame bodies with command IDs. - assign cluster-wide id number to each Event. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@750456 13f79535-47bb-0310-9956-ffa450edef68
* Fix for bug in credit reallocation, along with test from rafaels@redhat.com ↵Gordon Sim2009-02-251-2/+4
| | | | | | that reproduces it. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@747833 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1660: If selected consumer can't take a message, ensure others are ↵Gordon Sim2009-02-121-2/+12
| | | | | | notified of message availability. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@743694 13f79535-47bb-0310-9956-ffa450edef68
* Cluster support for message time-to-live.Alan Conway2009-02-091-6/+5
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@742774 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1567: added 'exactly-once' guarantee to asynchronous replication of ↵Gordon Sim2009-01-201-4/+8
| | | | | | | | | | | | queue state * altered replication protocol to detect and eliminate duplicates * added support for acknowledged transfer over inter-broker bridges * added option to qpid-route to control this git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@736018 13f79535-47bb-0310-9956-ffa450edef68
* * QPID-1488: test that policy pointer is setGordon Sim2008-11-271-2/+3
| | | | | | | | | * don't flow to disk for null store implementation * add checks for undeflow in queue policy git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@721166 13f79535-47bb-0310-9956-ffa450edef68
* Cluster: replicate transaction state to newcomers.Alan Conway2008-11-051-1/+1
| | | | | | | | | | | | | constants.rb: generate type code constants for AMQP types. Useful with Array. framing/Array: - added some std:::vector like functions & typedefs. - use TypeCode enums, human readable ostream << operator. rubygen - fixed error in generation of exceptions for bad codes. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@711587 13f79535-47bb-0310-9956-ffa450edef68
* Adjust ACL-related enums to avoid Windows macro clashes; fixes QPID-1368Stephen D. Huston2008-10-301-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@709283 13f79535-47bb-0310-9956-ffa450edef68
* Revised transactional options to perftest as they could not be used on older ↵Gordon Sim2008-10-241-14/+2
| | | | | | | | | | boost versions due to ambiguity. Refactored TxAccept to avoid excessive testing and searching for delivery records. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@707615 13f79535-47bb-0310-9956-ffa450edef68
* Minor changes to provide access for cluster to replicate delivery records.Alan Conway2008-10-231-1/+1
| | | | | | | | | - broker::Queue: find message by position, set position. - broker::SemanticState: make record() public, add eachUnacked(), fix typo "NotifyEnabld" - broker::DeliveryRecord: added more public accessors git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@707406 13f79535-47bb-0310-9956-ffa450edef68
* Refactored DeliveryRecord and delivery path to remove some redundant code.Gordon Sim2008-10-211-18/+12
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@706811 13f79535-47bb-0310-9956-ffa450edef68
* cluster: DumpClient updates consumer notifyEnabled and blocked.Alan Conway2008-10-201-0/+5
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@706293 13f79535-47bb-0310-9956-ffa450edef68
* Added missing message.subscribe arguments to SemanticState::ConsumerImpl for ↵Alan Conway2008-10-161-10/+20
| | | | | | replication (and future use.) git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@705359 13f79535-47bb-0310-9956-ffa450edef68
* c++ broker: Don't hold on to delivery records for accepted/released messages ↵Gordon Sim2008-10-151-15/+1
| | | | | | | | | | unless required due to being in windowing mode. python client: Modified start() on incoming queue to setthe flow mode as credit (not windowing) git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@704838 13f79535-47bb-0310-9956-ffa450edef68
* Handle ttl in messages transfers received by the broker 7 added test for itGordon Sim2008-10-101-4/+11
| | | | | | | | Moved Timer instance from DtxManager to Broker so it can be shared git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@703521 13f79535-47bb-0310-9956-ffa450edef68
* This adds the user_id checking described in QPID-943.Rajith Muditha Attapattu2008-09-251-2/+14
| | | | | | | | If a user_id is supplied in message properties it will be checked against the id used for authentication. This check is disabled for federation links. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@699047 13f79535-47bb-0310-9956-ffa450edef68
* Corrected a careless mistake I made on an earlier commit.Gordon Sim2008-09-241-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@698615 13f79535-47bb-0310-9956-ffa450edef68
* Removed redundant code.Alan Conway2008-09-221-14/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@697834 13f79535-47bb-0310-9956-ffa450edef68
* Refactoring of queue/queue-policy:Gordon Sim2008-09-211-1/+1
| | | | | | | | | | | | - moved some logic out of Queue.cpp into QueuePolicy.cpp - moved QueuedMessage definition into its own header file - added checks for requeue and dequeue - split QueuePolicy logic into different sub classes Added ability to request old messages to be discareded to make room for new ones when configured limit has been reached. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@697603 13f79535-47bb-0310-9956-ffa450edef68
* Cluster support for copying shared broker state to new members.Alan Conway2008-09-101-6/+7
| | | | | | | | | | | | cluster/DumpClient: Copies broker shared state to a new broker via AMQP. broker/*Registry, Queue, QueueBindings: Added iteration functions for DumpClient broker/SemanticState.cpp: Allow DumpClient to sidestep setting of delivery-properties.exchange. client/Connection.h: Added Connection::open(Url) overload. client/SessionImpl: Added send(AMQBody, FrameSet) overload for forwarding broker messages. tests/cluster_test.cpp: Added test for DumpClient copying shared state between brokers. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@693918 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1261: initial fix (this degrades performance for shared queues with ↵Gordon Sim2008-09-091-22/+53
| | | | | | more than one consumer; I'll work on fixing that asap). This also moves the lock refered to in QQPID-1265 which I will update accordingly. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@693518 13f79535-47bb-0310-9956-ffa450edef68
* Patch from Gordon Sim to fix issues with hasOutput implementation.Alan Conway2008-08-071-2/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@683617 13f79535-47bb-0310-9956-ffa450edef68
* - Added OutputTask::hasOutput() test.Alan Conway2008-08-061-0/+5
| | | | | | | - Cluster only sends doOutput events when hasOutput() git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@683416 13f79535-47bb-0310-9956-ffa450edef68
* - Add support for ACL on message transferCarl C. Trieloff2008-08-011-1/+9
| | | | | | | | - Performance optimizations for ACL on message transfer git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@681690 13f79535-47bb-0310-9956-ffa450edef68
* Only reduce count and size maintained for queue plicy when messages are ↵Gordon Sim2008-07-251-1/+1
| | | | | | actually dequeued (i.e. acked). git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@679805 13f79535-47bb-0310-9956-ffa450edef68
* Enable dequeue for prototype clusterAlan Conway2008-07-171-3/+7
| | | | | | | | | - qpid/broker/SemanticState.cpp: moved doOutput into write idle callback. - qpid/broker/Connection.cpp: make doOutput an intercept point. - qpid/cluster/*: intercept doOutput to serialize output in cluster thread. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@677486 13f79535-47bb-0310-9956-ffa450edef68
* Removed dead code.Alan Conway2008-07-091-13/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@675155 13f79535-47bb-0310-9956-ffa450edef68
* Bring cluster code up to date.Alan Conway2008-06-181-1/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@669236 13f79535-47bb-0310-9956-ffa450edef68
* Moved from AccumulatedAck to SequenceSet in managing transactional acceptsGordon Sim2008-06-091-60/+3
| | | | | | | | | Added transactional option to perftest Removed clientid from ConnectionSettings as it appears not to be used git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@665890 13f79535-47bb-0310-9956-ffa450edef68
* Change to lazy-loading to avoid relying on the content-size to be set by client.Gordon Sim2008-06-041-0/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@663243 13f79535-47bb-0310-9956-ffa450edef68
* Better exception handling for commit.Gordon Sim2008-06-031-0/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@662774 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1095: another error code correctionGordon Sim2008-05-281-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@660952 13f79535-47bb-0310-9956-ffa450edef68
* Fixes to binding of member functions as raised on qpid list by Manuel Teira.Gordon Sim2008-05-281-11/+10
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@660886 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1042: ensure delievery record is kept where accept_mode=not-required, ↵Gordon Sim2008-05-091-1/+1
| | | | | | acquire_mode=not-acquired and flow_mode=credit git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@654737 13f79535-47bb-0310-9956-ffa450edef68
* Generate c++ code from final 0-10 specGordon Sim2008-04-241-9/+4
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@651423 13f79535-47bb-0310-9956-ffa450edef68
* QPID-944: do no-local checking where requested when there is an exclusive ↵Gordon Sim2008-04-221-0/+5
| | | | | | subscription active git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@650450 13f79535-47bb-0310-9956-ffa450edef68
* Better workaround for boost::ptr_map incompatibility between boost 1.33 and ↵Alan Conway2008-04-211-6/+6
| | | | | | 1.34, based on public properties of ptr::map types rather than version numbers. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@650221 13f79535-47bb-0310-9956-ffa450edef68
* QPID-920: converted c++ client to use final 0-10 protocolGordon Sim2008-04-201-4/+5
| | | | | | | | | | * connection handler converted to using invoker & proxy and updated to final method defs * SessionCore & ExecutionHandler replace by SessionImpl * simplified handling of completion & results, removed handling of responses git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@649915 13f79535-47bb-0310-9956-ffa450edef68
* Handle the set-redelivered flag on the final version of the message.release ↵Gordon Sim2008-04-091-2/+2
| | | | | | command. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@646452 13f79535-47bb-0310-9956-ffa450edef68
* Update to dtx inline with latest spec:Gordon Sim2008-03-261-5/+18
| | | | | | | | | | | | * Updated dtx handling in c++ broker to take account of separation of completion and acceptance. * Added final dtx method defs to extra xml fragment and implemented appropriate handlers in c++ broker. * Converted dtx python tests (recover test still requires some work on decoding arrays). * Allow creation of structs without type codes through a python session method. * Fixed exception handling in python client for commands with results. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@641464 13f79535-47bb-0310-9956-ffa450edef68