Apache Qpid - AMQP Messaging for Java JMS, C++, Python, Ruby, and .NET | Apache Qpid Documentation |
#include <boost/mpl/vector.hpp>
#include <boost/type_traits/remove_reference.hpp>
#include <boost/preprocessor/seq/for_each.hpp>
Go to the source code of this file.
Namespaces | |
namespace | qpid |
namespace | qpid::framing |
Classes | |
struct | qpid::framing::Visit< T, R > |
visit() interface for type T (optional return type R, default is void. More... | |
struct | qpid::framing::VisitableRoot< V, R > |
The root class for the hierarchy of objects visitable by Visitor V. More... | |
struct | qpid::framing::Visitable< T, Base > |
The base class for concrete visitable classes. More... | |
Defines | |
#define | QPID_VISITOR_DECL(_1, _2, T) class T; |
#define | QPID_VISITOR_BASE(_1, _2, T) , public ::qpid::framing::Visit<T> |
#define | QPID_VISITOR(visitor, types) |
Convenience macro to generate a visitor interface. |
#define QPID_VISITOR | ( | visitor, | |||
types | ) |
Value:
BOOST_PP_SEQ_FOR_EACH(QPID_VISITOR_DECL, _, types) \ class visitor : public ::qpid::framing::Visit<BOOST_PP_SEQ_HEAD(types)> \ BOOST_PP_SEQ_FOR_EACH(QPID_VISITOR_BASE, _, BOOST_PP_SEQ_TAIL(types)) \ {}
QPID_VISITOR(MyVisitor,(A)(B)(C)); is equivalent to:
class A; class B; class C; class MyVisitor : public Visit<A> , public Visit<B> , public Visit<C> {};
visitor | name of the generated visitor class. | |
bases | a sequence of visitable types in the form (T1)(T2)... Any parenthesized notations are due to quirks of the preprocesser. |
#define QPID_VISITOR_BASE | ( | _1, | |||
_2, | |||||
T | ) | , public ::qpid::framing::Visit<T> |