Apache Qpid C++ API
Apache Qpid - AMQP Messaging for Java JMS, C++, Python, Ruby, and .NET Apache Qpid Documentation

qpid/framing/Visitor.h File Reference

#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 Documentation

#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)) \
    {}
Convenience macro to generate a visitor interface.

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> {};
Parameters:
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.

Definition at line 61 of file Visitor.h.

#define QPID_VISITOR_BASE ( _1,
_2,
 )     , public ::qpid::framing::Visit<T>

Definition at line 49 of file Visitor.h.

#define QPID_VISITOR_DECL ( _1,
_2,
 )     class T;

Definition at line 47 of file Visitor.h.


Qpid C++ API Reference
Generated on Tue Dec 8 15:39:48 2009 for Qpid C++ Client API by doxygen 1.4.7