summaryrefslogtreecommitdiff
path: root/qpid/cpp/gentools/templ.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Refresh of transitional xml to more closely reflect latest specificationGordon Sim2007-08-216-389/+0
| | | | | | | | | 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@568174 13f79535-47bb-0310-9956-ffa450edef68
* AMQBodies are no longer allocated on the heap and passed with shared_ptr.Alan Conway2007-08-162-68/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | 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@566822 13f79535-47bb-0310-9956-ffa450edef68
* Removed unused types: RequestId, ResponseId, MethodContext.Alan Conway2007-08-142-2/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@565821 13f79535-47bb-0310-9956-ffa450edef68
* Moved Proxy generation to rubygen.Alan Conway2007-08-094-221/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@564051 13f79535-47bb-0310-9956-ffa450edef68
* * Summary: new Frame type to replace AMQFrame. Instead of holdingAlan Conway2007-08-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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@563683 13f79535-47bb-0310-9956-ffa450edef68
* Use execution layer to acknowledge messages. Gordon Sim2007-07-271-0/+1
| | | | | | | | | 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@560285 13f79535-47bb-0310-9956-ffa450edef68
* Added initial 'execution-layer' to try out methods form the 0-10 execution ↵Gordon Sim2007-07-232-0/+9
| | | | | | class. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@558700 13f79535-47bb-0310-9956-ffa450edef68
* Moved src/ source code to src/qpid directory:Alan Conway2007-04-1310-16/+16
| | | | | | | | | | | - allows rhm package to build consistently against checked-out or installed qpid. - consistent correspondence between source paths and C++ namespaces. - consistent use of #include <qpid/foo> in source and by users. - allows header files to split over multiple directories, e.g. separating generated code, separating public API from private files. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@528668 13f79535-47bb-0310-9956-ffa450edef68
* * cpp/qpidc.spec.in: Added qpidd-devel sub-package.Alan Conway2007-04-111-1/+1
| | | | | | | | | | | | * cpp/configure.ac: Use a more reliable srcdir test file. * cpp/docs/api/Makefile.am: Fix bug in VPATH builds. * cpp/gentools/*, src/**.h,**.cpp: Fix #includes of files in gen/ * cpp/rpm/Makefile.am: Removed. RPM targets defined in top level Makefile.am. * cpp/Makefile.am: Add RPM targets, fix VPATH bug with RPM targets * cpp/rpm/README.qpidd-devel: placeholder for qpidd-devel documentation. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@527639 13f79535-47bb-0310-9956-ffa450edef68
* Fix for the most disruptive items in QPID-243.Andrew Stitcher2007-04-0210-16/+16
| | | | | | | | | | | | * All #include lines now use '""' rather than '<>' where appropriate. * #include lines within the qpid project use relative includes so that the same path will work in /usr/include when installed as part of the client libraries. * All the source code has now been rearranged to be under src in a directory analogous to the namespace of the classes in it. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@524769 13f79535-47bb-0310-9956-ffa450edef68
* More changes preparatory to changing all #include linesAndrew Stitcher2007-03-2910-16/+16
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@523848 13f79535-47bb-0310-9956-ffa450edef68
* Renamed cpp-0-9 to cppAlan Conway2007-03-2111-0/+655
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@520706 13f79535-47bb-0310-9956-ffa450edef68