From da5ed6f9d4bd136888fcb96cd211a905d44c8e84 Mon Sep 17 00:00:00 2001 From: g0dil <g0dil@wiback.org> Date: Fri, 20 Jul 2007 10:50:02 +0000 Subject: [PATCH] Socket: Add additional policy-dependency documentation to ClientSocketHandle Correcly handle documentation in subdirectories --- Packets/DefaultBundle/Doxyfile | 2 +- Packets/Doxyfile | 3 +-- Packets/MPEGDVBBundle/Doxyfile | 2 +- Socket/ClientSocketHandle.hh | 27 +++++++++++++++------------ doclib/SConscript | 33 +++++++++++++++++++++++++++------ doclib/senf.css | 5 +++++ 6 files changed, 50 insertions(+), 22 deletions(-) diff --git a/Packets/DefaultBundle/Doxyfile b/Packets/DefaultBundle/Doxyfile index 2e8aec2b4..c221a91ce 100644 --- a/Packets/DefaultBundle/Doxyfile +++ b/Packets/DefaultBundle/Doxyfile @@ -1,6 +1,6 @@ @INCLUDE = "$(TOPDIR)/doclib/Doxyfile.global" -PROJECT_NAME = libPackets/DefaultBundle +PROJECT_NAME = DefaultBundle TAGFILES = "$(TOPDIR)/Utils/doc/Utils.tag" "$(TOPDIR)/Packets/doc/Packets.tag" GENERATE_TAGFILE = doc/DefaultBundle.tag INPUT = . diff --git a/Packets/Doxyfile b/Packets/Doxyfile index 931a153ab..b9e5c088a 100644 --- a/Packets/Doxyfile +++ b/Packets/Doxyfile @@ -3,7 +3,6 @@ PROJECT_NAME = libPackets TAGFILES = "$(TOPDIR)/Utils/doc/Utils.tag" GENERATE_TAGFILE = doc/Packets.tag -#INPUT = . DefaultBundle MPEG_DVBBundle INPUT = . -#EXAMPLE_PATH = . DefaultBundle +EXAMPLE_PATH = . DefaultBundle diff --git a/Packets/MPEGDVBBundle/Doxyfile b/Packets/MPEGDVBBundle/Doxyfile index 9e3a96033..db2a4692c 100644 --- a/Packets/MPEGDVBBundle/Doxyfile +++ b/Packets/MPEGDVBBundle/Doxyfile @@ -1,6 +1,6 @@ @INCLUDE = "$(TOPDIR)/doclib/Doxyfile.global" -PROJECT_NAME = libPackets/MPEGDVBBundle +PROJECT_NAME = MPEGDVBBundle TAGFILES = "$(TOPDIR)/Utils/doc/Utils.tag" "$(TOPDIR)/Packets/doc/Packets.tag" GENERATE_TAGFILE = doc/MPEGDVBBundle.tag INPUT = . diff --git a/Socket/ClientSocketHandle.hh b/Socket/ClientSocketHandle.hh index 2b6f4250a..07f206930 100644 --- a/Socket/ClientSocketHandle.hh +++ b/Socket/ClientSocketHandle.hh @@ -46,20 +46,23 @@ namespace senf { This class provides the client side policy interface of the socket abstraction. ClientSocketHandle defines the complete policy interface. It does not implement - any functionality itself however. All calls are forward to the following policy classes: + any functionality itself however. The following table shows, to which policy members each + group of ClientSocketHandle members is forwardd. The last collumn shows, on which other + policies this member-group depends <em>in the default policy classes</em>. If you define + your own policy classes, the dependencies are up to you. <table class="senf"> - <tr><th>ClientSocketHandle member</th> <th>Policy member</th></tr> - <tr><td>read()</td> <td>ReadPolicy::read (\ref senf::ReadPolicyBase)</td></tr> - <tr><td>readfrom()</td> <td>ReadPolicy::readfrom (\ref senf::ReadPolicyBase)</td></tr> - <tr><td>write()</td> <td>WritePolicy::write (\ref senf::WritePolicyBase)</td></tr> - <tr><td>writeto()</td> <td>WritePolicy::writeto (\ref senf::WritePolicyBase)</td></tr> - <tr><td>connect()</td> <td>AddressingPolicy::connect (\ref senf::AddressingPolicyBase)</td></tr> - <tr><td>bind()</td> <td>AddressingPolicy::bind (\ref senf::AddressingPolicyBase)</td></tr> - <tr><td>peer()</td> <td>AddressingPolicy::peer (\ref senf::AddressingPolicyBase)</td></tr> - <tr><td>local()</td> <td>AddressingPolicy::local (\ref senf::AddressingPolicyBase)</td></tr> - <tr><td>rcvbuf()</td> <td>BufferingPolicy::sndbuf (\ref senf::BufferingPolicyBase)</td></tr> - <tr><td>sndbuf()</td> <td>BufferingPolicy::rcvbuf (\ref senf::BufferingPolicyBase)</td></tr> + <tr><th>ClientSocketHandle member</th> <th>Policy member</th> <th>Other policies</th></tr> + <tr><td>read()</td> <td>ReadPolicy::read (\ref senf::ReadPolicyBase)</td> <td></td></tr> + <tr><td>readfrom()</td> <td>ReadPolicy::readfrom (\ref senf::ReadPolicyBase)</td> <td>UnconnectedCommunicationPolicy</td></tr> + <tr><td>write()</td> <td>WritePolicy::write (\ref senf::WritePolicyBase)</td> <td>ConnectedCommunicationPolicy</td></tr> + <tr><td>writeto()</td> <td>WritePolicy::writeto (\ref senf::WritePolicyBase)</td> <td>UnconnectedCommunicationPolicy</td></tr> + <tr><td>connect()</td> <td>AddressingPolicy::connect (\ref senf::AddressingPolicyBase)</td> <td></td></tr> + <tr><td>bind()</td> <td>AddressingPolicy::bind (\ref senf::AddressingPolicyBase)</td> <td></td></tr> + <tr><td>peer()</td> <td>AddressingPolicy::peer (\ref senf::AddressingPolicyBase)</td> <td></td></tr> + <tr><td>local()</td> <td>AddressingPolicy::local (\ref senf::AddressingPolicyBase)</td> <td></td></tr> + <tr><td>rcvbuf()</td> <td>BufferingPolicy::sndbuf (\ref senf::BufferingPolicyBase)</td> <td></td></tr> + <tr><td>sndbuf()</td> <td>BufferingPolicy::rcvbuf (\ref senf::BufferingPolicyBase)</td> <td></td></tr> </table> It is important to note, that not all members are always accessible. Which are depends on diff --git a/doclib/SConscript b/doclib/SConscript index 61b7eba64..e72656b9f 100644 --- a/doclib/SConscript +++ b/doclib/SConscript @@ -8,16 +8,37 @@ import SENFSCons import yaptu def modules(): + # Naja ... etwas rumgehackt aber was solls ... global EXTRA_MODULES - rv = [] + mods = {} ix = len(env.Dir('#').abspath)+1 ex = dict((env.Dir(p).abspath,True) for n,p in EXTRA_MODULES) for module in env.Alias('all_docs')[0].sources: if module.name != 'html.stamp' : continue if not ex.get(module.dir.abspath): - rv.append(('lib%s' % module.dir.dir.dir.name, module.dir.abspath[ix:])) - rv.sort() - return [ (name, env.Dir(path).abspath[ix:]) for name,path in EXTRA_MODULES ] + rv + mods[module.dir.dir.dir.abspath] = [ module.dir.dir.dir.name, module.dir.abspath[ix:], 0 ] + rv = [] + keys = mods.keys() + keys.sort() + for mod in keys: + i = 0 + while i < len(rv): + if mod.startswith(rv[i] + '/'): + level = mods[rv[i]][2] + 1 + i += 1 + while i < len(rv) and mods[rv[i]][2] >= level: + i += 1 + rv[i:i] = [ mod ] + mods[mod][2] = level + break + i += 1 + if i == len(rv): + rv.append(mod) + return [ (name, env.Dir(path).abspath[ix:], 0) for name,path in EXTRA_MODULES + ] + [ ( (((not mods[mod][2]) and 'lib') or '') + mods[mod][0], + mods[mod][1], + mods[mod][2]) + for mod in rv ] def indices(): ix = len(env.Dir('#').abspath)+1 @@ -79,8 +100,8 @@ div.tabs ul li.$projectname a { background-color: #EDE497; } <div id="content2"> <div class="tabs menu"> <ul> -{{ for name, path in modules(): - <li class="${name}"><a href="@TOPDIR@/${path}/index.html">${name}</a></li> +{{ for name, path, level in modules(): + <li class="${name} level${level}"><a href="@TOPDIR@/${path}/index.html">${name}</a></li> }} </ul> </div>""" diff --git a/doclib/senf.css b/doclib/senf.css index 4263f8f81..2df0ed65b 100644 --- a/doclib/senf.css +++ b/doclib/senf.css @@ -190,6 +190,11 @@ div.tabs ul li a:hover, div.tabs ul li.current a { background-color: #EDE497; } +div.tabs ul li.level1 a { + padding-left: 2em; + font-size: 90%; +} + #footer { clear: both; padding: 4px 10px 4px 142px; -- GitLab