]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/asio/doc/reference.xsl
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / asio / doc / reference.xsl
CommitLineData
7c673cae
FG
1<?xml version="1.0" encoding="utf-8"?>
2<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
4<!--
5 Copyright (c) 2003-2016 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6
7 Distributed under the Boost Software License, Version 1.0. (See accompanying
8 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9-->
10
11<xsl:output method="text"/>
12<xsl:strip-space elements="*"/>
13<xsl:preserve-space elements="para"/>
14
15
16<xsl:variable name="newline">
17<xsl:text>
18</xsl:text>
19</xsl:variable>
20
21
22<!--
23 Loop over all top-level documentation elements (i.e. classes, functions,
24 variables and typedefs at namespace scope). The elements are sorted by name.
25 Anything in a "detail" namespace or with "_handler" in the name is skipped.
26-->
27<xsl:template match="/doxygen">
28<xsl:text>[/
29 / Copyright (c) 2003-2016 Christopher M. Kohlhoff (chris at kohlhoff dot com)
30 /
31 / Distributed under the Boost Software License, Version 1.0. (See accompanying
32 / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
33 /]
34
35[section:reference Reference]
36
37[xinclude quickref.xml]
38
39[include requirements/asynchronous_operations.qbk]
40[include requirements/AcceptHandler.qbk]
41[include requirements/AsyncRandomAccessReadDevice.qbk]
42[include requirements/AsyncRandomAccessWriteDevice.qbk]
43[include requirements/AsyncReadStream.qbk]
44[include requirements/AsyncWriteStream.qbk]
45[include requirements/BufferedHandshakeHandler.qbk]
46[include requirements/CompletionHandler.qbk]
47[include requirements/ComposedConnectHandler.qbk]
48[include requirements/ConnectHandler.qbk]
49[include requirements/ConstBufferSequence.qbk]
50[include requirements/ConvertibleToConstBuffer.qbk]
51[include requirements/ConvertibleToMutableBuffer.qbk]
52[include requirements/DatagramSocketService.qbk]
53[include requirements/DescriptorService.qbk]
54[include requirements/Endpoint.qbk]
55[include requirements/GettableSerialPortOption.qbk]
56[include requirements/GettableSocketOption.qbk]
57[include requirements/Handler.qbk]
58[include requirements/HandleService.qbk]
59[include requirements/HandshakeHandler.qbk]
60[include requirements/InternetProtocol.qbk]
61[include requirements/IoControlCommand.qbk]
62[include requirements/IoObjectService.qbk]
63[include requirements/MutableBufferSequence.qbk]
64[include requirements/ObjectHandleService.qbk]
65[include requirements/Protocol.qbk]
66[include requirements/RandomAccessHandleService.qbk]
67[include requirements/RawSocketService.qbk]
68[include requirements/ReadHandler.qbk]
69[include requirements/ResolveHandler.qbk]
70[include requirements/ResolverService.qbk]
71[include requirements/SeqPacketSocketService.qbk]
72[include requirements/SerialPortService.qbk]
73[include requirements/Service.qbk]
74[include requirements/SettableSerialPortOption.qbk]
75[include requirements/SettableSocketOption.qbk]
76[include requirements/ShutdownHandler.qbk]
77[include requirements/SignalHandler.qbk]
78[include requirements/SignalSetService.qbk]
79[include requirements/SocketAcceptorService.qbk]
80[include requirements/SocketService.qbk]
81[include requirements/StreamDescriptorService.qbk]
82[include requirements/StreamHandleService.qbk]
83[include requirements/StreamSocketService.qbk]
84[include requirements/SyncRandomAccessReadDevice.qbk]
85[include requirements/SyncRandomAccessWriteDevice.qbk]
86[include requirements/SyncReadStream.qbk]
87[include requirements/SyncWriteStream.qbk]
88[include requirements/TimeTraits.qbk]
89[include requirements/TimerService.qbk]
90[include requirements/WaitableTimerService.qbk]
91[include requirements/WaitHandler.qbk]
92[include requirements/WaitTraits.qbk]
93[include requirements/WriteHandler.qbk]
94
95</xsl:text>
96
97 <xsl:for-each select="
98 compounddef[@kind = 'class' or @kind = 'struct'] |
99 compounddef[@kind = 'namespace']/sectiondef[1]/memberdef">
100 <xsl:sort select="concat((. | ancestor::*)/compoundname, '::', name, ':x')"/>
101 <xsl:sort select="name"/>
102 <xsl:choose>
103 <xsl:when test="@kind='class' or @kind='struct'">
104 <xsl:if test="
105 contains(compoundname, 'asio::') and
106 not(contains(compoundname, '::detail')) and
107 not(contains(compoundname, '::service::key')) and
108 not(contains(compoundname, '_handler'))">
109 <xsl:call-template name="class"/>
110 </xsl:if>
111 </xsl:when>
112 <xsl:otherwise>
113 <xsl:if test="
114 not(contains(ancestor::*/compoundname, '::detail')) and
115 not(contains(ancestor::*/compoundname, '::service::key')) and
116 not(contains(ancestor::*/compoundname, '_helper')) and
117 not(contains(name, '_helper')) and
118 not(contains(name, 'io_service_impl'))">
119 <xsl:call-template name="namespace-memberdef"/>
120 </xsl:if>
121 </xsl:otherwise>
122 </xsl:choose>
123 </xsl:for-each>
124
125 <xsl:value-of select="$newline"/>
126 <xsl:text>[endsect]</xsl:text>
127
128</xsl:template>
129
130
131<!--========== Utilities ==========-->
132
133<xsl:template name="strip-asio-ns">
134 <xsl:param name="name"/>
135 <xsl:choose>
136 <xsl:when test="contains($name, 'boost::system::is_error_code_enum')">
137 <xsl:value-of select="$name"/>
138 </xsl:when>
139 <xsl:when test="contains($name, 'asio::')">
140 <xsl:value-of select="substring-after($name, 'asio::')"/>
141 </xsl:when>
142 <xsl:otherwise>
143 <xsl:value-of select="$name"/>
144 </xsl:otherwise>
145 </xsl:choose>
146</xsl:template>
147
148
149<xsl:template name="strip-ns">
150 <xsl:param name="name"/>
151 <xsl:choose>
152 <xsl:when test="contains($name, 'boost::system::is_error_code_enum')">
153 <xsl:value-of select="$name"/>
154 </xsl:when>
155 <xsl:when test="contains($name, '::') and contains($name, '&lt;')">
156 <xsl:choose>
157 <xsl:when test="string-length(substring-before($name, '::')) &lt; string-length(substring-before($name, '&lt;'))">
158 <xsl:call-template name="strip-ns">
159 <xsl:with-param name="name" select="substring-after($name, '::')"/>
160 </xsl:call-template>
161 </xsl:when>
162 <xsl:otherwise>
163 <xsl:value-of select="$name"/>
164 </xsl:otherwise>
165 </xsl:choose>
166 </xsl:when>
167 <xsl:when test="contains($name, '::')">
168 <xsl:call-template name="strip-ns">
169 <xsl:with-param name="name" select="substring-after($name, '::')"/>
170 </xsl:call-template>
171 </xsl:when>
172 <xsl:otherwise>
173 <xsl:value-of select="$name"/>
174 </xsl:otherwise>
175 </xsl:choose>
176</xsl:template>
177
178
179<xsl:template name="cleanup-type">
180 <xsl:param name="name"/>
181 <xsl:variable name="type">
182 <xsl:choose>
183 <xsl:when test="contains($name, 'BOOST_ASIO_DECL ')">
184 <xsl:value-of select="substring-after($name, 'BOOST_ASIO_DECL ')"/>
185 </xsl:when>
186 <xsl:when test="contains($name, 'BOOST_ASIO_DECL')">
187 <xsl:value-of select="substring-after($name, 'BOOST_ASIO_DECL')"/>
188 </xsl:when>
189 <xsl:when test="$name = 'virtual'"></xsl:when>
190 <xsl:otherwise>
191 <xsl:value-of select="$name"/>
192 </xsl:otherwise>
193 </xsl:choose>
194 </xsl:variable>
195 <xsl:choose>
196 <xsl:when test="$type='void_or_deduced'">
197 <xsl:text>``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]``</xsl:text>
198 </xsl:when>
199 <xsl:otherwise>
200 <xsl:value-of select="$type"/>
201 </xsl:otherwise>
202 </xsl:choose>
203</xsl:template>
204
205
206<xsl:template name="make-id">
207 <xsl:param name="name"/>
208 <xsl:choose>
209 <xsl:when test="contains($name, 'boost::system::')">
210 <xsl:call-template name="make-id">
211 <xsl:with-param name="name"
212 select="substring-after($name, 'boost::system::')"/>
213 </xsl:call-template>
214 </xsl:when>
215 <xsl:when test="contains($name, 'boost::asio::error::')">
216 <xsl:call-template name="make-id">
217 <xsl:with-param name="name"
218 select="concat(substring-before($name, 'boost::asio::error::'), substring-after($name, 'boost::asio::error::'))"/>
219 </xsl:call-template>
220 </xsl:when>
221 <xsl:when test="contains($name, '::')">
222 <xsl:call-template name="make-id">
223 <xsl:with-param name="name"
224 select="concat(substring-before($name, '::'), '__', substring-after($name, '::'))"/>
225 </xsl:call-template>
226 </xsl:when>
227 <xsl:when test="contains($name, '=')">
228 <xsl:call-template name="make-id">
229 <xsl:with-param name="name"
230 select="concat(substring-before($name, '='), '_eq_', substring-after($name, '='))"/>
231 </xsl:call-template>
232 </xsl:when>
233 <xsl:when test="contains($name, '!')">
234 <xsl:call-template name="make-id">
235 <xsl:with-param name="name"
236 select="concat(substring-before($name, '!'), '_not_', substring-after($name, '!'))"/>
237 </xsl:call-template>
238 </xsl:when>
239 <xsl:when test="contains($name, '-&gt;')">
240 <xsl:call-template name="make-id">
241 <xsl:with-param name="name"
242 select="concat(substring-before($name, '-&gt;'), '_arrow_', substring-after($name, '-&gt;'))"/>
243 </xsl:call-template>
244 </xsl:when>
245 <xsl:when test="contains($name, '&lt;')">
246 <xsl:call-template name="make-id">
247 <xsl:with-param name="name"
248 select="concat(substring-before($name, '&lt;'), '_lt_', substring-after($name, '&lt;'))"/>
249 </xsl:call-template>
250 </xsl:when>
251 <xsl:when test="contains($name, '&gt;')">
252 <xsl:call-template name="make-id">
253 <xsl:with-param name="name"
254 select="concat(substring-before($name, '&gt;'), '_gt_', substring-after($name, '&gt;'))"/>
255 </xsl:call-template>
256 </xsl:when>
257 <xsl:when test="contains($name, '[')">
258 <xsl:call-template name="make-id">
259 <xsl:with-param name="name"
260 select="concat(substring-before($name, '['), '_lb_', substring-after($name, '['))"/>
261 </xsl:call-template>
262 </xsl:when>
263 <xsl:when test="contains($name, ']')">
264 <xsl:call-template name="make-id">
265 <xsl:with-param name="name"
266 select="concat(substring-before($name, ']'), '_rb_', substring-after($name, ']'))"/>
267 </xsl:call-template>
268 </xsl:when>
269 <xsl:when test="contains($name, '(')">
270 <xsl:call-template name="make-id">
271 <xsl:with-param name="name"
272 select="concat(substring-before($name, '('), '_lp_', substring-after($name, '('))"/>
273 </xsl:call-template>
274 </xsl:when>
275 <xsl:when test="contains($name, ')')">
276 <xsl:call-template name="make-id">
277 <xsl:with-param name="name"
278 select="concat(substring-before($name, ')'), '_rp_', substring-after($name, ')'))"/>
279 </xsl:call-template>
280 </xsl:when>
281 <xsl:when test="contains($name, '+')">
282 <xsl:call-template name="make-id">
283 <xsl:with-param name="name"
284 select="concat(substring-before($name, '+'), '_plus_', substring-after($name, '+'))"/>
285 </xsl:call-template>
286 </xsl:when>
287 <xsl:when test="contains($name, '-')">
288 <xsl:call-template name="make-id">
289 <xsl:with-param name="name"
290 select="concat(substring-before($name, '-'), '_minus_', substring-after($name, '-'))"/>
291 </xsl:call-template>
292 </xsl:when>
293 <xsl:when test="contains($name, '*')">
294 <xsl:call-template name="make-id">
295 <xsl:with-param name="name"
296 select="concat(substring-before($name, '*'), '_star_', substring-after($name, '*'))"/>
297 </xsl:call-template>
298 </xsl:when>
299 <xsl:when test="contains($name, '~')">
300 <xsl:call-template name="make-id">
301 <xsl:with-param name="name"
302 select="concat(substring-before($name, '~'), '_', substring-after($name, '~'))"/>
303 </xsl:call-template>
304 </xsl:when>
305 <xsl:when test="contains($name, ' ')">
306 <xsl:call-template name="make-id">
307 <xsl:with-param name="name"
308 select="concat(substring-before($name, ' '), '_', substring-after($name, ' '))"/>
309 </xsl:call-template>
310 </xsl:when>
311 <xsl:when test="contains($name, 'boost__posix_time__ptime')">
312 <xsl:call-template name="make-id">
313 <xsl:with-param name="name"
314 select="concat(substring-before($name, 'boost__posix_time__ptime'), 'ptime', substring-after($name, 'boost__posix_time__ptime'))"/>
315 </xsl:call-template>
316 </xsl:when>
317 <xsl:otherwise>
318 <xsl:value-of select="$name"/>
319 </xsl:otherwise>
320 </xsl:choose>
321</xsl:template>
322
323
324<!--========== Markup ==========-->
325
326<xsl:template match="para" mode="markup">
327<xsl:text>
328</xsl:text><xsl:apply-templates mode="markup"/><xsl:text>
329</xsl:text>
330</xsl:template>
331
332
333<xsl:template match="para" mode="markup-nested">
334<xsl:apply-templates mode="markup-nested"/>
335</xsl:template>
336
337
338<xsl:template match="title" mode="markup">
339 <xsl:variable name="title">
340 <xsl:value-of select="."/>
341 </xsl:variable>
342 <xsl:if test="string-length($title) > 0">
343[heading <xsl:value-of select="."/>]
344 </xsl:if>
345</xsl:template>
346
347
348<xsl:template match="programlisting" mode="markup">
349 <xsl:value-of select="$newline"/>
350 <xsl:value-of select="$newline"/>
351 <xsl:apply-templates mode="codeline"/>
352 <xsl:value-of select="$newline"/>
353 <xsl:value-of select="$newline"/>
354</xsl:template>
355
356
357<xsl:template match="programlisting" mode="markup-nested">
358 <xsl:value-of select="$newline"/>
359 <xsl:text>``</xsl:text>
360 <xsl:value-of select="$newline"/>
361 <xsl:apply-templates mode="codeline"/>
362 <xsl:if test="substring(., string-length(.)) = $newline">
363 <xsl:value-of select="$newline"/>
364 </xsl:if>
365 <xsl:text>``</xsl:text>
366 <xsl:value-of select="$newline"/>
367</xsl:template>
368
369
370<xsl:template match="codeline" mode="codeline">
371 <xsl:if test="string-length(.) &gt; 0">
372 <xsl:text> </xsl:text>
373 </xsl:if>
374 <xsl:apply-templates mode="codeline"/>
375 <xsl:value-of select="$newline"/>
376</xsl:template>
377
378
379<xsl:template match="sp" mode="markup">
380<xsl:text> </xsl:text>
381</xsl:template>
382
383
384<xsl:template match="sp" mode="markup-nested">
385<xsl:text> </xsl:text>
386</xsl:template>
387
388
389<xsl:template match="sp" mode="codeline">
390 <xsl:text> </xsl:text>
391</xsl:template>
392
393
394<xsl:template match="linebreak" mode="markup">
395<xsl:text>
396
397</xsl:text>
398</xsl:template>
399
400
401<xsl:template match="linebreak" mode="markup-nested">
402<xsl:text>
403
404</xsl:text>
405</xsl:template>
406
407
408<xsl:template match="computeroutput" mode="markup">
409<xsl:text>`</xsl:text><xsl:value-of select="."/><xsl:text>`</xsl:text>
410</xsl:template>
411
412
413<xsl:template match="computeroutput" mode="markup-nested">
414<xsl:text>`</xsl:text><xsl:value-of select="."/><xsl:text>`</xsl:text>
415</xsl:template>
416
417
418<xsl:template match="listitem" mode="markup">
419* <xsl:call-template name="strip-leading-whitespace">
420 <xsl:with-param name="text">
421 <xsl:apply-templates mode="markup"/>
422 </xsl:with-param>
423</xsl:call-template>
424</xsl:template>
425
426
427<xsl:template match="bold" mode="markup">[*<xsl:apply-templates mode="markup"/>]</xsl:template>
428
429
430<xsl:template match="emphasis" mode="markup">['<xsl:apply-templates mode="markup"/>]</xsl:template>
431
432
433<xsl:template match="parameterlist" mode="markup">
434 <xsl:choose>
435 <xsl:when test="@kind='param'">
436[heading Parameters]
437 </xsl:when>
438 <xsl:when test="@kind='exception'">
439[heading Exceptions]
440 </xsl:when>
441 </xsl:choose>
442
443[variablelist
444 <xsl:apply-templates mode="markup"/>
445]
446</xsl:template>
447
448
449<xsl:template match="parameteritem" mode="markup">
450[[<xsl:value-of select="parameternamelist"/>][<xsl:apply-templates select="parameterdescription" mode="markup-nested"/>]]
451</xsl:template>
452
453
454<xsl:template match="simplesect" mode="markup">
455 <xsl:choose>
456 <xsl:when test="@kind='return'">
457[heading Return Value]
458 <xsl:apply-templates mode="markup"/>
459 </xsl:when>
460 <xsl:when test="@kind='see'">
461 </xsl:when>
462 <xsl:when test="@kind='note'">
463[heading Remarks]
464 <xsl:apply-templates mode="markup"/>
465 </xsl:when>
466 <xsl:when test="@kind='par'">
467 <xsl:if test="not(starts-with(title, 'Concepts:'))">
468 <xsl:apply-templates mode="markup"/>
469 </xsl:if>
470 </xsl:when>
471 <xsl:otherwise>
472 <xsl:apply-templates mode="markup"/>
473 </xsl:otherwise>
474 </xsl:choose>
475</xsl:template>
476
477
478<xsl:template match="text()" mode="markup">
479 <xsl:variable name="text" select="."/>
480 <xsl:variable name="starts-with-whitespace" select="
481 starts-with($text, ' ') or starts-with($text, $newline)"/>
482 <xsl:variable name="preceding-node-name">
483 <xsl:for-each select="preceding-sibling::*">
484 <xsl:if test="position() = last()">
485 <xsl:value-of select="local-name()"/>
486 </xsl:if>
487 </xsl:for-each>
488 </xsl:variable>
489 <xsl:variable name="after-newline" select="
490 $preceding-node-name = 'programlisting' or
491 $preceding-node-name = 'linebreak'"/>
492 <xsl:choose>
493 <xsl:when test="$starts-with-whitespace and $after-newline">
494 <xsl:call-template name="escape-text">
495 <xsl:with-param name="text">
496 <xsl:call-template name="strip-leading-whitespace">
497 <xsl:with-param name="text" select="$text"/>
498 </xsl:call-template>
499 </xsl:with-param>
500 </xsl:call-template>
501 </xsl:when>
502 <xsl:otherwise>
503 <xsl:call-template name="escape-text">
504 <xsl:with-param name="text" select="$text"/>
505 </xsl:call-template>
506 </xsl:otherwise>
507 </xsl:choose>
508</xsl:template>
509
510
511<xsl:template match="text()" mode="markup-nested">
512 <xsl:variable name="text" select="."/>
513 <xsl:variable name="starts-with-whitespace" select="
514 starts-with($text, ' ') or starts-with($text, $newline)"/>
515 <xsl:variable name="preceding-node-name">
516 <xsl:for-each select="preceding-sibling::*">
517 <xsl:if test="position() = last()">
518 <xsl:value-of select="local-name()"/>
519 </xsl:if>
520 </xsl:for-each>
521 </xsl:variable>
522 <xsl:variable name="after-newline" select="
523 $preceding-node-name = 'programlisting' or
524 $preceding-node-name = 'linebreak'"/>
525 <xsl:choose>
526 <xsl:when test="$starts-with-whitespace and $after-newline">
527 <xsl:call-template name="escape-text">
528 <xsl:with-param name="text">
529 <xsl:call-template name="strip-leading-whitespace">
530 <xsl:with-param name="text" select="$text"/>
531 </xsl:call-template>
532 </xsl:with-param>
533 </xsl:call-template>
534 </xsl:when>
535 <xsl:otherwise>
536 <xsl:call-template name="escape-text">
537 <xsl:with-param name="text" select="$text"/>
538 </xsl:call-template>
539 </xsl:otherwise>
540 </xsl:choose>
541</xsl:template>
542
543
544<xsl:template name="strip-leading-whitespace">
545 <xsl:param name="text"/>
546 <xsl:choose>
547 <xsl:when test="starts-with($text, ' ')">
548 <xsl:call-template name="strip-leading-whitespace">
549 <xsl:with-param name="text" select="substring($text, 2)"/>
550 </xsl:call-template>
551 </xsl:when>
552 <xsl:when test="starts-with($text, $newline)">
553 <xsl:call-template name="strip-leading-whitespace">
554 <xsl:with-param name="text" select="substring($text, 2)"/>
555 </xsl:call-template>
556 </xsl:when>
557 <xsl:otherwise>
558 <xsl:value-of select="$text"/>
559 </xsl:otherwise>
560 </xsl:choose>
561</xsl:template>
562
563
564<xsl:template name="escape-text">
565 <xsl:param name="text"/>
566 <xsl:choose>
567 <xsl:when test="contains($text, '_')">
568 <xsl:value-of select="substring-before($text, '_')"/>
569 <xsl:text>\_</xsl:text>
570 <xsl:call-template name="escape-text">
571 <xsl:with-param name="text" select="substring-after($text, '_')"/>
572 </xsl:call-template>
573 </xsl:when>
574 <xsl:otherwise>
575 <xsl:value-of select="$text"/>
576 </xsl:otherwise>
577 </xsl:choose>
578</xsl:template>
579
580
581<xsl:template name="escape-name">
582 <xsl:param name="text"/>
583 <xsl:choose>
584 <xsl:when test="contains($text, '[')">
585 <xsl:value-of select="substring-before($text, '[')"/>
586 <xsl:text>\[</xsl:text>
587 <xsl:call-template name="escape-name">
588 <xsl:with-param name="text" select="substring-after($text, '[')"/>
589 </xsl:call-template>
590 </xsl:when>
591 <xsl:when test="contains($text, ']')">
592 <xsl:value-of select="substring-before($text, ']')"/>
593 <xsl:text>\]</xsl:text>
594 <xsl:call-template name="escape-name">
595 <xsl:with-param name="text" select="substring-after($text, ']')"/>
596 </xsl:call-template>
597 </xsl:when>
598 <xsl:otherwise>
599 <xsl:value-of select="$text"/>
600 </xsl:otherwise>
601 </xsl:choose>
602</xsl:template>
603
604
605<xsl:template match="ref[@kindref='compound']" mode="markup">
606 <xsl:variable name="name">
607 <xsl:value-of select="."/>
608 </xsl:variable>
609 <xsl:choose>
610 <xsl:when test="contains(@refid, 'asio') or contains($name, 'asio::')">
611 <xsl:variable name="dox-ref-id" select="@refid"/>
612 <xsl:variable name="ref-name">
613 <xsl:call-template name="strip-asio-ns">
614 <xsl:with-param name="name"
615 select="(/doxygen//compounddef[@id=$dox-ref-id])[1]/compoundname"/>
616 </xsl:call-template>
617 </xsl:variable>
618 <xsl:variable name="ref-id">
619 <xsl:call-template name="make-id">
620 <xsl:with-param name="name" select="$ref-name"/>
621 </xsl:call-template>
622 </xsl:variable>
623 <xsl:text>[link boost_asio.reference.</xsl:text>
624 <xsl:value-of select="$ref-id"/>
625 <xsl:text> `</xsl:text>
626 <xsl:value-of name="text" select="$ref-name"/>
627 <xsl:text>`]</xsl:text>
628 </xsl:when>
629 <xsl:otherwise>
630 <xsl:text>`</xsl:text>
631 <xsl:value-of select="."/>
632 <xsl:text>`</xsl:text>
633 </xsl:otherwise>
634 </xsl:choose>
635</xsl:template>
636
637
638<xsl:template match="ref[@kindref='compound']" mode="markup-nested">
639 <xsl:variable name="name">
640 <xsl:value-of select="."/>
641 </xsl:variable>
642 <xsl:choose>
643 <xsl:when test="contains(@refid, 'asio') or contains($name, 'asio::')">
644 <xsl:variable name="dox-ref-id" select="@refid"/>
645 <xsl:variable name="ref-name">
646 <xsl:call-template name="strip-asio-ns">
647 <xsl:with-param name="name"
648 select="(/doxygen//compounddef[@id=$dox-ref-id])[1]/compoundname"/>
649 </xsl:call-template>
650 </xsl:variable>
651 <xsl:variable name="ref-id">
652 <xsl:call-template name="make-id">
653 <xsl:with-param name="name" select="$ref-name"/>
654 </xsl:call-template>
655 </xsl:variable>
656 <xsl:text>[link boost_asio.reference.</xsl:text>
657 <xsl:value-of select="$ref-id"/>
658 <xsl:text> `</xsl:text>
659 <xsl:value-of name="text" select="$ref-name"/>
660 <xsl:text>`]</xsl:text>
661 </xsl:when>
662 <xsl:otherwise>
663 <xsl:text>`</xsl:text>
664 <xsl:value-of select="."/>
665 <xsl:text>`</xsl:text>
666 </xsl:otherwise>
667 </xsl:choose>
668</xsl:template>
669
670
671<xsl:template match="ref[@kindref='member']" mode="markup">
672 <xsl:variable name="dox-ref-id" select="@refid"/>
673 <xsl:variable name="memberdefs" select="/doxygen//compounddef/sectiondef/memberdef[@id=$dox-ref-id]"/>
674 <xsl:choose>
675 <xsl:when test="contains(@refid, 'namespaceboost_1_1asio') and count($memberdefs) &gt; 0">
676 <xsl:variable name="dox-compound-name" select="($memberdefs)[1]/../../compoundname"/>
677 <xsl:variable name="dox-name" select="($memberdefs)[1]/name"/>
678 <xsl:variable name="ref-name">
679 <xsl:call-template name="strip-asio-ns">
680 <xsl:with-param name="name" select="concat($dox-compound-name,'::',$dox-name)"/>
681 </xsl:call-template>
682 </xsl:variable>
683 <xsl:variable name="ref-id">
684 <xsl:call-template name="make-id">
685 <xsl:with-param name="name" select="$ref-name"/>
686 </xsl:call-template>
687 </xsl:variable>
688 <xsl:text>[link boost_asio.reference.</xsl:text>
689 <xsl:value-of select="$ref-id"/>
690 <xsl:text> `</xsl:text>
691 <xsl:value-of name="text" select="$ref-name"/>
692 <xsl:text>`]</xsl:text>
693 </xsl:when>
694 <xsl:otherwise>
695 <xsl:text>`</xsl:text>
696 <xsl:value-of select="."/>
697 <xsl:text>`</xsl:text>
698 </xsl:otherwise>
699 </xsl:choose>
700</xsl:template>
701
702
703<xsl:template match="ref[@kindref='member']" mode="markup-nested">
704 <xsl:variable name="dox-ref-id" select="@refid"/>
705 <xsl:variable name="memberdefs" select="/doxygen//compounddef/sectiondef/memberdef[@id=$dox-ref-id]"/>
706 <xsl:choose>
707 <xsl:when test="contains(@refid, 'namespaceboost_1_1asio') and count($memberdefs) &gt; 0">
708 <xsl:variable name="dox-compound-name" select="($memberdefs)[1]/../../compoundname"/>
709 <xsl:variable name="dox-name" select="($memberdefs)[1]/name"/>
710 <xsl:variable name="ref-name">
711 <xsl:call-template name="strip-asio-ns">
712 <xsl:with-param name="name" select="concat($dox-compound-name,'::',$dox-name)"/>
713 </xsl:call-template>
714 </xsl:variable>
715 <xsl:variable name="ref-id">
716 <xsl:call-template name="make-id">
717 <xsl:with-param name="name" select="$ref-name"/>
718 </xsl:call-template>
719 </xsl:variable>
720 <xsl:text>[link boost_asio.reference.</xsl:text>
721 <xsl:value-of select="$ref-id"/>
722 <xsl:text> `</xsl:text>
723 <xsl:value-of name="text" select="$ref-name"/>
724 <xsl:text>`]</xsl:text>
725 </xsl:when>
726 <xsl:otherwise>
727 <xsl:text>`</xsl:text>
728 <xsl:value-of select="."/>
729 <xsl:text>`</xsl:text>
730 </xsl:otherwise>
731 </xsl:choose>
732</xsl:template>
733
734
735<xsl:template name="header-requirements">
736 <xsl:param name="file"/>
737 <xsl:value-of select="$newline"/>
738 <xsl:text>[heading Requirements]</xsl:text>
739 <xsl:value-of select="$newline"/>
740 <xsl:value-of select="$newline"/>
741 <xsl:text>['Header: ]</xsl:text>
742 <xsl:text>[^boost/asio/</xsl:text>
743 <xsl:value-of select="substring-after($file, 'boost/asio/')"/>
744 <xsl:text>]</xsl:text>
745 <xsl:value-of select="$newline"/>
746 <xsl:value-of select="$newline"/>
747 <xsl:text>['Convenience header: ]</xsl:text>
748 <xsl:choose>
749 <xsl:when test="contains($file, 'boost/asio/ssl')">
750 <xsl:text>[^boost/asio/ssl.hpp]</xsl:text>
751 </xsl:when>
752 <xsl:when test="contains($file, 'boost/asio/high_resolution_timer')">
753 <xsl:text>None</xsl:text>
754 </xsl:when>
755 <xsl:when test="contains($file, 'boost/asio/spawn')">
756 <xsl:text>None</xsl:text>
757 </xsl:when>
758 <xsl:when test="contains($file, 'boost/asio/steady_timer')">
759 <xsl:text>None</xsl:text>
760 </xsl:when>
761 <xsl:when test="contains($file, 'boost/asio/system_timer')">
762 <xsl:text>None</xsl:text>
763 </xsl:when>
764 <xsl:when test="contains($file, 'boost/asio/use_future')">
765 <xsl:text>None</xsl:text>
766 </xsl:when>
767 <xsl:otherwise>
768 <xsl:text>[^boost/asio.hpp]</xsl:text>
769 </xsl:otherwise>
770 </xsl:choose>
771 <xsl:value-of select="$newline"/>
772</xsl:template>
773
774
775<!--========== Class ==========-->
776
777<xsl:template name="class">
778 <xsl:variable name="class-name">
779 <xsl:call-template name="strip-asio-ns">
780 <xsl:with-param name="name" select="compoundname"/>
781 </xsl:call-template>
782 </xsl:variable>
783 <xsl:variable name="unqualified-class-name">
784 <xsl:call-template name="strip-ns">
785 <xsl:with-param name="name" select="compoundname"/>
786 </xsl:call-template>
787 </xsl:variable>
788 <xsl:variable name="class-id">
789 <xsl:call-template name="make-id">
790 <xsl:with-param name="name" select="$class-name"/>
791 </xsl:call-template>
792 </xsl:variable>
793 <xsl:variable name="class-file" select="location/@file"/>
794[section:<xsl:value-of select="$class-id"/><xsl:text> </xsl:text><xsl:value-of select="$class-name"/>]
795
796<xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text>
797
798</xsl:text>
799
800<xsl:apply-templates select="templateparamlist"
801 mode="class-detail"/><xsl:text> </xsl:text><xsl:value-of select="@kind"/><xsl:text> </xsl:text><xsl:value-of
802 select="$unqualified-class-name"/><xsl:if test="count(basecompoundref[not(contains(.,'::detail'))]) > 0"> :</xsl:if><xsl:text>
803</xsl:text><xsl:for-each select="basecompoundref[not(contains(.,'::detail'))]">
804<xsl:text> </xsl:text><xsl:if test="@prot='public'">public </xsl:if><xsl:call-template
805 name="strip-asio-ns"><xsl:with-param name="name" select="."/></xsl:call-template><xsl:if
806 test="not(position() = last())">,</xsl:if><xsl:text>
807</xsl:text></xsl:for-each><xsl:text>
808</xsl:text>
809
810<xsl:call-template name="class-tables">
811 <xsl:with-param name="class-name" select="$class-name"/>
812 <xsl:with-param name="class-id" select="$class-id"/>
813</xsl:call-template>
814
815<xsl:apply-templates select="detaileddescription" mode="markup"/>
816
817<xsl:call-template name="header-requirements">
818 <xsl:with-param name="file" select="$class-file"/>
819</xsl:call-template>
820
821<xsl:call-template name="class-members">
822 <xsl:with-param name="class-name" select="$class-name"/>
823 <xsl:with-param name="class-id" select="$class-id"/>
824 <xsl:with-param name="class-file" select="$class-file"/>
825</xsl:call-template>
826
827[endsect]
828</xsl:template>
829
830
831<xsl:template name="class-tables">
832<xsl:param name="class-name"/>
833<xsl:param name="class-id"/>
834<xsl:if test="
835 count(
836 sectiondef[@kind='public-type'] |
837 innerclass[@prot='public' and not(contains(., '_handler'))]) &gt; 0">
838[heading Types]
839[table
840 [[Name][Description]]
841<xsl:for-each select="
842 sectiondef[@kind='public-type']/memberdef |
843 innerclass[@prot='public' and not(contains(., '_handler'))]" mode="class-table">
844 <xsl:sort select="concat(name, (.)[not(name)])"/>
845 [
846<xsl:choose>
847 <xsl:when test="count(name) &gt; 0">
848 [[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of select="name"/>
849 <xsl:text> </xsl:text>[*<xsl:value-of select="name"/>]]]
850 [<xsl:call-template name="escape-name"><xsl:with-param name="text" select="briefdescription"/></xsl:call-template>]
851 </xsl:when>
852 <xsl:otherwise>
853 <xsl:variable name="type-name">
854 <xsl:call-template name="strip-asio-ns">
855 <xsl:with-param name="name" select="."/>
856 </xsl:call-template>
857 </xsl:variable>
858 <xsl:variable name="unqualified-type-name">
859 <xsl:call-template name="strip-ns">
860 <xsl:with-param name="name" select="."/>
861 </xsl:call-template>
862 </xsl:variable>
863 <xsl:variable name="type-id">
864 <xsl:call-template name="make-id">
865 <xsl:with-param name="name" select="$type-name"/>
866 </xsl:call-template>
867 </xsl:variable>
868 <xsl:variable name="type-ref-id" select="@refid"/>
869 [[link boost_asio.reference.<xsl:value-of select="$type-id"/>
870 <xsl:text> </xsl:text>[*<xsl:value-of select="$unqualified-type-name"/>]]]
871 [<xsl:value-of select="(/doxygen//compounddef[@id=$type-ref-id])[1]/briefdescription"/>]
872 </xsl:otherwise>
873</xsl:choose>
874 ]
875</xsl:for-each>
876]
877</xsl:if>
878
879<xsl:if test="count(sectiondef[@kind='public-func' or @kind='public-static-func']) > 0">
880[heading Member Functions]
881[table
882 [[Name][Description]]
883<xsl:for-each select="sectiondef[@kind='public-func' or @kind='public-static-func']/memberdef" mode="class-table">
884 <xsl:sort select="name"/>
885 <xsl:variable name="name">
886 <xsl:value-of select="name"/>
887 </xsl:variable>
888 <xsl:variable name="escaped-name">
889 <xsl:call-template name="escape-name">
890 <xsl:with-param name="text" select="$name"/>
891 </xsl:call-template>
892 </xsl:variable>
893 <xsl:variable name="id">
894 <xsl:call-template name="make-id">
895 <xsl:with-param name="name" select="$name"/>
896 </xsl:call-template>
897 </xsl:variable>
898 <xsl:variable name="doxygen-id">
899 <xsl:value-of select="@id"/>
900 </xsl:variable>
901 <xsl:variable name="overload-count">
902 <xsl:value-of select="count(../memberdef[name = $name])"/>
903 </xsl:variable>
904 <xsl:variable name="overload-position">
905 <xsl:for-each select="../memberdef[name = $name]">
906 <xsl:if test="@id = $doxygen-id">
907 <xsl:value-of select="position()"/>
908 </xsl:if>
909 </xsl:for-each>
910 </xsl:variable>
911 <xsl:if test="$overload-position = 1">
912 [
913 [[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of select="$id"/>
914 <xsl:text> </xsl:text>[*<xsl:value-of select="$escaped-name"/><xsl:text>]]]
915 [</xsl:text><xsl:value-of select="briefdescription"/>
916 </xsl:if>
917 <xsl:if test="not($overload-position = 1) and not(briefdescription = preceding-sibling::*/briefdescription)">
918 <xsl:value-of select="$newline"/>
919 <xsl:value-of select="$newline"/>
920 <xsl:text> </xsl:text>
921 <xsl:value-of select="briefdescription"/>
922 </xsl:if>
923 <xsl:if test="$overload-position = $overload-count">
924 <xsl:text>]
925 ]
926 </xsl:text>
927 </xsl:if>
928</xsl:for-each>
929]
930</xsl:if>
931
932<xsl:if test="count(sectiondef[@kind='protected-func' or @kind='protected-static-func']) > 0">
933[heading Protected Member Functions]
934[table
935 [[Name][Description]]
936<xsl:for-each select="sectiondef[@kind='protected-func' or @kind='protected-static-func']/memberdef" mode="class-table">
937 <xsl:sort select="name"/>
938 <xsl:variable name="name">
939 <xsl:value-of select="name"/>
940 </xsl:variable>
941 <xsl:variable name="id">
942 <xsl:call-template name="make-id">
943 <xsl:with-param name="name" select="$name"/>
944 </xsl:call-template>
945 </xsl:variable>
946 <xsl:variable name="doxygen-id">
947 <xsl:value-of select="@id"/>
948 </xsl:variable>
949 <xsl:variable name="overload-count">
950 <xsl:value-of select="count(../memberdef[name = $name])"/>
951 </xsl:variable>
952 <xsl:variable name="overload-position">
953 <xsl:for-each select="../memberdef[name = $name]">
954 <xsl:if test="@id = $doxygen-id">
955 <xsl:value-of select="position()"/>
956 </xsl:if>
957 </xsl:for-each>
958 </xsl:variable>
959 <xsl:if test="$overload-position = 1">
960 [
961 [[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of select="$id"/>
962 <xsl:text> </xsl:text>[*<xsl:value-of select="$name"/><xsl:text>]]]
963 [</xsl:text><xsl:value-of select="briefdescription"/>
964 </xsl:if>
965 <xsl:if test="not($overload-position = 1) and not(briefdescription = preceding-sibling::*/briefdescription)">
966 <xsl:value-of select="$newline"/>
967 <xsl:value-of select="$newline"/>
968 <xsl:text> </xsl:text>
969 <xsl:value-of select="briefdescription"/>
970 </xsl:if>
971 <xsl:if test="$overload-position = $overload-count">
972 <xsl:text>]
973 ]
974 </xsl:text>
975 </xsl:if>
976</xsl:for-each>
977]
978</xsl:if>
979
980<xsl:if test="$class-name = 'io_service::service'">
981<xsl:if test="count(sectiondef[@kind='private-func']) > 0">
982[heading Private Member Functions]
983[table
984 [[Name][Description]]
985<xsl:for-each select="sectiondef[@kind='private-func']/memberdef" mode="class-table">
986 <xsl:sort select="name"/>
987 <xsl:variable name="name">
988 <xsl:value-of select="name"/>
989 </xsl:variable>
990 <xsl:variable name="id">
991 <xsl:call-template name="make-id">
992 <xsl:with-param name="name" select="$name"/>
993 </xsl:call-template>
994 </xsl:variable>
995 <xsl:variable name="doxygen-id">
996 <xsl:value-of select="@id"/>
997 </xsl:variable>
998 <xsl:variable name="overload-count">
999 <xsl:value-of select="count(../memberdef[name = $name])"/>
1000 </xsl:variable>
1001 <xsl:variable name="overload-position">
1002 <xsl:for-each select="../memberdef[name = $name]">
1003 <xsl:if test="@id = $doxygen-id">
1004 <xsl:value-of select="position()"/>
1005 </xsl:if>
1006 </xsl:for-each>
1007 </xsl:variable>
1008 <xsl:if test="$overload-position = 1">
1009 [
1010 [[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of select="$id"/>
1011 <xsl:text> </xsl:text>[*<xsl:value-of select="$name"/><xsl:text>]]]
1012 [</xsl:text><xsl:value-of select="briefdescription"/>
1013 </xsl:if>
1014 <xsl:if test="not($overload-position = 1) and not(briefdescription = preceding-sibling::*/briefdescription)">
1015 <xsl:value-of select="$newline"/>
1016 <xsl:value-of select="$newline"/>
1017 <xsl:text> </xsl:text>
1018 <xsl:value-of select="briefdescription"/>
1019 </xsl:if>
1020 <xsl:if test="$overload-position = $overload-count">
1021 <xsl:text>]
1022 ]
1023 </xsl:text>
1024 </xsl:if>
1025</xsl:for-each>
1026]
1027</xsl:if>
1028</xsl:if>
1029
1030<xsl:if test="count(sectiondef[@kind='public-attrib' or @kind='public-static-attrib']) > 0">
1031[heading Data Members]
1032[table
1033 [[Name][Description]]
1034<xsl:for-each select="sectiondef[@kind='public-attrib' or @kind='public-static-attrib']/memberdef" mode="class-table">
1035 <xsl:sort select="name"/>
1036 [
1037 [[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of select="name"/>
1038 <xsl:text> </xsl:text>[*<xsl:value-of select="name"/>]]]
1039 [<xsl:value-of select="briefdescription"/>]
1040 ]
1041</xsl:for-each>
1042]
1043</xsl:if>
1044
1045<xsl:if test="count(sectiondef[@kind='protected-attrib' or @kind='protected-static-attrib']) > 0">
1046[heading Protected Data Members]
1047[table
1048 [[Name][Description]]
1049<xsl:for-each select="sectiondef[@kind='protected-attrib' or @kind='protected-static-attrib']/memberdef" mode="class-table">
1050 <xsl:sort select="name"/>
1051 [
1052 [[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of select="name"/>
1053 <xsl:text> </xsl:text>[*<xsl:value-of select="name"/>]]]
1054 [<xsl:value-of select="briefdescription"/>]
1055 ]
1056</xsl:for-each>
1057]
1058</xsl:if>
1059
1060<xsl:if test="count(sectiondef[@kind='friend']/memberdef[not(type = 'friend class') and not(contains(name, '_helper'))]) &gt; 0">
1061[heading Friends]
1062[table
1063 [[Name][Description]]
1064<xsl:for-each select="sectiondef[@kind='friend']/memberdef[not(type = 'friend class') and not(contains(name, '_helper'))]" mode="class-table">
1065 <xsl:sort select="name"/>
1066 <xsl:variable name="name">
1067 <xsl:value-of select="name"/>
1068 </xsl:variable>
1069 <xsl:variable name="id">
1070 <xsl:call-template name="make-id">
1071 <xsl:with-param name="name" select="$name"/>
1072 </xsl:call-template>
1073 </xsl:variable>
1074 <xsl:variable name="doxygen-id">
1075 <xsl:value-of select="@id"/>
1076 </xsl:variable>
1077 <xsl:variable name="overload-count">
1078 <xsl:value-of select="count(../memberdef[name = $name])"/>
1079 </xsl:variable>
1080 <xsl:variable name="overload-position">
1081 <xsl:for-each select="../memberdef[name = $name]">
1082 <xsl:if test="@id = $doxygen-id">
1083 <xsl:value-of select="position()"/>
1084 </xsl:if>
1085 </xsl:for-each>
1086 </xsl:variable>
1087 <xsl:if test="$overload-position = 1">
1088 [
1089 [[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of select="$id"/>
1090 <xsl:text> </xsl:text>[*<xsl:value-of select="$name"/><xsl:text>]]]
1091 [</xsl:text><xsl:value-of select="briefdescription"/>
1092 </xsl:if>
1093 <xsl:if test="not($overload-position = 1) and not(briefdescription = preceding-sibling::*/briefdescription)">
1094 <xsl:value-of select="$newline"/>
1095 <xsl:value-of select="$newline"/>
1096 <xsl:text> </xsl:text>
1097 <xsl:value-of select="briefdescription"/>
1098 </xsl:if>
1099 <xsl:if test="$overload-position = $overload-count">
1100 <xsl:text>]
1101 ]
1102 </xsl:text>
1103 </xsl:if>
1104</xsl:for-each>
1105]
1106</xsl:if>
1107
1108<xsl:if test="count(sectiondef[@kind='related']/memberdef) &gt; 0">
1109[heading Related Functions]
1110[table
1111 [[Name][Description]]
1112<xsl:for-each select="sectiondef[@kind='related']/memberdef" mode="class-table">
1113 <xsl:sort select="name"/>
1114 <xsl:variable name="name">
1115 <xsl:value-of select="name"/>
1116 </xsl:variable>
1117 <xsl:variable name="id">
1118 <xsl:call-template name="make-id">
1119 <xsl:with-param name="name" select="$name"/>
1120 </xsl:call-template>
1121 </xsl:variable>
1122 <xsl:variable name="doxygen-id">
1123 <xsl:value-of select="@id"/>
1124 </xsl:variable>
1125 <xsl:variable name="overload-count">
1126 <xsl:value-of select="count(../memberdef[name = $name])"/>
1127 </xsl:variable>
1128 <xsl:variable name="overload-position">
1129 <xsl:for-each select="../memberdef[name = $name]">
1130 <xsl:if test="@id = $doxygen-id">
1131 <xsl:value-of select="position()"/>
1132 </xsl:if>
1133 </xsl:for-each>
1134 </xsl:variable>
1135 <xsl:if test="$overload-position = 1">
1136 [
1137 [[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of select="$id"/>
1138 <xsl:text> </xsl:text>[*<xsl:value-of select="$name"/><xsl:text>]]]
1139 [</xsl:text><xsl:value-of select="briefdescription"/>
1140 </xsl:if>
1141 <xsl:if test="not($overload-position = 1) and not(briefdescription = preceding-sibling::*/briefdescription)">
1142 <xsl:value-of select="$newline"/>
1143 <xsl:value-of select="$newline"/>
1144 <xsl:text> </xsl:text>
1145 <xsl:value-of select="briefdescription"/>
1146 </xsl:if>
1147 <xsl:if test="$overload-position = $overload-count">
1148 <xsl:text>]
1149 ]
1150 </xsl:text>
1151 </xsl:if>
1152</xsl:for-each>
1153]
1154</xsl:if>
1155
1156</xsl:template>
1157
1158
1159<xsl:template name="class-members">
1160<xsl:param name="class-name"/>
1161<xsl:param name="class-id"/>
1162<xsl:param name="class-file"/>
1163<xsl:apply-templates select="sectiondef[@kind='public-type' or @kind='public-func' or @kind='public-static-func' or @kind='public-attrib' or @kind='public-static-attrib' or @kind='protected-func' or @kind='protected-static-func' or @kind='protected-attrib' or @kind='protected-static-attrib' or @kind='friend' or @kind='related']/memberdef[not(type = 'friend class') and not(contains(name, '_helper'))]" mode="class-detail">
1164 <xsl:sort select="name"/>
1165 <xsl:with-param name="class-name" select="$class-name"/>
1166 <xsl:with-param name="class-id" select="$class-id"/>
1167 <xsl:with-param name="class-file" select="$class-file"/>
1168</xsl:apply-templates>
1169<xsl:if test="$class-name = 'io_service::service'">
1170 <xsl:apply-templates select="sectiondef[@kind='private-func']/memberdef[not(type = 'friend class') and not(contains(name, '_helper'))]" mode="class-detail">
1171 <xsl:sort select="name"/>
1172 <xsl:with-param name="class-name" select="$class-name"/>
1173 <xsl:with-param name="class-id" select="$class-id"/>
1174 <xsl:with-param name="class-file" select="$class-file"/>
1175 </xsl:apply-templates>
1176</xsl:if>
1177</xsl:template>
1178
1179
1180<!-- Class detail -->
1181
1182<xsl:template match="memberdef" mode="class-detail">
1183 <xsl:param name="class-name"/>
1184 <xsl:param name="class-id"/>
1185 <xsl:param name="class-file"/>
1186 <xsl:variable name="name">
1187 <xsl:value-of select="name"/>
1188 </xsl:variable>
1189 <xsl:variable name="escaped-name">
1190 <xsl:call-template name="escape-name">
1191 <xsl:with-param name="text" select="$name"/>
1192 </xsl:call-template>
1193 </xsl:variable>
1194 <xsl:variable name="id">
1195 <xsl:call-template name="make-id">
1196 <xsl:with-param name="name" select="$name"/>
1197 </xsl:call-template>
1198 </xsl:variable>
1199 <xsl:variable name="doxygen-id">
1200 <xsl:value-of select="@id"/>
1201 </xsl:variable>
1202 <xsl:variable name="overload-count">
1203 <xsl:value-of select="count(../memberdef[name = $name])"/>
1204 </xsl:variable>
1205 <xsl:variable name="overload-position">
1206 <xsl:for-each select="../memberdef[name = $name]">
1207 <xsl:if test="@id = $doxygen-id">
1208 <xsl:value-of select="position()"/>
1209 </xsl:if>
1210 </xsl:for-each>
1211 </xsl:variable>
1212
1213<xsl:if test="$overload-count &gt; 1 and $overload-position = 1">
1214[section:<xsl:value-of select="$id"/><xsl:text> </xsl:text>
1215<xsl:value-of select="$class-name"/>::<xsl:value-of select="$escaped-name"/>]
1216
1217<xsl:text>[indexterm2 </xsl:text>
1218<xsl:value-of select="$escaped-name"/>
1219<xsl:text>..</xsl:text>
1220<xsl:value-of select="$class-name"/>
1221<xsl:text>] </xsl:text>
1222
1223<xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text>
1224</xsl:text>
1225
1226<xsl:for-each select="../memberdef[name = $name]">
1227<xsl:if test="position() &gt; 1 and not(briefdescription = preceding-sibling::*/briefdescription)">
1228 <xsl:value-of select="$newline"/>
1229 <xsl:apply-templates select="briefdescription" mode="markup"/>
1230 <xsl:value-of select="$newline"/>
1231</xsl:if>
1232<xsl:text>
1233</xsl:text><xsl:apply-templates select="templateparamlist" mode="class-detail"/>
1234<xsl:text> </xsl:text>
1235 <xsl:if test="@explicit='yes'">explicit </xsl:if>
1236 <xsl:if test="@static='yes'">static </xsl:if>
1237 <xsl:if test="@virt='virtual'">virtual </xsl:if>
1238 <xsl:variable name="stripped-type">
1239 <xsl:call-template name="cleanup-type">
1240 <xsl:with-param name="name" select="type"/>
1241 </xsl:call-template>
1242 </xsl:variable>
1243 <xsl:if test="string-length($stripped-type) &gt; 0">
1244 <xsl:value-of select="$stripped-type"/><xsl:text> </xsl:text>
1245</xsl:if>``[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of
1246 select="$id"/>.overload<xsl:value-of select="position()"/><xsl:text> </xsl:text><xsl:value-of
1247 select="name"/>]``(<xsl:apply-templates select="param"
1248 mode="class-detail"/>)<xsl:if test="@const='yes'"> const</xsl:if>;
1249<xsl:text> `` [''''&amp;raquo;'''</xsl:text>
1250<xsl:text> [link boost_asio.reference.</xsl:text>
1251<xsl:value-of select="$class-id"/>.<xsl:value-of
1252 select="$id"/>.overload<xsl:value-of select="position()"/>
1253<xsl:text> more...]]``
1254</xsl:text>
1255</xsl:for-each>
1256</xsl:if>
1257
1258[section:<xsl:if test="$overload-count = 1"><xsl:value-of select="$id"/></xsl:if>
1259<xsl:if test="$overload-count &gt; 1">overload<xsl:value-of select="$overload-position"/></xsl:if>
1260<xsl:text> </xsl:text><xsl:value-of select="$class-name"/>::<xsl:value-of select="$escaped-name"/>
1261<xsl:if test="$overload-count &gt; 1"> (<xsl:value-of
1262 select="$overload-position"/> of <xsl:value-of select="$overload-count"/> overloads)</xsl:if>]
1263
1264<xsl:if test="not(starts-with($doxygen-id, ../../@id))">
1265<xsl:variable name="inherited-from" select="/doxygen/compounddef[starts-with($doxygen-id, @id)]/compoundname"/>
1266<xsl:if test="not(contains($inherited-from, '::detail'))">
1267['Inherited from <xsl:call-template name="strip-asio-ns">
1268<xsl:with-param name="name" select="$inherited-from"/>
1269</xsl:call-template>.]<xsl:text>
1270
1271</xsl:text></xsl:if></xsl:if>
1272
1273<xsl:if test="$overload-count = 1">
1274 <xsl:text>[indexterm2 </xsl:text>
1275 <xsl:value-of select="$escaped-name"/>
1276 <xsl:text>..</xsl:text>
1277 <xsl:value-of select="$class-name"/>
1278 <xsl:text>] </xsl:text>
1279</xsl:if>
1280
1281<xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text>
1282</xsl:text>
1283
1284 <xsl:choose>
1285 <xsl:when test="@kind='typedef'">
1286 <xsl:call-template name="typedef" mode="class-detail">
1287 <xsl:with-param name="class-name" select="$class-name"/>
1288 </xsl:call-template>
1289 </xsl:when>
1290 <xsl:when test="@kind='variable'">
1291 <xsl:call-template name="variable" mode="class-detail"/>
1292 </xsl:when>
1293 <xsl:when test="@kind='enum'">
1294 <xsl:call-template name="enum" mode="class-detail">
1295 <xsl:with-param name="enum-name" select="$class-name"/>
1296 </xsl:call-template>
1297 </xsl:when>
1298 <xsl:when test="@kind='function'">
1299 <xsl:call-template name="function" mode="class-detail"/>
1300 </xsl:when>
1301 <xsl:when test="@kind='friend'">
1302 <xsl:call-template name="function" mode="class-detail"/>
1303 </xsl:when>
1304 </xsl:choose>
1305
1306<xsl:text>
1307</xsl:text><xsl:apply-templates select="detaileddescription" mode="markup"/>
1308
1309<xsl:if test="@kind='typedef' or @kind='friend'">
1310 <xsl:call-template name="header-requirements">
1311 <xsl:with-param name="file" select="$class-file"/>
1312 </xsl:call-template>
1313</xsl:if>
1314
1315[endsect]
1316
1317<xsl:if test="$overload-count &gt; 1 and $overload-position = $overload-count">
1318[endsect]
1319</xsl:if>
1320</xsl:template>
1321
1322
1323<xsl:template name="typedef">
1324<xsl:param name="class-name"/>
1325<xsl:text>
1326 </xsl:text>typedef <xsl:value-of select="type"/><xsl:text> </xsl:text><xsl:value-of select="name"/>;<xsl:text>
1327
1328</xsl:text>
1329<xsl:if test="count(type/ref) &gt; 0 and not(contains(type, '*'))">
1330 <xsl:variable name="class-refid">
1331 <xsl:for-each select="type/ref[1]">
1332 <xsl:value-of select="@refid"/>
1333 </xsl:for-each>
1334 </xsl:variable>
1335 <xsl:variable name="name" select="name"/>
1336 <xsl:for-each select="/doxygen/compounddef[@id=$class-refid]">
1337 <xsl:call-template name="class-tables">
1338 <xsl:with-param name="class-name">
1339 <xsl:value-of select="concat($class-name, '::', $name)"/>
1340 </xsl:with-param>
1341 <xsl:with-param name="class-id">
1342 <xsl:call-template name="make-id">
1343 <xsl:with-param name="name">
1344 <xsl:call-template name="strip-asio-ns">
1345 <xsl:with-param name="name" select="compoundname"/>
1346 </xsl:call-template>
1347 </xsl:with-param>
1348 </xsl:call-template>
1349 </xsl:with-param>
1350 </xsl:call-template>
1351 <xsl:apply-templates select="detaileddescription" mode="markup"/>
1352 </xsl:for-each>
1353</xsl:if>
1354</xsl:template>
1355
1356
1357<xsl:template name="variable">
1358<xsl:text>
1359 </xsl:text><xsl:if test="@static='yes'">static </xsl:if><xsl:value-of
1360 select="type"/><xsl:text> </xsl:text><xsl:value-of select="name"/>
1361 <xsl:if test="count(initializer) = 1"><xsl:text> =</xsl:text>
1362 <xsl:value-of select="initializer"/></xsl:if>;
1363</xsl:template>
1364
1365
1366<xsl:template name="enum">
1367<xsl:param name="enum-name"/>
1368 enum <xsl:value-of select="name"/><xsl:text>
1369</xsl:text><xsl:if test="count(enumvalue) &gt; 0">
1370<xsl:value-of select="$newline"/>
1371<xsl:for-each select="enumvalue">
1372 <xsl:text>[indexterm2 </xsl:text>
1373 <xsl:value-of select="name"/>
1374 <xsl:text>..</xsl:text>
1375 <xsl:value-of select="$enum-name"/>
1376 <xsl:text>]</xsl:text>
1377 <xsl:value-of select="$newline"/>
1378</xsl:for-each>
1379[heading Values]
1380[variablelist
1381<xsl:for-each select="enumvalue">
1382 [
1383 [<xsl:value-of select="name"/>]
1384 [<xsl:value-of select="briefdescription"/>]
1385 ]
1386</xsl:for-each>
1387]
1388</xsl:if>
1389</xsl:template>
1390
1391
1392<xsl:template name="function">
1393<xsl:text>
1394</xsl:text>
1395<xsl:variable name="doxygen-id">
1396 <xsl:value-of select="@id"/>
1397</xsl:variable>
1398<xsl:choose>
1399 <xsl:when test="count(/doxygen//memberdef[@id=$doxygen-id]/templateparamlist) = 1">
1400 <xsl:apply-templates select="/doxygen//memberdef[@id=$doxygen-id]/templateparamlist" mode="class-detail"/>
1401 </xsl:when>
1402 <xsl:otherwise>
1403 <xsl:apply-templates select="templateparamlist" mode="class-detail"/>
1404 </xsl:otherwise>
1405</xsl:choose>
1406<xsl:variable name="stripped-type">
1407 <xsl:call-template name="cleanup-type">
1408 <xsl:with-param name="name" select="type"/>
1409 </xsl:call-template>
1410</xsl:variable>
1411<xsl:text> </xsl:text><xsl:if test="@static='yes'">static </xsl:if><xsl:if
1412 test="@virt='virtual'">virtual </xsl:if><xsl:if
1413 test="string-length($stripped-type) &gt; 0"><xsl:value-of select="$stripped-type"/><xsl:text> </xsl:text></xsl:if>
1414<xsl:value-of select="name"/>(<xsl:apply-templates select="param"
1415 mode="class-detail"/>)<xsl:if test="@const='yes'"> const</xsl:if>;
1416</xsl:template>
1417
1418
1419<xsl:template match="templateparamlist" mode="class-detail">
1420<xsl:text> </xsl:text>template&lt;<xsl:apply-templates select="param" mode="class-detail-template"/>&gt;
1421</xsl:template>
1422
1423
1424<xsl:template match="param" mode="class-detail-template">
1425<xsl:text>
1426 </xsl:text><xsl:value-of select="type"/><xsl:text> </xsl:text>
1427 <xsl:choose>
1428 <xsl:when test="declname = 'Allocator'">
1429 <xsl:value-of select="declname"/>
1430 </xsl:when>
1431 <xsl:when test="declname = 'Arg'">
1432 <xsl:value-of select="declname"/>
1433 </xsl:when>
1434 <xsl:when test="declname = 'BufferSequence'">
1435 <xsl:value-of select="declname"/>
1436 </xsl:when>
1437 <xsl:when test="declname = 'ByteType'">
1438 <xsl:value-of select="declname"/>
1439 </xsl:when>
1440 <xsl:when test="declname = 'Clock'">
1441 <xsl:value-of select="declname"/>
1442 </xsl:when>
1443 <xsl:when test="declname = 'CompletionCondition'">
1444 <xsl:value-of select="declname"/>
1445 </xsl:when>
1446 <xsl:when test="declname = 'ConnectCondition'">
1447 <xsl:value-of select="declname"/>
1448 </xsl:when>
1449 <xsl:when test="declname = 'Context_Service'">
1450 <xsl:value-of select="declname"/>
1451 </xsl:when>
1452 <xsl:when test="declname = 'DatagramSocketService1'">
1453 <xsl:value-of select="concat('``[link boost_asio.reference.DatagramSocketService ', declname, ']``')"/>
1454 </xsl:when>
1455 <xsl:when test="declname = 'EndpointIterator'">
1456 <xsl:value-of select="declname"/>
1457 </xsl:when>
1458 <xsl:when test="declname = 'Elem'">
1459 <xsl:value-of select="declname"/>
1460 </xsl:when>
1461 <xsl:when test="declname = 'ErrorEnum'">
1462 <xsl:value-of select="declname"/>
1463 </xsl:when>
1464 <xsl:when test="declname = 'Function'">
1465 <xsl:value-of select="declname"/>
1466 </xsl:when>
1467 <xsl:when test="declname = 'Iterator'">
1468 <xsl:value-of select="declname"/>
1469 </xsl:when>
1470 <xsl:when test="declname = 'MatchCondition'">
1471 <xsl:value-of select="declname"/>
1472 </xsl:when>
1473 <xsl:when test="declname = 'N'">
1474 <xsl:value-of select="declname"/>
1475 </xsl:when>
1476 <xsl:when test="declname = 'OtherAllocator'">
1477 <xsl:value-of select="declname"/>
1478 </xsl:when>
1479 <xsl:when test="declname = 'PasswordCallback'">
1480 <xsl:value-of select="declname"/>
1481 </xsl:when>
1482 <xsl:when test="declname = 'PodType'">
1483 <xsl:value-of select="declname"/>
1484 </xsl:when>
1485 <xsl:when test="declname = 'PointerToPodType'">
1486 <xsl:value-of select="declname"/>
1487 </xsl:when>
1488 <xsl:when test="declname = 'Protocol1'">
1489 <xsl:value-of select="concat('``[link boost_asio.reference.Protocol ', declname, ']``')"/>
1490 </xsl:when>
1491 <xsl:when test="declname = 'RawSocketService1'">
1492 <xsl:value-of select="concat('``[link boost_asio.reference.RawSocketService ', declname, ']``')"/>
1493 </xsl:when>
1494 <xsl:when test="declname = 'SeqPacketSocketService1'">
1495 <xsl:value-of select="concat('``[link boost_asio.reference.SeqPacketSocketService ', declname, ']``')"/>
1496 </xsl:when>
1497 <xsl:when test="declname = 'Signature'">
1498 <xsl:value-of select="declname"/>
1499 </xsl:when>
1500 <xsl:when test="declname = 'SocketAcceptorService1' or declname = 'SocketAcceptorService2'">
1501 <xsl:value-of select="concat('``[link boost_asio.reference.SocketAcceptorService ', declname, ']``')"/>
1502 </xsl:when>
1503 <xsl:when test="declname = 'SocketService1' or declname = 'SocketService2'">
1504 <xsl:value-of select="concat('``[link boost_asio.reference.SocketService ', declname, ']``')"/>
1505 </xsl:when>
1506 <xsl:when test="declname = 'Stream'">
1507 <xsl:value-of select="declname"/>
1508 </xsl:when>
1509 <xsl:when test="declname = 'StreamSocketService1'">
1510 <xsl:value-of select="concat('``[link boost_asio.reference.StreamSocketService ', declname, ']``')"/>
1511 </xsl:when>
1512 <xsl:when test="declname = 'T'">
1513 <xsl:value-of select="declname"/>
1514 </xsl:when>
1515 <xsl:when test="declname = 'T1'">
1516 <xsl:value-of select="declname"/>
1517 </xsl:when>
1518 <xsl:when test="declname = 'TN'">
1519 <xsl:value-of select="declname"/>
1520 </xsl:when>
1521 <xsl:when test="declname = 'Time'">
1522 <xsl:value-of select="declname"/>
1523 </xsl:when>
1524 <xsl:when test="declname = 'TimeType'">
1525 <xsl:value-of select="declname"/>
1526 </xsl:when>
1527 <xsl:when test="declname = 'Traits'">
1528 <xsl:value-of select="declname"/>
1529 </xsl:when>
1530 <xsl:when test="declname = 'VerifyCallback'">
1531 <xsl:value-of select="declname"/>
1532 </xsl:when>
1533 <xsl:when test="count(declname) = 0">
1534 </xsl:when>
1535 <xsl:otherwise>
1536 <xsl:value-of select="concat('``[link boost_asio.reference.', declname, ' ', declname, ']``')"/>
1537 </xsl:otherwise>
1538 </xsl:choose>
1539 <xsl:if test="count(defval) > 0"> = <xsl:value-of
1540 select="defval"/></xsl:if><xsl:if test="not(position() = last())">,</xsl:if>
1541</xsl:template>
1542
1543
1544<xsl:template match="param" mode="class-detail">
1545<xsl:text>
1546 </xsl:text>
1547 <xsl:choose>
1548 <xsl:when test="string-length(array) &gt; 0">
1549 <xsl:value-of select="substring-before(type, '&amp;')"/>
1550 <xsl:text>(&amp;</xsl:text>
1551 <xsl:value-of select="declname"/>
1552 <xsl:text>)</xsl:text>
1553 <xsl:value-of select="array"/>
1554 </xsl:when>
1555 <xsl:otherwise>
1556 <xsl:value-of select="type"/>
1557 <xsl:text> </xsl:text>
1558 <xsl:value-of select="declname"/>
1559 </xsl:otherwise>
1560 </xsl:choose>
1561 <xsl:if test="count(defval) > 0"> = <xsl:value-of select="defval"/></xsl:if>
1562 <xsl:if test="not(position() = last())">,</xsl:if>
1563</xsl:template>
1564
1565
1566<xsl:template match="*" mode="class-detail"/>
1567
1568
1569<!--========== Namespace ==========-->
1570
1571<xsl:template name="namespace-memberdef">
1572 <xsl:variable name="name">
1573 <xsl:call-template name="strip-asio-ns">
1574 <xsl:with-param name="name" select="concat(../../compoundname, '::', name)"/>
1575 </xsl:call-template>
1576 </xsl:variable>
1577 <xsl:variable name="unqualified-name">
1578 <xsl:call-template name="strip-ns">
1579 <xsl:with-param name="name" select="$name"/>
1580 </xsl:call-template>
1581 </xsl:variable>
1582 <xsl:variable name="id">
1583 <xsl:call-template name="make-id">
1584 <xsl:with-param name="name" select="$name"/>
1585 </xsl:call-template>
1586 </xsl:variable>
1587 <xsl:variable name="doxygen-id">
1588 <xsl:value-of select="@id"/>
1589 </xsl:variable>
1590 <xsl:variable name="overload-count">
1591 <xsl:value-of select="count(../memberdef[name = $unqualified-name])"/>
1592 </xsl:variable>
1593 <xsl:variable name="overload-position">
1594 <xsl:for-each select="../memberdef[name = $unqualified-name]">
1595 <xsl:if test="@id = $doxygen-id">
1596 <xsl:value-of select="position()"/>
1597 </xsl:if>
1598 </xsl:for-each>
1599 </xsl:variable>
1600
1601<xsl:if test="$overload-count &gt; 1 and $overload-position = 1">
1602[section:<xsl:value-of select="$id"/><xsl:text> </xsl:text><xsl:value-of select="$name"/>]
1603
1604<xsl:text>[indexterm1 </xsl:text>
1605<xsl:value-of select="$name"/>
1606<xsl:text>] </xsl:text>
1607
1608<xsl:choose>
1609 <xsl:when test="count(/doxygen/compounddef[@kind='group' and compoundname=$name]) &gt; 0">
1610 <xsl:for-each select="/doxygen/compounddef[@kind='group' and compoundname=$name]">
1611 <xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text>
1612 </xsl:text>
1613 </xsl:for-each>
1614 </xsl:when>
1615 <xsl:otherwise>
1616 <xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text>
1617 </xsl:text>
1618 </xsl:otherwise>
1619</xsl:choose>
1620
1621<xsl:for-each select="../memberdef[name = $unqualified-name]">
1622<xsl:variable name="stripped-type">
1623 <xsl:call-template name="cleanup-type">
1624 <xsl:with-param name="name" select="type"/>
1625 </xsl:call-template>
1626</xsl:variable>
1627<xsl:text>
1628</xsl:text><xsl:apply-templates select="templateparamlist" mode="class-detail"/>
1629<xsl:text> </xsl:text><xsl:if test="string-length($stripped-type) &gt; 0"><xsl:value-of
1630 select="$stripped-type"/><xsl:text> </xsl:text></xsl:if>``[link boost_asio.reference.<xsl:value-of
1631 select="$id"/>.overload<xsl:value-of select="position()"/><xsl:text> </xsl:text>
1632<xsl:value-of select="name"/>]``(<xsl:apply-templates select="param" mode="class-detail"/>);
1633<xsl:text> `` [''''&amp;raquo;'''</xsl:text>
1634<xsl:text> [link boost_asio.reference.</xsl:text>
1635<xsl:value-of select="$id"/>.overload<xsl:value-of select="position()"/>
1636<xsl:text> more...]]``
1637</xsl:text>
1638</xsl:for-each>
1639
1640<xsl:for-each select="/doxygen/compounddef[@kind='group' and compoundname=$name]">
1641 <xsl:apply-templates select="detaileddescription" mode="markup"/>
1642</xsl:for-each>
1643
1644<xsl:call-template name="header-requirements">
1645 <xsl:with-param name="file" select="location/@file"/>
1646</xsl:call-template>
1647
1648</xsl:if>
1649
1650[section:<xsl:if test="$overload-count = 1"><xsl:value-of select="$id"/></xsl:if>
1651<xsl:if test="$overload-count &gt; 1">overload<xsl:value-of select="$overload-position"/>
1652</xsl:if><xsl:text> </xsl:text><xsl:value-of select="$name"/>
1653<xsl:if test="$overload-count &gt; 1"> (<xsl:value-of
1654 select="$overload-position"/> of <xsl:value-of select="$overload-count"/> overloads)</xsl:if>]
1655
1656<xsl:if test="$overload-count = 1">
1657 <xsl:text>[indexterm1 </xsl:text>
1658 <xsl:value-of select="$name"/>
1659 <xsl:text>] </xsl:text>
1660</xsl:if>
1661
1662<xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text>
1663</xsl:text>
1664
1665 <xsl:choose>
1666 <xsl:when test="@kind='typedef'">
1667 <xsl:call-template name="typedef">
1668 <xsl:with-param name="class-name" select="$name"/>
1669 </xsl:call-template>
1670 </xsl:when>
1671 <xsl:when test="@kind='variable'">
1672 <xsl:call-template name="variable"/>
1673 </xsl:when>
1674 <xsl:when test="@kind='enum'">
1675 <xsl:call-template name="enum">
1676 <xsl:with-param name="enum-name" select="$name"/>
1677 </xsl:call-template>
1678 </xsl:when>
1679 <xsl:when test="@kind='function'">
1680 <xsl:call-template name="function"/>
1681 </xsl:when>
1682 </xsl:choose>
1683
1684<xsl:text>
1685</xsl:text><xsl:apply-templates select="detaileddescription" mode="markup"/>
1686
1687<xsl:if test="$overload-count = 1">
1688 <xsl:call-template name="header-requirements">
1689 <xsl:with-param name="file" select="location/@file"/>
1690 </xsl:call-template>
1691</xsl:if>
1692
1693[endsect]
1694
1695<xsl:if test="$overload-count &gt; 1 and $overload-position = $overload-count">
1696[endsect]
1697</xsl:if>
1698</xsl:template>
1699
1700
1701</xsl:stylesheet>