1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
<title>Ares: Utilities/Macro.h File Reference</title>
4
<link href="tabs.css" rel="stylesheet" type="text/css">
5
<link href="doxygen.css" rel="stylesheet" type="text/css">
7
<!-- Generated by Doxygen 1.5.8 -->
8
<script type="text/javascript">
10
function changeDisplayState (e){
11
var num=this.id.replace(/[^[0-9]/g,'');
12
var button=this.firstChild;
13
var sectionDiv=document.getElementById('dynsection'+num);
14
if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
15
sectionDiv.style.display='block';
16
button.src='open.gif';
18
sectionDiv.style.display='none';
19
button.src='closed.gif';
22
function initDynSections(){
23
var divs=document.getElementsByTagName('div');
25
for(var i=0;i<divs.length-1;i++){
26
if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
28
var section=divs[i+1];
29
var button=header.firstChild;
31
divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
32
button=document.createElement('img');
33
divs[i].insertBefore(button,divs[i].firstChild);
35
header.style.cursor='pointer';
36
header.onclick=changeDisplayState;
37
header.id='dynheader'+sectionCounter;
38
button.src='closed.gif';
39
section.id='dynsection'+sectionCounter;
40
section.style.display='none';
41
section.style.marginLeft='14px';
46
window.onload = initDynSections;
49
<div class="navigation" id="top">
52
<li><a href="index.html"><span>Main Page</span></a></li>
53
<li><a href="pages.html"><span>Related Pages</span></a></li>
54
<li><a href="annotated.html"><span>Classes</span></a></li>
55
<li class="current"><a href="files.html"><span>Files</span></a></li>
56
<li><a href="dirs.html"><span>Directories</span></a></li>
58
<form action="search.php" method="get">
59
<table cellspacing="0" cellpadding="0" border="0">
61
<td><label> <u>S</u>earch for </label></td>
62
<td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
71
<li><a href="files.html"><span>File List</span></a></li>
72
<li><a href="globals.html"><span>File Members</span></a></li>
75
<div class="navpath"><a class="el" href="dir_3bd4a5f57807936e029b1e9e80bcb549.html">Utilities</a>
78
<div class="contents">
79
<h1>Macro.h File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
81
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
82
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_macro_8h.html#8269f97b2652fc717949a982d7b4f02a">str</a>(x) str_(x)</td></tr>
84
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_macro_8h.html#9a2fd643347fb68e6c6d269badbba3f8">str_</a>(x) #x</td></tr>
86
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_macro_8h.html#f03b5295576341d044ede84f369374f8">IF_STR</a>(section, key) if(INI->ReadString(section, key, <a class="el" href="class_ares.html#e006972559a168cb9746f8cc76150e95">Ares::readDefval</a>, <a class="el" href="class_ares.html#d4af8279307df25dd1e696f7380beb39">Ares::readBuffer</a>, <a class="el" href="class_ares.html#dc3a89d98277ea17bef774907bdd8dc8">Ares::readLength</a>))</td></tr>
88
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_macro_8h.html#9ba7f8fa39f3c920d82b23bb62451f41">FOR_STRTOK</a></td></tr>
90
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_macro_8h.html#9b6433e33987b456eca16cd5bb829547">PARSE_VECTOR</a>(ini_section, ini_key, var, objtype)</td></tr>
92
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_macro_8h.html#364e38f12fe67b7accbec8b88425f25e">PARSE_VECTOR_N</a>(ini_section, obj, ini_key, objtype)</td></tr>
94
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_macro_8h.html#a940cbf68d47d9e44610f626aad16341">PARSE_VECTOR_BIT</a>(ini_section, obj, ini_key, objtype, obj_key)</td></tr>
96
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_macro_8h.html#b0a16311729030e25b110a4407aab6c4">PARSE_VECTOR_INT</a>(ini_section, ini_key, obj)</td></tr>
99
<hr><h2>Define Documentation</h2>
100
<a class="anchor" name="9ba7f8fa39f3c920d82b23bb62451f41"></a><!-- doxytag: member="Macro.h::FOR_STRTOK" ref="9ba7f8fa39f3c920d82b23bb62451f41" args="" -->
101
<div class="memitem">
102
<div class="memproto">
103
<table class="memname">
105
<td class="memname">#define FOR_STRTOK </td>
112
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">for</span>(<span class="keywordtype">char</span> *cur = strtok(<a class="code" href="class_ares.html#d4af8279307df25dd1e696f7380beb39">Ares::readBuffer</a>, <a class="code" href="class_ares.html#9514486488c527e3a06ed543e9edeb1f">Ares::readDelims</a>); \
113
cur; cur = strtok(NULL, <a class="code" href="class_ares.html#9514486488c527e3a06ed543e9edeb1f">Ares::readDelims</a>))
117
<a class="anchor" name="f03b5295576341d044ede84f369374f8"></a><!-- doxytag: member="Macro.h::IF_STR" ref="f03b5295576341d044ede84f369374f8" args="(section, key)" -->
118
<div class="memitem">
119
<div class="memproto">
120
<table class="memname">
122
<td class="memname">#define IF_STR </td>
124
<td class="paramtype">section, <tr>
125
<td class="paramkey"></td>
127
<td class="paramtype">key </td>
128
<td class="paramname"> </td>
129
<td> ) </td>
130
<td> if(INI->ReadString(section, key, <a class="el" href="class_ares.html#e006972559a168cb9746f8cc76150e95">Ares::readDefval</a>, <a class="el" href="class_ares.html#d4af8279307df25dd1e696f7380beb39">Ares::readBuffer</a>, <a class="el" href="class_ares.html#dc3a89d98277ea17bef774907bdd8dc8">Ares::readLength</a>))</td>
140
<a class="anchor" name="9b6433e33987b456eca16cd5bb829547"></a><!-- doxytag: member="Macro.h::PARSE_VECTOR" ref="9b6433e33987b456eca16cd5bb829547" args="(ini_section, ini_key, var, objtype)" -->
141
<div class="memitem">
142
<div class="memproto">
143
<table class="memname">
145
<td class="memname">#define PARSE_VECTOR </td>
147
<td class="paramtype">ini_section, <tr>
148
<td class="paramkey"></td>
150
<td class="paramtype">ini_key, <tr>
151
<td class="paramkey"></td>
153
<td class="paramtype">var, <tr>
154
<td class="paramkey"></td>
156
<td class="paramtype">objtype </td>
157
<td class="paramname"> </td>
158
<td> ) </td>
166
<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="_macro_8h.html#f03b5295576341d044ede84f369374f8">IF_STR</a>(ini_section, #ini_key) { \
167
DynamicVectorClass<objtype *>* vec = var; vec->Clear(); \
168
<a class="code" href="_macro_8h.html#9ba7f8fa39f3c920d82b23bb62451f41">FOR_STRTOK</a>{ \
169
objtype *idx = objtype::Find(cur); <span class="keywordflow">if</span>(idx) { vec->AddItem(idx); } \
175
<a class="anchor" name="a940cbf68d47d9e44610f626aad16341"></a><!-- doxytag: member="Macro.h::PARSE_VECTOR_BIT" ref="a940cbf68d47d9e44610f626aad16341" args="(ini_section, obj, ini_key, objtype, obj_key)" -->
176
<div class="memitem">
177
<div class="memproto">
178
<table class="memname">
180
<td class="memname">#define PARSE_VECTOR_BIT </td>
182
<td class="paramtype">ini_section, <tr>
183
<td class="paramkey"></td>
185
<td class="paramtype">obj, <tr>
186
<td class="paramkey"></td>
188
<td class="paramtype">ini_key, <tr>
189
<td class="paramkey"></td>
191
<td class="paramtype">objtype, <tr>
192
<td class="paramkey"></td>
194
<td class="paramtype">obj_key </td>
195
<td class="paramname"> </td>
196
<td> ) </td>
204
<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="_macro_8h.html#f03b5295576341d044ede84f369374f8">IF_STR</a>(ini_section, #ini_key) { \
206
<a class="code" href="_macro_8h.html#9ba7f8fa39f3c920d82b23bb62451f41">FOR_STRTOK</a>{ \
207
<span class="keywordtype">int</span> idx = objtype::FindIndex(cur); <span class="keywordflow">if</span>(idx > -1) { buf |= (1 << idx); } \
209
obj-> ## obj_key = buf; \
214
<a class="anchor" name="b0a16311729030e25b110a4407aab6c4"></a><!-- doxytag: member="Macro.h::PARSE_VECTOR_INT" ref="b0a16311729030e25b110a4407aab6c4" args="(ini_section, ini_key, obj)" -->
215
<div class="memitem">
216
<div class="memproto">
217
<table class="memname">
219
<td class="memname">#define PARSE_VECTOR_INT </td>
221
<td class="paramtype">ini_section, <tr>
222
<td class="paramkey"></td>
224
<td class="paramtype">ini_key, <tr>
225
<td class="paramkey"></td>
227
<td class="paramtype">obj </td>
228
<td class="paramname"> </td>
229
<td> ) </td>
237
<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="_macro_8h.html#f03b5295576341d044ede84f369374f8">IF_STR</a>(ini_section, #ini_key) { \
238
DynamicVectorClass<int>* vec = &obj->ini_key; vec->Clear(); \
239
<a class="code" href="_macro_8h.html#9ba7f8fa39f3c920d82b23bb62451f41">FOR_STRTOK</a>{ \
240
<span class="keywordtype">int</span> idx = atoi(cur); vec->AddItem(idx); \
246
<a class="anchor" name="364e38f12fe67b7accbec8b88425f25e"></a><!-- doxytag: member="Macro.h::PARSE_VECTOR_N" ref="364e38f12fe67b7accbec8b88425f25e" args="(ini_section, obj, ini_key, objtype)" -->
247
<div class="memitem">
248
<div class="memproto">
249
<table class="memname">
251
<td class="memname">#define PARSE_VECTOR_N </td>
253
<td class="paramtype">ini_section, <tr>
254
<td class="paramkey"></td>
256
<td class="paramtype">obj, <tr>
257
<td class="paramkey"></td>
259
<td class="paramtype">ini_key, <tr>
260
<td class="paramkey"></td>
262
<td class="paramtype">objtype </td>
263
<td class="paramname"> </td>
264
<td> ) </td>
272
<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="_macro_8h.html#f03b5295576341d044ede84f369374f8">IF_STR</a>(ini_section, #ini_key) { \
273
DynamicVectorClass<objtype *>* vec = &obj->ini_key; vec->Clear(); \
274
<a class="code" href="_macro_8h.html#9ba7f8fa39f3c920d82b23bb62451f41">FOR_STRTOK</a>{ \
275
objtype *idx = objtype::Find(cur); \
276
<span class="keywordflow">if</span>(idx) { vec->AddItem(idx); } \
282
<a class="anchor" name="8269f97b2652fc717949a982d7b4f02a"></a><!-- doxytag: member="Macro.h::str" ref="8269f97b2652fc717949a982d7b4f02a" args="(x)" -->
283
<div class="memitem">
284
<div class="memproto">
285
<table class="memname">
287
<td class="memname">#define str </td>
289
<td class="paramtype">x </td>
290
<td class="paramname"> </td>
291
<td> ) </td>
292
<td> str_(x)</td>
302
<a class="anchor" name="9a2fd643347fb68e6c6d269badbba3f8"></a><!-- doxytag: member="Macro.h::str_" ref="9a2fd643347fb68e6c6d269badbba3f8" args="(x)" -->
303
<div class="memitem">
304
<div class="memproto">
305
<table class="memname">
307
<td class="memname">#define str_ </td>
309
<td class="paramtype">x </td>
310
<td class="paramname"> </td>
311
<td> ) </td>
312
<td> #x</td>
323
<hr size="1"><address style="text-align: right;"><small>Generated on Tue May 18 03:51:09 2010 for Ares by
324
<a href="http://www.doxygen.org/index.html">
325
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>