Imported Upstream version 1.64.0
[platform/upstream/boost.git] / libs / log / doc / html / boost / log / dynamic_type_dispatcher.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>Class dynamic_type_dispatcher</title>
5 <link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
6 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.Log v2">
8 <link rel="up" href="../../utilities.html#header.boost.log.utility.type_dispatch.dynamic_type_dispatcher_hpp" title="Header &lt;boost/log/utility/type_dispatch/dynamic_type_dispatcher.hpp&gt;">
9 <link rel="prev" href="../../BOOST_LOG_TIME_PERIOD_TYPES.html" title="Macro BOOST_LOG_TIME_PERIOD_TYPES">
10 <link rel="next" href="integral_types.html" title="Type definition integral_types">
11 </head>
12 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13 <table cellpadding="2" width="100%"><tr><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
14 <hr>
15 <div class="spirit-nav">
16 <a accesskey="p" href="../../BOOST_LOG_TIME_PERIOD_TYPES.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../utilities.html#header.boost.log.utility.type_dispatch.dynamic_type_dispatcher_hpp"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="integral_types.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
17 </div>
18 <div class="refentry">
19 <a name="boost.log.dynamic_type_dispatcher"></a><div class="titlepage"></div>
20 <div class="refnamediv">
21 <h2><span class="refentrytitle">Class dynamic_type_dispatcher</span></h2>
22 <p>boost::log::dynamic_type_dispatcher &#8212; A dynamic type dispatcher. </p>
23 </div>
24 <h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
25 <div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: &lt;<a class="link" href="../../utilities.html#header.boost.log.utility.type_dispatch.dynamic_type_dispatcher_hpp" title="Header &lt;boost/log/utility/type_dispatch/dynamic_type_dispatcher.hpp&gt;">boost/log/utility/type_dispatch/dynamic_type_dispatcher.hpp</a>&gt;
26
27 </span>
28 <span class="keyword">class</span> <a class="link" href="dynamic_type_dispatcher.html" title="Class dynamic_type_dispatcher">dynamic_type_dispatcher</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">type_dispatcher</span> <span class="special">{</span>
29 <span class="keyword">public</span><span class="special">:</span>
30   <span class="comment">// <a class="link" href="dynamic_type_dispatcher.html#boost.log.dynamic_type_dispatcherconstruct-copy-destruct">construct/copy/destruct</a></span>
31   <a class="link" href="dynamic_type_dispatcher.html#idp68412048-bb"><span class="identifier">dynamic_type_dispatcher</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
32   <a class="link" href="dynamic_type_dispatcher.html#idp68412752-bb"><span class="identifier">dynamic_type_dispatcher</span></a><span class="special">(</span><a class="link" href="dynamic_type_dispatcher.html" title="Class dynamic_type_dispatcher">dynamic_type_dispatcher</a> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
33   <a class="link" href="dynamic_type_dispatcher.html" title="Class dynamic_type_dispatcher">dynamic_type_dispatcher</a> <span class="special">&amp;</span> <a class="link" href="dynamic_type_dispatcher.html#idp68414432-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="dynamic_type_dispatcher.html" title="Class dynamic_type_dispatcher">dynamic_type_dispatcher</a> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
34
35   <span class="comment">// <a class="link" href="dynamic_type_dispatcher.html#idp68405184-bb">public member functions</a></span>
36   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> VisitorT<span class="special">&gt;</span> <span class="keyword">void</span> <a class="link" href="dynamic_type_dispatcher.html#idp68405744-bb"><span class="identifier">register_type</span></a><span class="special">(</span><span class="identifier">VisitorT</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
37   <span class="identifier">dispatching_map</span><span class="special">::</span><span class="identifier">size_type</span> <a class="link" href="dynamic_type_dispatcher.html#idp68410304-bb"><span class="identifier">registered_types_count</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
38 <span class="special">}</span><span class="special">;</span></pre></div>
39 <div class="refsect1">
40 <a name="idp140495120"></a><h2>Description</h2>
41 <p>The type dispatcher can be used to pass objects of arbitrary types from one component to another. With regard to the library, the type dispatcher can be used to extract attribute values.</p>
42 <p>The dynamic type dispatcher can be initialized in run time and, therefore, can support different types, depending on runtime conditions. Each supported type is associated with a functional object that will be called when an object of the type is dispatched. </p>
43 <div class="refsect2">
44 <a name="idp140496528"></a><h3>
45 <a name="boost.log.dynamic_type_dispatcherconstruct-copy-destruct"></a><code class="computeroutput">dynamic_type_dispatcher</code> 
46         public
47        construct/copy/destruct</h3>
48 <div class="orderedlist"><ol class="orderedlist" type="1">
49 <li class="listitem">
50 <pre class="literallayout"><a name="idp68412048-bb"></a><span class="identifier">dynamic_type_dispatcher</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>
51 <p>Default constructor </p>
52 </li>
53 <li class="listitem">
54 <pre class="literallayout"><a name="idp68412752-bb"></a><span class="identifier">dynamic_type_dispatcher</span><span class="special">(</span><a class="link" href="dynamic_type_dispatcher.html" title="Class dynamic_type_dispatcher">dynamic_type_dispatcher</a> <span class="keyword">const</span> <span class="special">&amp;</span> that<span class="special">)</span><span class="special">;</span></pre>
55 <p>Copy constructor </p>
56 </li>
57 <li class="listitem">
58 <pre class="literallayout"><a class="link" href="dynamic_type_dispatcher.html" title="Class dynamic_type_dispatcher">dynamic_type_dispatcher</a> <span class="special">&amp;</span> <a name="idp68414432-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="dynamic_type_dispatcher.html" title="Class dynamic_type_dispatcher">dynamic_type_dispatcher</a> <span class="keyword">const</span> <span class="special">&amp;</span> that<span class="special">)</span><span class="special">;</span></pre>
59 <p>Copy assignment </p>
60 </li>
61 </ol></div>
62 </div>
63 <div class="refsect2">
64 <a name="idp140517072"></a><h3>
65 <a name="idp68405184-bb"></a><code class="computeroutput">dynamic_type_dispatcher</code> public member functions</h3>
66 <div class="orderedlist"><ol class="orderedlist" type="1">
67 <li class="listitem">
68 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> VisitorT<span class="special">&gt;</span> 
69   <span class="keyword">void</span> <a name="idp68405744-bb"></a><span class="identifier">register_type</span><span class="special">(</span><span class="identifier">VisitorT</span> <span class="keyword">const</span> <span class="special">&amp;</span> visitor<span class="special">)</span><span class="special">;</span></pre>
70 <p>The method registers a new type</p>
71 <p>
72 </p>
73 <div class="variablelist"><table border="0" class="variablelist compact">
74 <colgroup>
75 <col align="left" valign="top">
76 <col>
77 </colgroup>
78 <tbody><tr>
79 <td><p><span class="term">Parameters:</span></p></td>
80 <td><div class="variablelist"><table border="0" class="variablelist compact">
81 <colgroup>
82 <col align="left" valign="top">
83 <col>
84 </colgroup>
85 <tbody><tr>
86 <td><p><span class="term"><code class="computeroutput">visitor</code></span></p></td>
87 <td><p>Function object that will be associated with the type <code class="computeroutput">T</code> </p></td>
88 </tr></tbody>
89 </table></div></td>
90 </tr></tbody>
91 </table></div>
92 </li>
93 <li class="listitem">
94 <pre class="literallayout"><span class="identifier">dispatching_map</span><span class="special">::</span><span class="identifier">size_type</span> <a name="idp68410304-bb"></a><span class="identifier">registered_types_count</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
95 <p>The method returns the number of registered types </p>
96 </li>
97 </ol></div>
98 </div>
99 </div>
100 </div>
101 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
102 <td align="left"></td>
103 <td align="right"><div class="copyright-footer">Copyright &#169; 2007-2016 Andrey Semashev<p>
104         Distributed under the Boost Software License, Version 1.0. (See accompanying
105         file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>).
106       </p>
107 </div></td>
108 </tr></table>
109 <hr>
110 <div class="spirit-nav">
111 <a accesskey="p" href="../../BOOST_LOG_TIME_PERIOD_TYPES.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../utilities.html#header.boost.log.utility.type_dispatch.dynamic_type_dispatcher_hpp"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="integral_types.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
112 </div>
113 </body>
114 </html>