1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Loki: Visitor Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li id="current"><a href="classes.html"><span>Classes</span></a></li>
<li>
<form action="search.php" method="get">
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td><label> <u>S</u>earch for </label></td>
<td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
</tr>
</table>
</form>
</li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical List</span></a></li>
<li><a href="annotated.html"><span>Class List</span></a></li>
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class Members</span></a></li>
</ul></div>
<h1>Visitor Class Reference<br>
<small>
[<a class="el" href="a00790.html">Visitor</a>]</small>
</h1><!-- doxytag: class="Visitor" --><code>#include <Visitor.h></code>
<p>
Inheritance diagram for Visitor:<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The building block of Acyclic <a class="el" href="a00724.html">Visitor</a><p>
<dl compact><dt><b>Usage</b></dt><dd></dd></dl>
Defining the visitable class:<p>
<div class="fragment"><pre class="fragment"> <span class="keyword">class </span>RasterBitmap : <span class="keyword">public</span> BaseVisitable<>
{
<span class="keyword">public</span>:
<a class="code" href="a00790.html#g2b6ed280714eca44a2713d3cee5b2093">LOKI_DEFINE_VISITABLE</a>()
};
</pre></div><p>
Way 1 to define a visitor: <div class="fragment"><pre class="fragment"> <span class="keyword">class </span>SomeVisitor :
<span class="keyword">public</span> BaseVisitor <span class="comment">// required</span>
<span class="keyword">public</span> <a class="code" href="a00724.html">Visitor</a><RasterBitmap>,
<span class="keyword">public</span> <a class="code" href="a00724.html">Visitor</a><Paragraph>
{
<span class="keyword">public</span>:
<span class="keywordtype">void</span> Visit(RasterBitmap&); <span class="comment">// visit a RasterBitmap</span>
<span class="keywordtype">void</span> Visit(Paragraph &); <span class="comment">// visit a Paragraph</span>
};
</pre></div><p>
Way 2 to define the visitor: <div class="fragment"><pre class="fragment"> <span class="keyword">class </span>SomeVisitor :
<span class="keyword">public</span> BaseVisitor <span class="comment">// required</span>
<span class="keyword">public</span> <a class="code" href="a00724.html">Visitor</a><LOKI_TYPELIST_2(RasterBitmap, Paragraph)>
{
<span class="keyword">public</span>:
<span class="keywordtype">void</span> Visit(RasterBitmap&); <span class="comment">// visit a RasterBitmap</span>
<span class="keywordtype">void</span> Visit(Paragraph &); <span class="comment">// visit a Paragraph</span>
};
</pre></div><p>
Way 3 to define the visitor: <div class="fragment"><pre class="fragment"> <span class="keyword">class </span>SomeVisitor :
<span class="keyword">public</span> BaseVisitor <span class="comment">// required</span>
<span class="keyword">public</span> <a class="code" href="a00724.html">Visitor</a><Seq<RasterBitmap, Paragraph>::Type>
{
<span class="keyword">public</span>:
<span class="keywordtype">void</span> Visit(RasterBitmap&); <span class="comment">// visit a RasterBitmap</span>
<span class="keywordtype">void</span> Visit(Paragraph &); <span class="comment">// visit a Paragraph</span>
};
</pre></div><p>
<dl compact><dt><b>Using const visit functions:</b></dt><dd></dd></dl>
Defining the visitable class (true for const):<p>
<div class="fragment"><pre class="fragment"> <span class="keyword">class </span>RasterBitmap : <span class="keyword">public</span> BaseVisitable<void, DefaultCatchAll, true>
{
<span class="keyword">public</span>:
<a class="code" href="a00790.html#g0d60fea385397a82b9d3b3d231517777">LOKI_DEFINE_CONST_VISITABLE</a>()
};
</pre></div><p>
Defining the visitor which only calls const member functions: <div class="fragment"><pre class="fragment"> <span class="keyword">class </span>SomeVisitor :
<span class="keyword">public</span> BaseVisitor <span class="comment">// required</span>
<span class="keyword">public</span> <a class="code" href="a00724.html">Visitor</a><RasterBitmap, void, true>,
{
<span class="keyword">public</span>:
<span class="keywordtype">void</span> Visit(<span class="keyword">const</span> RasterBitmap&); <span class="comment">// visit a RasterBitmap by a const member function</span>
};
</pre></div><p>
<dl compact><dt><b>Example:</b></dt><dd></dd></dl>
test/Visitor/main.cpp
<p>
<hr>The documentation for this class was generated from the following file:<ul>
<li>Visitor.h</ul>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 19 15:14:43 2006 for Loki by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>
|