Skip to content
Snippets Groups Projects
Commit da5ed6f9 authored by g0dil's avatar g0dil
Browse files

Socket: Add additional policy-dependency documentation to ClientSocketHandle

Correcly handle documentation in subdirectories
parent 4c541a77
No related branches found
No related tags found
No related merge requests found
@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 = .
......@@ -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
@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 = .
......@@ -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
......
......@@ -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>"""
......
......@@ -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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment