source: NonGTP/FCollada/Documentation/_f_u_singleton_8h.html @ 964

Revision 964, 24.6 KB checked in by igarcia, 18 years ago (diff)
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3<title>FCollada: FUtils/FUSingleton.h File Reference</title>
4<link href="doxygen.css" rel="stylesheet" type="text/css">
5<link href="tabs.css" rel="stylesheet" type="text/css">
6</head><body>
7<!-- Generated by Doxygen 1.4.6-NO -->
8<div class="tabs">
9  <ul>
10    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
11    <li><a href="modules.html"><span>Modules</span></a></li>
12    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
13    <li><a href="classes.html"><span>Classes</span></a></li>
14    <li id="current"><a href="files.html"><span>Files</span></a></li>
15    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
16  </ul></div>
17<div class="tabs">
18  <ul>
19    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
20    <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
21  </ul></div>
22<h1>FUtils/FUSingleton.h File Reference</h1>This file contains macros to easily implement singletons. <a href="#_details">More...</a>
23<p>
24
25<p>
26<a href="_f_u_singleton_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
27<tr><td></td></tr>
28<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
29<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_f_u_singleton_8h.html#80054a33903b7388a16714e1c1457930">DECLARE_SINGLETON_CLASS</a>(className)</td></tr>
30
31<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Declares a singleton.  <a href="#80054a33903b7388a16714e1c1457930"></a><br></td></tr>
32<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_f_u_singleton_8h.html#f2d3b45004590100a9ae266559574553">DECLARE_SINGLETON_CLASS_WITH_ARGS</a>(className, createArgs)</td></tr>
33
34<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Declares a singleton.  <a href="#f2d3b45004590100a9ae266559574553"></a><br></td></tr>
35<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_f_u_singleton_8h.html#31c26841707708d2b0e202fabc858975">DECLARE_SINGLETON_CLASS_WITH_ARGS2</a>(className, createArgs1, createArgs2)</td></tr>
36
37<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Declares a singleton.  <a href="#31c26841707708d2b0e202fabc858975"></a><br></td></tr>
38<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_f_u_singleton_8h.html#80acae0250e4fc33321a5f6da796ad64">IMPLEMENT_SINGLETON</a>(className)</td></tr>
39
40<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements the singleton.  <a href="#80acae0250e4fc33321a5f6da796ad64"></a><br></td></tr>
41<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_f_u_singleton_8h.html#776404929fb249f921d3b0c8e6a05e9d">IMPLEMENT_SINGLETON_WITH_ARGS</a>(className, createArg1)</td></tr>
42
43<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements the singleton.  <a href="#776404929fb249f921d3b0c8e6a05e9d"></a><br></td></tr>
44<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_f_u_singleton_8h.html#fcc40e57d68dfdcea02b58e165bdb6b8">IMPLEMENT_SINGLETON_WITH_ARGS2</a>(className, createArg1, createArg2)</td></tr>
45
46<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements the singleton.  <a href="#fcc40e57d68dfdcea02b58e165bdb6b8"></a><br></td></tr>
47<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_f_u_singleton_8h.html#390d687886630a4dad79aef45111a70c">IMPLEMENT_CREATE_SINGLETON</a>(className)</td></tr>
48
49<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements the construction of a singleton.  <a href="#390d687886630a4dad79aef45111a70c"></a><br></td></tr>
50<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_f_u_singleton_8h.html#d1545f4568a68e793011396ae2d814c1">IMPLEMENT_CREATE_SINGLETON_WITH_ARGS</a>(className, createArg1)</td></tr>
51
52<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements the construction of a singleton.  <a href="#d1545f4568a68e793011396ae2d814c1"></a><br></td></tr>
53<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_f_u_singleton_8h.html#214b07876da80015ee7272f64afb50c9">IMPLEMENT_CREATE_SINGLETON_WITH_ARGS2</a>(className, createArg1, createArg2)</td></tr>
54
55<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements the construction of a singleton.  <a href="#214b07876da80015ee7272f64afb50c9"></a><br></td></tr>
56<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_f_u_singleton_8h.html#97a5dd49a538ad3054fdd6a77acb08f1">IMPLEMENT_DESTROY_SINGLETON</a>(className)</td></tr>
57
58<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements the destruction of a singleton.  <a href="#97a5dd49a538ad3054fdd6a77acb08f1"></a><br></td></tr>
59</table>
60<hr><a name="_details"></a><h2>Detailed Description</h2>
61This file contains macros to easily implement singletons.
62<p>
63A singleton is a class which has only one object of this class. The advantage of a singleton over a static class is that the application controls when and how the singleton is created and destroyed. The disadvantage of a singleton is that you have one extra memory lookup to do. <hr><h2>Define Documentation</h2>
64<a class="anchor" name="80054a33903b7388a16714e1c1457930"></a><!-- doxytag: member="FUSingleton.h::DECLARE_SINGLETON_CLASS" ref="80054a33903b7388a16714e1c1457930" args="(className)" --><p>
65<table class="mdTable" cellpadding="2" cellspacing="0">
66  <tr>
67    <td class="mdRow">
68      <table cellpadding="0" cellspacing="0" border="0">
69        <tr>
70          <td class="md" nowrap valign="top">#define DECLARE_SINGLETON_CLASS          </td>
71          <td class="md" valign="top">(&nbsp;</td>
72          <td class="md" nowrap valign="top">className&nbsp;</td>
73          <td class="mdname1" valign="top" nowrap>          </td>
74          <td class="md" valign="top">&nbsp;)&nbsp;</td>
75          <td class="md" nowrap></td>
76        </tr>
77      </table>
78    </td>
79  </tr>
80</table>
81<table cellspacing="5" cellpadding="0" border="0">
82  <tr>
83    <td>
84      &nbsp;
85    </td>
86    <td>
87
88<p>
89<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keyword">private</span>: \
90    <span class="keyword">static</span> className* m_pSingleton; \
91<span class="keyword">public</span>: \
92    <span class="keyword">static</span> <span class="keywordtype">bool</span> CreateSingleton(); \
93    <span class="keyword">static</span> <span class="keywordtype">void</span> DestroySingleton(); \
94    <span class="keyword">friend</span> className* Get##className();
95</pre></div>Declares a singleton.
96<p>
97Use this macros within the class declaration. <dl compact><dt><b>Parameters:</b></dt><dd>
98  <table border="0" cellspacing="2" cellpadding="0">
99    <tr><td valign="top"></td><td valign="top"><em>className</em>&nbsp;</td><td>The name of the class. </td></tr>
100  </table>
101</dl>
102    </td>
103  </tr>
104</table>
105<a class="anchor" name="f2d3b45004590100a9ae266559574553"></a><!-- doxytag: member="FUSingleton.h::DECLARE_SINGLETON_CLASS_WITH_ARGS" ref="f2d3b45004590100a9ae266559574553" args="(className, createArgs)" --><p>
106<table class="mdTable" cellpadding="2" cellspacing="0">
107  <tr>
108    <td class="mdRow">
109      <table cellpadding="0" cellspacing="0" border="0">
110        <tr>
111          <td class="md" nowrap valign="top">#define DECLARE_SINGLETON_CLASS_WITH_ARGS          </td>
112          <td class="md" valign="top">(&nbsp;</td>
113          <td class="md" nowrap valign="top">className,         <tr>
114          <td class="md" nowrap align="right"></td>
115          <td class="md"></td>
116          <td class="md" nowrap>createArgs&nbsp;</td>
117          <td class="mdname1" valign="top" nowrap>          </td>
118          <td class="md" valign="top">&nbsp;)&nbsp;</td>
119          <td class="md" nowrap></td>
120        </tr>
121      </table>
122    </td>
123  </tr>
124</table>
125<table cellspacing="5" cellpadding="0" border="0">
126  <tr>
127    <td>
128      &nbsp;
129    </td>
130    <td>
131
132<p>
133<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keyword">private</span>: \
134    <span class="keyword">static</span> className* m_pSingleton; \
135<span class="keyword">public</span>: \
136    <span class="keyword">static</span> <span class="keywordtype">bool</span> CreateSingleton(createArgs); \
137    <span class="keyword">static</span> <span class="keywordtype">void</span> DestroySingleton(); \
138    <span class="keyword">friend</span> className* Get##className();
139</pre></div>Declares a singleton.
140<p>
141Use this macros within the class declaration. <dl compact><dt><b>Parameters:</b></dt><dd>
142  <table border="0" cellspacing="2" cellpadding="0">
143    <tr><td valign="top"></td><td valign="top"><em>className</em>&nbsp;</td><td>The name of the class. </td></tr>
144    <tr><td valign="top"></td><td valign="top"><em>createArgs</em>&nbsp;</td><td>An argument for the constructor of the singleton. </td></tr>
145  </table>
146</dl>
147    </td>
148  </tr>
149</table>
150<a class="anchor" name="31c26841707708d2b0e202fabc858975"></a><!-- doxytag: member="FUSingleton.h::DECLARE_SINGLETON_CLASS_WITH_ARGS2" ref="31c26841707708d2b0e202fabc858975" args="(className, createArgs1, createArgs2)" --><p>
151<table class="mdTable" cellpadding="2" cellspacing="0">
152  <tr>
153    <td class="mdRow">
154      <table cellpadding="0" cellspacing="0" border="0">
155        <tr>
156          <td class="md" nowrap valign="top">#define DECLARE_SINGLETON_CLASS_WITH_ARGS2          </td>
157          <td class="md" valign="top">(&nbsp;</td>
158          <td class="md" nowrap valign="top">className,         <tr>
159          <td class="md" nowrap align="right"></td>
160          <td class="md"></td>
161          <td class="md" nowrap>createArgs1,         <tr>
162          <td class="md" nowrap align="right"></td>
163          <td class="md"></td>
164          <td class="md" nowrap>createArgs2&nbsp;</td>
165          <td class="mdname1" valign="top" nowrap>          </td>
166          <td class="md" valign="top">&nbsp;)&nbsp;</td>
167          <td class="md" nowrap></td>
168        </tr>
169      </table>
170    </td>
171  </tr>
172</table>
173<table cellspacing="5" cellpadding="0" border="0">
174  <tr>
175    <td>
176      &nbsp;
177    </td>
178    <td>
179
180<p>
181<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keyword">private</span>: \
182    <span class="keyword">static</span> className* m_pSingleton; \
183<span class="keyword">public</span>: \
184    <span class="keyword">static</span> <span class="keywordtype">bool</span> CreateSingleton(createArgs1, createArgs2); \
185    <span class="keyword">static</span> <span class="keywordtype">void</span> DestroySingleton(); \
186    <span class="keyword">friend</span> className* Get##className();
187</pre></div>Declares a singleton.
188<p>
189Use this macros within the class declaration. <dl compact><dt><b>Parameters:</b></dt><dd>
190  <table border="0" cellspacing="2" cellpadding="0">
191    <tr><td valign="top"></td><td valign="top"><em>className</em>&nbsp;</td><td>The name of the class. </td></tr>
192    <tr><td valign="top"></td><td valign="top"><em>createArgs1</em>&nbsp;</td><td>A first argument for the constructor of the singleton. </td></tr>
193    <tr><td valign="top"></td><td valign="top"><em>createArgs2</em>&nbsp;</td><td>A second argument for the constructor of the singleton. </td></tr>
194  </table>
195</dl>
196    </td>
197  </tr>
198</table>
199<a class="anchor" name="390d687886630a4dad79aef45111a70c"></a><!-- doxytag: member="FUSingleton.h::IMPLEMENT_CREATE_SINGLETON" ref="390d687886630a4dad79aef45111a70c" args="(className)" --><p>
200<table class="mdTable" cellpadding="2" cellspacing="0">
201  <tr>
202    <td class="mdRow">
203      <table cellpadding="0" cellspacing="0" border="0">
204        <tr>
205          <td class="md" nowrap valign="top">#define IMPLEMENT_CREATE_SINGLETON          </td>
206          <td class="md" valign="top">(&nbsp;</td>
207          <td class="md" nowrap valign="top">className&nbsp;</td>
208          <td class="mdname1" valign="top" nowrap>          </td>
209          <td class="md" valign="top">&nbsp;)&nbsp;</td>
210          <td class="md" nowrap></td>
211        </tr>
212      </table>
213    </td>
214  </tr>
215</table>
216<table cellspacing="5" cellpadding="0" border="0">
217  <tr>
218    <td>
219      &nbsp;
220    </td>
221    <td>
222
223<p>
224<b>Value:</b><div class="fragment"><pre class="fragment">className* className::m_pSingleton; \
225    className* Get##className() { <span class="keywordflow">return</span> className::m_pSingleton; } \
226    <span class="keywordtype">bool</span> className::CreateSingleton() { \
227        m_pSingleton = <span class="keyword">new</span> className(); \
228        <span class="keywordflow">return</span> <span class="keyword">true</span>; }
229</pre></div>Implements the construction of a singleton.
230<p>
231Use this macros within the class implementation. <dl compact><dt><b>Parameters:</b></dt><dd>
232  <table border="0" cellspacing="2" cellpadding="0">
233    <tr><td valign="top"></td><td valign="top"><em>className</em>&nbsp;</td><td>The name of the class. </td></tr>
234  </table>
235</dl>
236    </td>
237  </tr>
238</table>
239<a class="anchor" name="d1545f4568a68e793011396ae2d814c1"></a><!-- doxytag: member="FUSingleton.h::IMPLEMENT_CREATE_SINGLETON_WITH_ARGS" ref="d1545f4568a68e793011396ae2d814c1" args="(className, createArg1)" --><p>
240<table class="mdTable" cellpadding="2" cellspacing="0">
241  <tr>
242    <td class="mdRow">
243      <table cellpadding="0" cellspacing="0" border="0">
244        <tr>
245          <td class="md" nowrap valign="top">#define IMPLEMENT_CREATE_SINGLETON_WITH_ARGS          </td>
246          <td class="md" valign="top">(&nbsp;</td>
247          <td class="md" nowrap valign="top">className,         <tr>
248          <td class="md" nowrap align="right"></td>
249          <td class="md"></td>
250          <td class="md" nowrap>createArg1&nbsp;</td>
251          <td class="mdname1" valign="top" nowrap>          </td>
252          <td class="md" valign="top">&nbsp;)&nbsp;</td>
253          <td class="md" nowrap></td>
254        </tr>
255      </table>
256    </td>
257  </tr>
258</table>
259<table cellspacing="5" cellpadding="0" border="0">
260  <tr>
261    <td>
262      &nbsp;
263    </td>
264    <td>
265
266<p>
267<b>Value:</b><div class="fragment"><pre class="fragment">className* className::m_pSingleton; \
268    className* Get##className() { <span class="keywordflow">return</span> className::m_pSingleton; } \
269    <span class="keywordtype">bool</span> className::CreateSingleton(createArg1 argument1) { \
270        m_pSingleton = <span class="keyword">new</span> className(argument1); }
271</pre></div>Implements the construction of a singleton.
272<p>
273Use this macros within the class implementation. <dl compact><dt><b>Parameters:</b></dt><dd>
274  <table border="0" cellspacing="2" cellpadding="0">
275    <tr><td valign="top"></td><td valign="top"><em>className</em>&nbsp;</td><td>The name of the class. </td></tr>
276    <tr><td valign="top"></td><td valign="top"><em>createArg1</em>&nbsp;</td><td>The argument for the constructor of the singleton. </td></tr>
277  </table>
278</dl>
279    </td>
280  </tr>
281</table>
282<a class="anchor" name="214b07876da80015ee7272f64afb50c9"></a><!-- doxytag: member="FUSingleton.h::IMPLEMENT_CREATE_SINGLETON_WITH_ARGS2" ref="214b07876da80015ee7272f64afb50c9" args="(className, createArg1, createArg2)" --><p>
283<table class="mdTable" cellpadding="2" cellspacing="0">
284  <tr>
285    <td class="mdRow">
286      <table cellpadding="0" cellspacing="0" border="0">
287        <tr>
288          <td class="md" nowrap valign="top">#define IMPLEMENT_CREATE_SINGLETON_WITH_ARGS2          </td>
289          <td class="md" valign="top">(&nbsp;</td>
290          <td class="md" nowrap valign="top">className,         <tr>
291          <td class="md" nowrap align="right"></td>
292          <td class="md"></td>
293          <td class="md" nowrap>createArg1,         <tr>
294          <td class="md" nowrap align="right"></td>
295          <td class="md"></td>
296          <td class="md" nowrap>createArg2&nbsp;</td>
297          <td class="mdname1" valign="top" nowrap>          </td>
298          <td class="md" valign="top">&nbsp;)&nbsp;</td>
299          <td class="md" nowrap></td>
300        </tr>
301      </table>
302    </td>
303  </tr>
304</table>
305<table cellspacing="5" cellpadding="0" border="0">
306  <tr>
307    <td>
308      &nbsp;
309    </td>
310    <td>
311
312<p>
313<b>Value:</b><div class="fragment"><pre class="fragment">className* className::m_pSingleton; \
314    className* Get##className() { <span class="keywordflow">return</span> className::m_pSingleton; } \
315    <span class="keywordtype">bool</span> className::CreateSingleton(createArg1 argument1, createArg2 argument2) { \
316        m_pSingleton = <span class="keyword">new</span> className(argument1, argument2); }
317</pre></div>Implements the construction of a singleton.
318<p>
319Use this macros within the class implementation. <dl compact><dt><b>Parameters:</b></dt><dd>
320  <table border="0" cellspacing="2" cellpadding="0">
321    <tr><td valign="top"></td><td valign="top"><em>className</em>&nbsp;</td><td>The name of the class. </td></tr>
322    <tr><td valign="top"></td><td valign="top"><em>createArg1</em>&nbsp;</td><td>A first argument for the constructor of the singleton. </td></tr>
323    <tr><td valign="top"></td><td valign="top"><em>createArg2</em>&nbsp;</td><td>A second argument for the constructor of the singleton. </td></tr>
324  </table>
325</dl>
326    </td>
327  </tr>
328</table>
329<a class="anchor" name="97a5dd49a538ad3054fdd6a77acb08f1"></a><!-- doxytag: member="FUSingleton.h::IMPLEMENT_DESTROY_SINGLETON" ref="97a5dd49a538ad3054fdd6a77acb08f1" args="(className)" --><p>
330<table class="mdTable" cellpadding="2" cellspacing="0">
331  <tr>
332    <td class="mdRow">
333      <table cellpadding="0" cellspacing="0" border="0">
334        <tr>
335          <td class="md" nowrap valign="top">#define IMPLEMENT_DESTROY_SINGLETON          </td>
336          <td class="md" valign="top">(&nbsp;</td>
337          <td class="md" nowrap valign="top">className&nbsp;</td>
338          <td class="mdname1" valign="top" nowrap>          </td>
339          <td class="md" valign="top">&nbsp;)&nbsp;</td>
340          <td class="md" nowrap></td>
341        </tr>
342      </table>
343    </td>
344  </tr>
345</table>
346<table cellspacing="5" cellpadding="0" border="0">
347  <tr>
348    <td>
349      &nbsp;
350    </td>
351    <td>
352
353<p>
354<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordtype">void</span> className::DestroySingleton() \
355    { <a class="code" href="_f_utils_8h.html#d45c5447fa213228e8493458c1770e91">SAFE_DELETE</a>(m_pSingleton); }
356</pre></div>Implements the destruction of a singleton.
357<p>
358Use this macros within the class implementation. <dl compact><dt><b>Parameters:</b></dt><dd>
359  <table border="0" cellspacing="2" cellpadding="0">
360    <tr><td valign="top"></td><td valign="top"><em>className</em>&nbsp;</td><td>The name of the class. </td></tr>
361  </table>
362</dl>
363    </td>
364  </tr>
365</table>
366<a class="anchor" name="80acae0250e4fc33321a5f6da796ad64"></a><!-- doxytag: member="FUSingleton.h::IMPLEMENT_SINGLETON" ref="80acae0250e4fc33321a5f6da796ad64" args="(className)" --><p>
367<table class="mdTable" cellpadding="2" cellspacing="0">
368  <tr>
369    <td class="mdRow">
370      <table cellpadding="0" cellspacing="0" border="0">
371        <tr>
372          <td class="md" nowrap valign="top">#define IMPLEMENT_SINGLETON          </td>
373          <td class="md" valign="top">(&nbsp;</td>
374          <td class="md" nowrap valign="top">className&nbsp;</td>
375          <td class="mdname1" valign="top" nowrap>          </td>
376          <td class="md" valign="top">&nbsp;)&nbsp;</td>
377          <td class="md" nowrap></td>
378        </tr>
379      </table>
380    </td>
381  </tr>
382</table>
383<table cellspacing="5" cellpadding="0" border="0">
384  <tr>
385    <td>
386      &nbsp;
387    </td>
388    <td>
389
390<p>
391<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="_f_u_singleton_8h.html#390d687886630a4dad79aef45111a70c">IMPLEMENT_CREATE_SINGLETON</a>(className) \
392    <a class="code" href="_f_u_singleton_8h.html#97a5dd49a538ad3054fdd6a77acb08f1">IMPLEMENT_DESTROY_SINGLETON</a>(className)
393</pre></div>Implements the singleton.
394<p>
395Use this macros within the class implementation. <dl compact><dt><b>Parameters:</b></dt><dd>
396  <table border="0" cellspacing="2" cellpadding="0">
397    <tr><td valign="top"></td><td valign="top"><em>className</em>&nbsp;</td><td>The name of the class. </td></tr>
398  </table>
399</dl>
400    </td>
401  </tr>
402</table>
403<a class="anchor" name="776404929fb249f921d3b0c8e6a05e9d"></a><!-- doxytag: member="FUSingleton.h::IMPLEMENT_SINGLETON_WITH_ARGS" ref="776404929fb249f921d3b0c8e6a05e9d" args="(className, createArg1)" --><p>
404<table class="mdTable" cellpadding="2" cellspacing="0">
405  <tr>
406    <td class="mdRow">
407      <table cellpadding="0" cellspacing="0" border="0">
408        <tr>
409          <td class="md" nowrap valign="top">#define IMPLEMENT_SINGLETON_WITH_ARGS          </td>
410          <td class="md" valign="top">(&nbsp;</td>
411          <td class="md" nowrap valign="top">className,         <tr>
412          <td class="md" nowrap align="right"></td>
413          <td class="md"></td>
414          <td class="md" nowrap>createArg1&nbsp;</td>
415          <td class="mdname1" valign="top" nowrap>          </td>
416          <td class="md" valign="top">&nbsp;)&nbsp;</td>
417          <td class="md" nowrap></td>
418        </tr>
419      </table>
420    </td>
421  </tr>
422</table>
423<table cellspacing="5" cellpadding="0" border="0">
424  <tr>
425    <td>
426      &nbsp;
427    </td>
428    <td>
429
430<p>
431<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="_f_u_singleton_8h.html#d1545f4568a68e793011396ae2d814c1">IMPLEMENT_CREATE_SINGLETON_WITH_ARGS</a>(className, createArg1) \
432    <a class="code" href="_f_u_singleton_8h.html#97a5dd49a538ad3054fdd6a77acb08f1">IMPLEMENT_DESTROY_SINGLETON</a>(className)
433</pre></div>Implements the singleton.
434<p>
435Use this macros within the class implementation. <dl compact><dt><b>Parameters:</b></dt><dd>
436  <table border="0" cellspacing="2" cellpadding="0">
437    <tr><td valign="top"></td><td valign="top"><em>className</em>&nbsp;</td><td>The name of the class. </td></tr>
438    <tr><td valign="top"></td><td valign="top"><em>createArg1</em>&nbsp;</td><td>The argument for the constructor of the singleton. </td></tr>
439  </table>
440</dl>
441    </td>
442  </tr>
443</table>
444<a class="anchor" name="fcc40e57d68dfdcea02b58e165bdb6b8"></a><!-- doxytag: member="FUSingleton.h::IMPLEMENT_SINGLETON_WITH_ARGS2" ref="fcc40e57d68dfdcea02b58e165bdb6b8" args="(className, createArg1, createArg2)" --><p>
445<table class="mdTable" cellpadding="2" cellspacing="0">
446  <tr>
447    <td class="mdRow">
448      <table cellpadding="0" cellspacing="0" border="0">
449        <tr>
450          <td class="md" nowrap valign="top">#define IMPLEMENT_SINGLETON_WITH_ARGS2          </td>
451          <td class="md" valign="top">(&nbsp;</td>
452          <td class="md" nowrap valign="top">className,         <tr>
453          <td class="md" nowrap align="right"></td>
454          <td class="md"></td>
455          <td class="md" nowrap>createArg1,         <tr>
456          <td class="md" nowrap align="right"></td>
457          <td class="md"></td>
458          <td class="md" nowrap>createArg2&nbsp;</td>
459          <td class="mdname1" valign="top" nowrap>          </td>
460          <td class="md" valign="top">&nbsp;)&nbsp;</td>
461          <td class="md" nowrap></td>
462        </tr>
463      </table>
464    </td>
465  </tr>
466</table>
467<table cellspacing="5" cellpadding="0" border="0">
468  <tr>
469    <td>
470      &nbsp;
471    </td>
472    <td>
473
474<p>
475<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="_f_u_singleton_8h.html#214b07876da80015ee7272f64afb50c9">IMPLEMENT_CREATE_SINGLETON_WITH_ARGS2</a>(className, createArg1, createArg2) \
476    <a class="code" href="_f_u_singleton_8h.html#97a5dd49a538ad3054fdd6a77acb08f1">IMPLEMENT_DESTROY_SINGLETON</a>(className)
477</pre></div>Implements the singleton.
478<p>
479Use this macros within the class implementation. <dl compact><dt><b>Parameters:</b></dt><dd>
480  <table border="0" cellspacing="2" cellpadding="0">
481    <tr><td valign="top"></td><td valign="top"><em>className</em>&nbsp;</td><td>The name of the class. </td></tr>
482    <tr><td valign="top"></td><td valign="top"><em>createArg1</em>&nbsp;</td><td>A first argument for the constructor of the singleton. </td></tr>
483    <tr><td valign="top"></td><td valign="top"><em>createArg2</em>&nbsp;</td><td>A second argument for the constructor of the singleton. </td></tr>
484  </table>
485</dl>
486    </td>
487  </tr>
488</table>
489<hr size="1"><address style="align: right;"><small>Generated on Fri May 12 16:44:40 2006 for FCollada by&nbsp;
490<a href="http://www.doxygen.org/index.html">
491<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
492</body>
493</html>
Note: See TracBrowser for help on using the repository browser.