| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A visitor for all concrete frame body types.
* src/qpid/broker/SessionState.h: 3 states - closed, active, suspended.
* src/qpid/broker/SessionAdapter.h, .cpp: Session handler, implements
session class commands. In progres..
* rubygen/templates/MethodBodyDefaultVisitor.rb:
A visitor for all method body types.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@570236 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
| |
* src/qpid/broker/SuspendedSessions.h, .cpp: Stores suspended sessions.
* src/tests/Session.cpp: Test session classes.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@570164 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
| |
EXTRA_DIST
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@568221 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@568190 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
| |
Initial execution-result support (not yet handled on c++ client)
Generation is now all done through the ruby code (it is a little slower at present I'm afraid, will try to speed it up over the next weeks)
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@568174 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
| |
Small fixes to allow code to compile
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@567515 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@567129 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
| |
- Generate make fragments in $(srcdir) to fix VPATH builds.
- rubygen: generates its own .mk fragment
- rubygen: moved template info from Makefile.am to generated rubygen.mk, fixes circular dependency between Makefile and rubygen.mk
- removed unused templates.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@567072 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
AMQFrame contains a boost::variant of AMQHeaderBody,AMQContentBody,
AMQHeatbeatBody, and MethodHolder. A variant is basically a type-safe
union, it can allocate any of the types in-place.
MethodHolder contains a Blob, a less sophisticated kind of variant,
which can contain any of the concrete method body types.
Using variants for all the method types causes outrageous compile
times and bloated library symbol names. Blob lacks some of the finer
features of variant and needs help from generated code. For now both
are hidden to the rest of the code base behind AMQFrame and MethodBody
classes so if/when we decide to settle on just one "variant" type
solution we can do so.
This commit touches nearly 100 files, mostly converting method
signatures with shared_ptr<FooBody> to FooBody* or FooBody&, and
converting stored shared_ptr<AMQBody> to AMQFrame and
share_ptr<AMQMethodBody> to MethodHolder.
There is one outstanding client memory leak, which I will fix in my next commit.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@566822 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@566119 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@565950 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@565821 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
src/qpid/framing/AMQRequestBody.cpp
src/qpid/framing/AMQRequestBody.h
src/qpid/framing/AMQResponseBody.cpp
src/qpid/framing/AMQResponseBody.h
src/qpid/framing/Correlator.cpp
src/qpid/framing/Correlator.h
src/qpid/framing/MethodContext.cpp
src/qpid/framing/Requester.cpp
src/qpid/framing/Requester.h
src/qpid/framing/Responder.cpp
src/qpid/framing/Responder.h
Made changes to support their deletion.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@565770 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@565764 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
| |
execution layer.
Flow control support.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@564611 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@564605 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@564452 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* src/qpid/framing/MethodHolder.h, .cpp:
Replace boost::variant with Blob.
* rubygen/templates/MethodHolder.rb:
Generate support files for Blob-based MethodHolder.
* src/Makefile.am: generate MethodHolder suppport files.
* rubygen/cppgen.rb: Minor fixes/enhancements.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@564447 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
| |
Replace boost::variant with Blob.
* rubygen/templates/MethodHolder.rb:
Generate support files for Blob-based MethodHolder.
* src/Makefile.am: generate MethodHolder suppport files.
* rubygen/cppgen.rb: Minor fixes/enhancements.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@564409 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
| |
* src/Makefile.am: fixed so error in rubygen causes build to fail.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@564286 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@564137 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@564051 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
| |
Excessive compilation time.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@563975 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a shared_ptr to a heap-allocated AMQBody subclass, it holds the
body in-line in a boost::variant of all the concrete AMQBody
subclasses. Actually there are nested variants, the compiler
does not cope well with a single variant of 130-some types.
Creating, encoding and decoding a local Frame doess 0 heap
allocation apart from that done by the concrete
AMQBody::encode/decode - e.g. method bodies with std::string
fields. for method bodies
All variants contain type boost::blank. This guarantees 0 heap
alloocation by the variant and represents the "uninitialized"
state. variant.h provides NoBlankVisitor to help write visitors
for variants containing blank.
* src/qpid/framing/MethodHolder.h, .cpp: Holds a variant
containing a method body.
* src/qpid/framing/Frame.h, .cpp: New Frame holds body in a
variant rather than via heap allocation.
* src/qpid/framing/variant.h: Utilities for using boost::variant.
* src/qpid/framing/amqp_types.h: Added FrameType typedef.
* src/qpid/framing/AMQMethodBody.h: Friends with MethodHolder.
* src/Makefile.am:
- Improved ruby generation rule.
- Run method_variants template.
- Added new source files
- Pre-compiled header rule for method_variants.h
* rubygen/templates/method_variants.rb: Generate variants
to hold methods of each class, and MethodVariant to hold all
the class variants.
* rubygen/cppgen.rb: variant, tuple methods.
* MethodBodyClass.h.tmpl: Added default constructor to method bodies.
* amqpgen.rb (AmqpRoot::merge): fix bug in merge.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@563683 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
| |
Old channel interface still supported; shares SessionCore with the new interface.
Todo: allow applications to signal completion of received commands; keywrod args for interface.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@562866 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@562847 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
| |
* Introduced three separate 'handlers' for the connection, channel and execution 'layers'.
* Support for asynchronous retrieval of response or completion status.
* Channel methods no longer included in execution layers command id count.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@562212 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* rubygen: Cleanup and improvements, template for cluster work.
* configure.ac:
- support for ruby code generator + cleanup.
- moved "can generate" tests to configure.ac
- removed redundant APR stuff.
* bootstrap: Remove codegen from bootstrap, all in config/make.
* src/Makefile.am (libqpidcommon_la_LIBADD):
- Ruby code generator.
- Improvements to existing generator rules.
- Removed APR stuff.
* configure.ac (CPPUNIT_CXXFLAGS): Removed APR stuff.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@561869 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@561271 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
| |
* Removed all the leader-follower acceptor code (APR based acceptor)
* Removed the --enable/disable-apr-netio option to configure
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@560973 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- This is now implemented such that it very nearly only depends on the platform
code (Socker & Poller), this is not 100% true at present, but should be simple
to finish.
- This is still not the default (use "./configure --disable-apr-netio" to get it)
- Interrupting the broker gives a known error
- Default for number of broker io threads is not correct (needs to be number of CPUs -
it will run slower with too many io threads)
* EventChannel code
- Deleted all EventChannel code as it's entirely superceded by this new shiny code ;-)
* Rearranged the platform Socket implementations a bit for better abstraction
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@560323 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
| |
Turn off 0-9 framing of requests and responses.
Some refactoring around message delivery.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@560285 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* configure.ac: Enable clustering if suitable openais is present.
* src/tests/Cluster.cpp, .h, Cluster_child: Updated for 0-10
* src/qpid/sys/ConcurrentQueue.h: Added waitPop()
* src/Makefile.am, src/qpid/sys/ThreadSafeQueue.h, ProducerConsumer.h:
Removed unused code, ConcurrentQueue provides same functionality.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@559859 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@559619 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
| |
generator files have changed.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@559617 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
| |
included).
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@559059 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
| |
handler/adapter interfaces
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@557522 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Rewrote to remove libdaemon dependency.
- PID file stored in /var/run if root, /tmp otherwise.
* src/qpidd.cpp: Use new Daemon.cpp.
* lib/broker/Makefile.am (libqpidbroker_la_LIBADD):
- Daemon.cpp now needs -lboost_iostreams
* NOTICE, README, qpidc.spec.in: Removed mention of libdaemon.
* configure.ac:
- removed libdaemon
- cluster off by default - no ais dependencies.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@557455 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Connection no longer depends on Channel; it contains a map of
FrameHandler::Chains. (The construction of the chains still refers
to specific handlers).
* Channel is no longer tied to ChannelAdapter through inheritance. The
former is independent of any particular handler chain or protocol
version, the latter is still used by ConnectionAdapter and
SemanticHandler in the 0-9 chain.
* A DeliveryAdapter interface has been introduced as part of the
separation of ChannelAdapter from Channel. This is intended to adapt
from a version independent core to version specific mechanisms for
sending messages. i.e. it fulfills the same role for outputs that
e.g. BrokerAdapter does for inputs. (Its not perfect yet by any
means but is a step on the way to the correct model I think).
* The connection related methods sent over channel zero are
implemented in their own adapter (ConnectionAdapter), and are
entirely separate from the semantic layer. The channel control
methods are still bundled with the proper semantic layer methods;
they too can be separated but would have to share the request id
with the semantic method handler due to the nature of the 0-9 WIP.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@556846 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
| |
by queueing and dispatching in a separate thread if necessary.
* src/qpid/sys/*/Mutex.h: trylock to return a bool.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@556679 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@556069 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
| |
* Latest version of AsynchIO code
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@555455 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
| |
* separated out the connection level method handling from semantic level (session/channel level should also be separated)
* reduce coupling between Connection and Channel
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@554590 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* qpid/sys/Shlib.h, .cpp: Portable shared library abstraction.
- Shlib: load, unload, getSymbol
- AutoShlib: unload in destructor.
* qpid/sys/apr/Shlib.cpp sys/posix/Shlib.cpp: APR/Posix impls
* qpid/sys/Module.h: Reimplemented Module in terms of AutoShlib.
* qpid/Plugin.cpp, .h: Removed dlopen - use Shlib instead.
* qpid/broker/Broker.cpp: Added missing #include "qpid/log/Statement.h"
* tests/Shlib.cpp, shlibtest.cpp: Unit test
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@553056 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@552970 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
| |
drops to zero (i.e. there is no timeout).
This closes QPID-533.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@552751 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
| |
* Fix of current EventQueue code to carry on compiling
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@552001 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Improved plugin framework and HandlerUpdater interface.
- Cluster handlers for traffic to/from cluster.
- Cluster HandlerUpdater configures channel chains for cluster.
- Cluster PluginProvider registers cluster objects with broker.
* src/qpid/framing/AMQFrame.h: Made data members public. Handlers
need to be able to modify frame data, getters/setters are just a
nuisance here.
* src/tests/Cluster.cpp: Updated for cluster changes, using
handlers instead of friendship to hook test into Cluster code.
* src/qpid/framing/amqp_types.h: Added CHANNEL_MAX and
CHANNEL_HIGH_BIT constants.
* src/qpid/framing/HandlerUpdater.h: Renamed ChannelInitializer,
broke dependency on broker channel types.
* src/qpid/framing/Handler.h: Added constructors and nextHandler()
* src/qpid/framing/AMQFrame.h (class AMQFrame): Inlined getChannel()
* src/qpid/cluster/ClusterPluginProvider.cpp: Provider for cluster
plugins.
* src/qpid/cluster/Cluster.cpp: Use ChannelManager. Factor out
plugin details to ClusterPluginProvider.
* src/qpid/cluster/ChannelManager.h: Insert cluster handlers
into channel chains, route frames between cluster and channels.
* src/qpid/broker/BrokerAdapter.cpp (startOk): use CHANNEL_MAX
constant.
* src/qpid/broker/Broker.cpp:
- Refactored for new plugin framework.
- Added getUrl().
* src/qpid/Url.h: Added constructor from Address.
* src/qpid/Plugin.h: Generalized plugin framework, broke
dependency on Broker interfaces. We may want to use plug-ins for
clients also at some point.
* src/tests/run_test: Fix bug when VALGRIND is not set.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@551981 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Plugins can contribute configuration options and can call
extension point functions on the broker.
* src/qpid/broker/ChannelInitializer.h: Interface for plug-in
objects that want to modify newly created channels, e.g. to
modify the handler chains.
* src/qpid/broker/Broker.h: Added extension point for plug-ins to
contribute ChannelInitializer objects.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@551363 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
multiple qpid builds on one host will not conflict.
* src/tests/run_test, start_broker, kill_broker:
Broker writes port to file, run_test sets QPID_PORT
in environment of all tests.
* src/tests/topic_publisher.cpp, topic_listener.cpp, client_test.cpp:
All test clients use TestOptions to parse options from args and env.
* src/qpid/Options.h: Renamed from CommonOptions.h
Simplified use of Options class.
* src/qpid/Url.h: Renamed defaultPort constant.
* src/tests/logging.cpp:
* src/tests/interop_runner.cpp:
* src/tests/TestOptions.h:
* src/qpidd.cpp:
* src/qpid/log/Options.cpp:
* src/qpid/log/Logger.cpp:
* src/qpid/broker/Broker.cpp:
Updated for changes to Options.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@550993 13f79535-47bb-0310-9956-ffa450edef68
|