Commit c0a281cedb7361e9c5fd9b452a9e05bccf594898

Authored by Georg Hopp
1 parent 98488d55

added first generated documentation

Showing 73 changed files with 4708 additions and 0 deletions

Too many changes to show.

To preserve performance only 73 of 73+ files are displayed.

  1 +# Doxyfile 1.7.3
  2 +
  3 +#---------------------------------------------------------------------------
  4 +# Project related configuration options
  5 +#---------------------------------------------------------------------------
  6 +DOXYFILE_ENCODING = UTF-8
  7 +PROJECT_NAME = server
  8 +PROJECT_NUMBER = 0.0.1
  9 +PROJECT_BRIEF = basic server infrastructure
  10 +PROJECT_LOGO =
  11 +OUTPUT_DIRECTORY = docs
  12 +CREATE_SUBDIRS = NO
  13 +OUTPUT_LANGUAGE = English
  14 +BRIEF_MEMBER_DESC = YES
  15 +REPEAT_BRIEF = YES
  16 +ABBREVIATE_BRIEF =
  17 +ALWAYS_DETAILED_SEC = NO
  18 +INLINE_INHERITED_MEMB = NO
  19 +FULL_PATH_NAMES = YES
  20 +STRIP_FROM_PATH =
  21 +STRIP_FROM_INC_PATH =
  22 +SHORT_NAMES = NO
  23 +JAVADOC_AUTOBRIEF = NO
  24 +QT_AUTOBRIEF = NO
  25 +MULTILINE_CPP_IS_BRIEF = NO
  26 +INHERIT_DOCS = YES
  27 +SEPARATE_MEMBER_PAGES = NO
  28 +TAB_SIZE = 8
  29 +ALIASES =
  30 +OPTIMIZE_OUTPUT_FOR_C = YES
  31 +OPTIMIZE_OUTPUT_JAVA = NO
  32 +OPTIMIZE_FOR_FORTRAN = NO
  33 +OPTIMIZE_OUTPUT_VHDL = NO
  34 +EXTENSION_MAPPING =
  35 +BUILTIN_STL_SUPPORT = NO
  36 +CPP_CLI_SUPPORT = YES
  37 +SIP_SUPPORT = NO
  38 +IDL_PROPERTY_SUPPORT = YES
  39 +DISTRIBUTE_GROUP_DOC = NO
  40 +SUBGROUPING = YES
  41 +TYPEDEF_HIDES_STRUCT = NO
  42 +SYMBOL_CACHE_SIZE = 0
  43 +#---------------------------------------------------------------------------
  44 +# Build related configuration options
  45 +#---------------------------------------------------------------------------
  46 +EXTRACT_ALL = YES
  47 +EXTRACT_PRIVATE = NO
  48 +EXTRACT_STATIC = NO
  49 +EXTRACT_LOCAL_CLASSES = YES
  50 +EXTRACT_LOCAL_METHODS = YES
  51 +EXTRACT_ANON_NSPACES = YES
  52 +HIDE_UNDOC_MEMBERS = NO
  53 +HIDE_UNDOC_CLASSES = NO
  54 +HIDE_FRIEND_COMPOUNDS = NO
  55 +HIDE_IN_BODY_DOCS = NO
  56 +INTERNAL_DOCS = YES
  57 +CASE_SENSE_NAMES = YES
  58 +HIDE_SCOPE_NAMES = NO
  59 +SHOW_INCLUDE_FILES = YES
  60 +FORCE_LOCAL_INCLUDES = NO
  61 +INLINE_INFO = YES
  62 +SORT_MEMBER_DOCS = YES
  63 +SORT_BRIEF_DOCS = NO
  64 +SORT_MEMBERS_CTORS_1ST = NO
  65 +SORT_GROUP_NAMES = NO
  66 +SORT_BY_SCOPE_NAME = NO
  67 +STRICT_PROTO_MATCHING = NO
  68 +GENERATE_TODOLIST = YES
  69 +GENERATE_TESTLIST = YES
  70 +GENERATE_BUGLIST = YES
  71 +GENERATE_DEPRECATEDLIST= YES
  72 +ENABLED_SECTIONS =
  73 +MAX_INITIALIZER_LINES = 30
  74 +SHOW_USED_FILES = YES
  75 +SHOW_DIRECTORIES = NO
  76 +SHOW_FILES = YES
  77 +SHOW_NAMESPACES = YES
  78 +FILE_VERSION_FILTER =
  79 +LAYOUT_FILE =
  80 +#---------------------------------------------------------------------------
  81 +# configuration options related to warning and progress messages
  82 +#---------------------------------------------------------------------------
  83 +QUIET = NO
  84 +WARNINGS = YES
  85 +WARN_IF_UNDOCUMENTED = YES
  86 +WARN_IF_DOC_ERROR = YES
  87 +WARN_NO_PARAMDOC = NO
  88 +WARN_FORMAT = "$file:$line: $text"
  89 +WARN_LOGFILE =
  90 +#---------------------------------------------------------------------------
  91 +# configuration options related to the input files
  92 +#---------------------------------------------------------------------------
  93 +INPUT =
  94 +INPUT_ENCODING = UTF-8
  95 +FILE_PATTERNS =
  96 +RECURSIVE = YES
  97 +EXCLUDE =
  98 +EXCLUDE_SYMLINKS = NO
  99 +EXCLUDE_PATTERNS = */tests/* */doc/* */docs/* */.git/*
  100 +EXCLUDE_SYMBOLS =
  101 +EXAMPLE_PATH =
  102 +EXAMPLE_PATTERNS =
  103 +EXAMPLE_RECURSIVE = NO
  104 +IMAGE_PATH =
  105 +INPUT_FILTER =
  106 +FILTER_PATTERNS =
  107 +FILTER_SOURCE_FILES = NO
  108 +FILTER_SOURCE_PATTERNS =
  109 +#---------------------------------------------------------------------------
  110 +# configuration options related to source browsing
  111 +#---------------------------------------------------------------------------
  112 +SOURCE_BROWSER = YES
  113 +INLINE_SOURCES = YES
  114 +STRIP_CODE_COMMENTS = YES
  115 +REFERENCED_BY_RELATION = NO
  116 +REFERENCES_RELATION = NO
  117 +REFERENCES_LINK_SOURCE = YES
  118 +USE_HTAGS = NO
  119 +VERBATIM_HEADERS = YES
  120 +#---------------------------------------------------------------------------
  121 +# configuration options related to the alphabetical class index
  122 +#---------------------------------------------------------------------------
  123 +ALPHABETICAL_INDEX = YES
  124 +COLS_IN_ALPHA_INDEX = 5
  125 +IGNORE_PREFIX =
  126 +#---------------------------------------------------------------------------
  127 +# configuration options related to the HTML output
  128 +#---------------------------------------------------------------------------
  129 +GENERATE_HTML = YES
  130 +HTML_OUTPUT = html
  131 +HTML_FILE_EXTENSION = .html
  132 +HTML_HEADER =
  133 +HTML_FOOTER =
  134 +HTML_STYLESHEET =
  135 +HTML_COLORSTYLE_HUE = 220
  136 +HTML_COLORSTYLE_SAT = 100
  137 +HTML_COLORSTYLE_GAMMA = 80
  138 +HTML_TIMESTAMP = YES
  139 +HTML_ALIGN_MEMBERS = YES
  140 +HTML_DYNAMIC_SECTIONS = NO
  141 +GENERATE_DOCSET = NO
  142 +DOCSET_FEEDNAME = "Doxygen generated docs"
  143 +DOCSET_BUNDLE_ID = org.doxygen.Project
  144 +DOCSET_PUBLISHER_ID = org.doxygen.Publisher
  145 +DOCSET_PUBLISHER_NAME = Publisher
  146 +GENERATE_HTMLHELP = NO
  147 +CHM_FILE =
  148 +HHC_LOCATION =
  149 +GENERATE_CHI = NO
  150 +CHM_INDEX_ENCODING =
  151 +BINARY_TOC = NO
  152 +TOC_EXPAND = NO
  153 +GENERATE_QHP = NO
  154 +QCH_FILE =
  155 +QHP_NAMESPACE = org.doxygen.Project
  156 +QHP_VIRTUAL_FOLDER = doc
  157 +QHP_CUST_FILTER_NAME =
  158 +QHP_CUST_FILTER_ATTRS =
  159 +QHP_SECT_FILTER_ATTRS =
  160 +QHG_LOCATION =
  161 +GENERATE_ECLIPSEHELP = NO
  162 +ECLIPSE_DOC_ID = org.doxygen.Project
  163 +DISABLE_INDEX = NO
  164 +ENUM_VALUES_PER_LINE = 4
  165 +GENERATE_TREEVIEW = YES
  166 +USE_INLINE_TREES = YES
  167 +TREEVIEW_WIDTH = 250
  168 +EXT_LINKS_IN_WINDOW = NO
  169 +FORMULA_FONTSIZE = 10
  170 +FORMULA_TRANSPARENT = YES
  171 +USE_MATHJAX = NO
  172 +MATHJAX_RELPATH = http://www.mathjax.org/mathjax
  173 +SEARCHENGINE = YES
  174 +SERVER_BASED_SEARCH = NO
  175 +#---------------------------------------------------------------------------
  176 +# configuration options related to the LaTeX output
  177 +#---------------------------------------------------------------------------
  178 +GENERATE_LATEX = YES
  179 +LATEX_OUTPUT = latex
  180 +LATEX_CMD_NAME = latex
  181 +MAKEINDEX_CMD_NAME = makeindex
  182 +COMPACT_LATEX = NO
  183 +PAPER_TYPE = a4
  184 +EXTRA_PACKAGES =
  185 +LATEX_HEADER =
  186 +PDF_HYPERLINKS = YES
  187 +USE_PDFLATEX = YES
  188 +LATEX_BATCHMODE = NO
  189 +LATEX_HIDE_INDICES = NO
  190 +LATEX_SOURCE_CODE = NO
  191 +#---------------------------------------------------------------------------
  192 +# configuration options related to the RTF output
  193 +#---------------------------------------------------------------------------
  194 +GENERATE_RTF = NO
  195 +RTF_OUTPUT = rtf
  196 +COMPACT_RTF = NO
  197 +RTF_HYPERLINKS = NO
  198 +RTF_STYLESHEET_FILE =
  199 +RTF_EXTENSIONS_FILE =
  200 +#---------------------------------------------------------------------------
  201 +# configuration options related to the man page output
  202 +#---------------------------------------------------------------------------
  203 +GENERATE_MAN = NO
  204 +MAN_OUTPUT = man
  205 +MAN_EXTENSION = .3
  206 +MAN_LINKS = NO
  207 +#---------------------------------------------------------------------------
  208 +# configuration options related to the XML output
  209 +#---------------------------------------------------------------------------
  210 +GENERATE_XML = NO
  211 +XML_OUTPUT = xml
  212 +XML_SCHEMA =
  213 +XML_DTD =
  214 +XML_PROGRAMLISTING = YES
  215 +#---------------------------------------------------------------------------
  216 +# configuration options for the AutoGen Definitions output
  217 +#---------------------------------------------------------------------------
  218 +GENERATE_AUTOGEN_DEF = NO
  219 +#---------------------------------------------------------------------------
  220 +# configuration options related to the Perl module output
  221 +#---------------------------------------------------------------------------
  222 +GENERATE_PERLMOD = NO
  223 +PERLMOD_LATEX = NO
  224 +PERLMOD_PRETTY = YES
  225 +PERLMOD_MAKEVAR_PREFIX =
  226 +#---------------------------------------------------------------------------
  227 +# Configuration options related to the preprocessor
  228 +#---------------------------------------------------------------------------
  229 +ENABLE_PREPROCESSING = YES
  230 +MACRO_EXPANSION = NO
  231 +EXPAND_ONLY_PREDEF = NO
  232 +SEARCH_INCLUDES = YES
  233 +INCLUDE_PATH =
  234 +INCLUDE_FILE_PATTERNS =
  235 +PREDEFINED =
  236 +EXPAND_AS_DEFINED =
  237 +SKIP_FUNCTION_MACROS = NO
  238 +#---------------------------------------------------------------------------
  239 +# Configuration::additions related to external references
  240 +#---------------------------------------------------------------------------
  241 +TAGFILES =
  242 +GENERATE_TAGFILE =
  243 +ALLEXTERNALS = NO
  244 +EXTERNAL_GROUPS = YES
  245 +PERL_PATH = /usr/bin/perl
  246 +#---------------------------------------------------------------------------
  247 +# Configuration options related to the dot tool
  248 +#---------------------------------------------------------------------------
  249 +CLASS_DIAGRAMS = YES
  250 +MSCGEN_PATH =
  251 +HIDE_UNDOC_RELATIONS = YES
  252 +HAVE_DOT = YES
  253 +DOT_NUM_THREADS = 0
  254 +DOT_FONTNAME = Helvetica
  255 +DOT_FONTSIZE = 10
  256 +DOT_FONTPATH =
  257 +CLASS_GRAPH = YES
  258 +COLLABORATION_GRAPH = YES
  259 +GROUP_GRAPHS = YES
  260 +UML_LOOK = YES
  261 +TEMPLATE_RELATIONS = NO
  262 +INCLUDE_GRAPH = YES
  263 +INCLUDED_BY_GRAPH = YES
  264 +CALL_GRAPH = YES
  265 +CALLER_GRAPH = YES
  266 +GRAPHICAL_HIERARCHY = YES
  267 +DIRECTORY_GRAPH = YES
  268 +DOT_IMAGE_FORMAT = png
  269 +DOT_PATH =
  270 +DOTFILE_DIRS =
  271 +MSCFILE_DIRS =
  272 +DOT_GRAPH_MAX_NODES = 50
  273 +MAX_DOT_GRAPH_DEPTH = 0
  274 +DOT_TRANSPARENT = YES
  275 +DOT_MULTI_TARGETS = NO
  276 +GENERATE_LEGEND = YES
  277 +DOT_CLEANUP = YES
  1 +Actually this is some kind of server toolkit, also containing
  2 +a class and interface toolkit for C.
  3 +I use a gcc preprocessor extension to use empty variadoc
  4 +argument lists so actually this is gcc only code.
  5 +
1 This should become a server that has a dynamic time-sliced part 6 This should become a server that has a dynamic time-sliced part
2 that updates an internal state all the time. 7 that updates an internal state all the time.
3 Clients might connect as they want and get some information 8 Clients might connect as they want and get some information
  1 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 +<html xmlns="http://www.w3.org/1999/xhtml">
  3 +<head>
  4 +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5 +<title>server: src/socket/accept.c File Reference</title>
  6 +<link href="tabs.css" rel="stylesheet" type="text/css"/>
  7 +<link href="search/search.css" rel="stylesheet" type="text/css"/>
  8 +<script type="text/javascript" src="search/search.js"></script>
  9 +<link href="navtree.css" rel="stylesheet" type="text/css"/>
  10 +<script type="text/javascript" src="jquery.js"></script>
  11 +<script type="text/javascript" src="navtree.js"></script>
  12 +<script type="text/javascript" src="resize.js"></script>
  13 +<script type="text/javascript">
  14 +$(document).ready(initResizable);
  15 +</script>
  16 +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
  17 +</head>
  18 +<body onload='searchBox.OnSelectItem(0);'>
  19 +<!-- Generated by Doxygen 1.7.3 -->
  20 +<script type="text/javascript"><!--
  21 +var searchBox = new SearchBox("searchBox", "search",false,'Search');
  22 +--></script>
  23 +<div id="top">
  24 +<div id="titlearea">
  25 +<table cellspacing="0" cellpadding="0">
  26 + <tbody>
  27 + <tr style="height: 56px;">
  28 + <td style="padding-left: 0.5em;">
  29 + <div id="projectname">server&#160;<span id="projectnumber">0.0.1</span></div>
  30 + <div id="projectbrief">basicserverinfrastructure</div>
  31 + </td>
  32 + </tr>
  33 + </tbody>
  34 +</table>
  35 +</div>
  36 + <div id="navrow1" class="tabs">
  37 + <ul class="tablist">
  38 + <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  39 + <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  40 + <li class="current"><a href="files.html"><span>Files</span></a></li>
  41 + <li id="searchli">
  42 + <div id="MSearchBox" class="MSearchBoxInactive">
  43 + <span class="left">
  44 + <img id="MSearchSelect" src="search/mag_sel.png"
  45 + onmouseover="return searchBox.OnSearchSelectShow()"
  46 + onmouseout="return searchBox.OnSearchSelectHide()"
  47 + alt=""/>
  48 + <input type="text" id="MSearchField" value="Search" accesskey="S"
  49 + onfocus="searchBox.OnSearchFieldFocus(true)"
  50 + onblur="searchBox.OnSearchFieldFocus(false)"
  51 + onkeyup="searchBox.OnSearchFieldChange(event)"/>
  52 + </span><span class="right">
  53 + <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  54 + </span>
  55 + </div>
  56 + </li>
  57 + </ul>
  58 + </div>
  59 + <div id="navrow2" class="tabs2">
  60 + <ul class="tablist">
  61 + <li><a href="files.html"><span>File&#160;List</span></a></li>
  62 + <li><a href="globals.html"><span>Globals</span></a></li>
  63 + </ul>
  64 + </div>
  65 +</div>
  66 +<div id="side-nav" class="ui-resizable side-nav-resizable">
  67 + <div id="nav-tree">
  68 + <div id="nav-tree-contents">
  69 + </div>
  70 + </div>
  71 + <div id="splitbar" style="-moz-user-select:none;"
  72 + class="ui-resizable-handle">
  73 + </div>
  74 +</div>
  75 +<script type="text/javascript">
  76 + initNavTree('accept_8c.html','');
  77 +</script>
  78 +<div id="doc-content">
  79 +<div class="header">
  80 + <div class="summary">
  81 +<a href="#func-members">Functions</a> </div>
  82 + <div class="headertitle">
  83 +<h1>src/socket/accept.c File Reference</h1> </div>
  84 +</div>
  85 +<div class="contents">
  86 +<div class="textblock"><code>#include &lt;errno.h&gt;</code><br/>
  87 +<code>#include &quot;socket.h&quot;</code><br/>
  88 +<code>#include &quot;interface/class.h&quot;</code><br/>
  89 +<code>#include &quot;interface/logger.h&quot;</code><br/>
  90 +</div><div class="textblock"><div class="dynheader">
  91 +Include dependency graph for accept.c:</div>
  92 +<div class="dyncontent">
  93 +<div class="center"><img src="accept_8c__incl.png" border="0" usemap="#src_2socket_2accept_8c" alt=""/></div>
  94 +</div>
  95 +</div>
  96 +<p><a href="accept_8c_source.html">Go to the source code of this file.</a></p>
  97 +<table class="memberdecls">
  98 +<tr><td colspan="2"><h2><a name="func-members"></a>
  99 +Functions</h2></td></tr>
  100 +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structSock.html">Sock</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="accept_8c.html#a46aa6b495ccf752e844f93bf46c9edd6">socketAccept</a> (<a class="el" href="structSock.html">Sock</a> this, char remoteAddr[16])</td></tr>
  101 +</table>
  102 +<hr/><h2>Function Documentation</h2>
  103 +<a class="anchor" id="a46aa6b495ccf752e844f93bf46c9edd6"></a><!-- doxytag: member="accept.c::socketAccept" ref="a46aa6b495ccf752e844f93bf46c9edd6" args="(Sock this, char remoteAddr[16])" -->
  104 +<div class="memitem">
  105 +<div class="memproto">
  106 + <table class="memname">
  107 + <tr>
  108 + <td class="memname"><a class="el" href="structSock.html">Sock</a> socketAccept </td>
  109 + <td>(</td>
  110 + <td class="paramtype"><a class="el" href="structSock.html">Sock</a>&#160;</td>
  111 + <td class="paramname"><em>this</em>, </td>
  112 + </tr>
  113 + <tr>
  114 + <td class="paramkey"></td>
  115 + <td></td>
  116 + <td class="paramtype">char&#160;</td>
  117 + <td class="paramname"><em>remoteAddr</em>[16]&#160;</td>
  118 + </tr>
  119 + <tr>
  120 + <td></td>
  121 + <td>)</td>
  122 + <td></td><td></td>
  123 + </tr>
  124 + </table>
  125 +</div>
  126 +<div class="memdoc">
  127 +
  128 +<p><p>: Uhh, this is bad. we open a new socket additionally to the one we get from the accept call. i have to change the socket constructor to be able to create the data structure without creation of a socket at all. For now i simply close the socket here.... :D</p>
  129 +<p>: change port to remote port on success</p>
  130 +</p>
  131 +
  132 +<p>Definition at line <a class="el" href="accept_8c_source.html#l00008">8</a> of file <a class="el" href="accept_8c_source.html">accept.c</a>.</p>
  133 +<div class="fragment"><pre class="fragment">{
  134 + <a class="code" href="structSock.html">Sock</a> sock; <span class="comment">/* Socket for client */</span>
  135 + <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len; <span class="comment">/* Length of client address data structure */</span>
  136 +
  137 + <span class="comment">/* Set the size of the in-out parameter */</span>
  138 + len = <span class="keyword">sizeof</span>(this-&gt;addr);
  139 +
  140 + sock = <span class="keyword">new</span>(<a class="code" href="structSock.html">Sock</a>, this-&gt;log, this-&gt;port);
  141 + close(sock-&gt;<a class="code" href="structSock.html#a1b5945aef923a906501d7abac82449c3">handle</a>);
  142 + <span class="comment">/* Wait for a client to connect */</span>
  143 + sock-&gt;<a class="code" href="structSock.html#a1b5945aef923a906501d7abac82449c3">handle</a> = accept(this-&gt;handle, (<span class="keyword">struct</span> sockaddr *) &amp;(sock-&gt;addr), &amp;len);
  144 + <span class="keywordflow">if</span> (-1 == sock-&gt;<a class="code" href="structSock.html#a1b5945aef923a906501d7abac82449c3">handle</a>) {
  145 + <a class="code" href="interface_2logger_8h.html#ae9f8662ec8b300dcfb5064906937553e">loggerLog</a>(this-&gt;log, <a class="code" href="logger_8h.html#a63296c69f4b9bf51d6756a5d2c482d1ea236a2401a6ed3e96611f3a14352082ad">LOGGER_WARNING</a>,
  146 + <span class="stringliteral">&quot;error accepting connection: %s&quot;</span>, strerror(errno));
  147 + } <span class="keywordflow">else</span> {
  148 + <a class="code" href="interface_2logger_8h.html#ae9f8662ec8b300dcfb5064906937553e">loggerLog</a>(this-&gt;log, <a class="code" href="logger_8h.html#a63296c69f4b9bf51d6756a5d2c482d1ea3a56c2c000665930df74a9ebf9047316">LOGGER_INFO</a>,
  149 + <span class="stringliteral">&quot;handling client %s\n&quot;</span>, inet_ntoa((sock-&gt;addr).sin_addr));
  150 + }
  151 +
  152 + <span class="keywordflow">return</span> sock;
  153 +}
  154 +</pre></div>
  155 +<p><div class="dynheader">
  156 +Here is the call graph for this function:</div>
  157 +<div class="dyncontent">
  158 +<div class="center"><img src="accept_8c_a46aa6b495ccf752e844f93bf46c9edd6_cgraph.png" border="0" usemap="#accept_8c_a46aa6b495ccf752e844f93bf46c9edd6_cgraph" alt=""/></div>
  159 +<map name="accept_8c_a46aa6b495ccf752e844f93bf46c9edd6_cgraph" id="accept_8c_a46aa6b495ccf752e844f93bf46c9edd6_cgraph">
  160 +<area shape="rect" id="node3" href="interface_2logger_8h.html#ae9f8662ec8b300dcfb5064906937553e" title="loggerLog" alt="" coords="156,5,236,33"/></map>
  161 +</div>
  162 +</p>
  163 +
  164 +</div>
  165 +</div>
  166 +</div>
  167 +</div>
  168 + <div id="nav-path" class="navpath">
  169 + <ul>
  170 + <li class="navelem"><a class="el" href="accept_8c.html">accept.c</a> </li>
  171 + <li class="footer">Generated on Wed Feb 8 2012 13:04:40 for server by&#160;
  172 +<a href="http://www.doxygen.org/index.html">
  173 +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
  174 + </ul>
  175 + </div>
  176 +<!--- window showing the filter options -->
  177 +<div id="MSearchSelectWindow"
  178 + onmouseover="return searchBox.OnSearchSelectShow()"
  179 + onmouseout="return searchBox.OnSearchSelectHide()"
  180 + onkeydown="return searchBox.OnSearchSelectKey(event)">
  181 +<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>
  182 +
  183 +<!-- iframe showing the search results (closed by default) -->
  184 +<div id="MSearchResultsWindow">
  185 +<iframe src="" frameborder="0"
  186 + name="MSearchResults" id="MSearchResults">
  187 +</iframe>
  188 +</div>
  189 +
  190 +
  191 +</body>
  192 +</html>
  1 +<map id="G" name="G">
  2 +</map>
  1 +1f351f0407c3df2f6b6e1d1a4f5422ba
  1 +<map id="G" name="G">
  2 +<area shape="rect" id="node3" href="$interface_2logger_8h.html#ae9f8662ec8b300dcfb5064906937553e" title="loggerLog" alt="" coords="156,5,236,33"/>
  3 +</map>
  1 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 +<html xmlns="http://www.w3.org/1999/xhtml">
  3 +<head>
  4 +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5 +<title>server: src/socket/accept.c Source File</title>
  6 +<link href="tabs.css" rel="stylesheet" type="text/css"/>
  7 +<link href="search/search.css" rel="stylesheet" type="text/css"/>
  8 +<script type="text/javascript" src="search/search.js"></script>
  9 +<link href="navtree.css" rel="stylesheet" type="text/css"/>
  10 +<script type="text/javascript" src="jquery.js"></script>
  11 +<script type="text/javascript" src="navtree.js"></script>
  12 +<script type="text/javascript" src="resize.js"></script>
  13 +<script type="text/javascript">
  14 +$(document).ready(initResizable);
  15 +</script>
  16 +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
  17 +</head>
  18 +<body onload='searchBox.OnSelectItem(0);'>
  19 +<!-- Generated by Doxygen 1.7.3 -->
  20 +<script type="text/javascript"><!--
  21 +var searchBox = new SearchBox("searchBox", "search",false,'Search');
  22 +--></script>
  23 +<div id="top">
  24 +<div id="titlearea">
  25 +<table cellspacing="0" cellpadding="0">
  26 + <tbody>
  27 + <tr style="height: 56px;">
  28 + <td style="padding-left: 0.5em;">
  29 + <div id="projectname">server&#160;<span id="projectnumber">0.0.1</span></div>
  30 + <div id="projectbrief">basicserverinfrastructure</div>
  31 + </td>
  32 + </tr>
  33 + </tbody>
  34 +</table>
  35 +</div>
  36 + <div id="navrow1" class="tabs">
  37 + <ul class="tablist">
  38 + <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  39 + <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  40 + <li class="current"><a href="files.html"><span>Files</span></a></li>
  41 + <li id="searchli">
  42 + <div id="MSearchBox" class="MSearchBoxInactive">
  43 + <span class="left">
  44 + <img id="MSearchSelect" src="search/mag_sel.png"
  45 + onmouseover="return searchBox.OnSearchSelectShow()"
  46 + onmouseout="return searchBox.OnSearchSelectHide()"
  47 + alt=""/>
  48 + <input type="text" id="MSearchField" value="Search" accesskey="S"
  49 + onfocus="searchBox.OnSearchFieldFocus(true)"
  50 + onblur="searchBox.OnSearchFieldFocus(false)"
  51 + onkeyup="searchBox.OnSearchFieldChange(event)"/>
  52 + </span><span class="right">
  53 + <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  54 + </span>
  55 + </div>
  56 + </li>
  57 + </ul>
  58 + </div>
  59 + <div id="navrow2" class="tabs2">
  60 + <ul class="tablist">
  61 + <li><a href="files.html"><span>File&#160;List</span></a></li>
  62 + <li><a href="globals.html"><span>Globals</span></a></li>
  63 + </ul>
  64 + </div>
  65 +</div>
  66 +<div id="side-nav" class="ui-resizable side-nav-resizable">
  67 + <div id="nav-tree">
  68 + <div id="nav-tree-contents">
  69 + </div>
  70 + </div>
  71 + <div id="splitbar" style="-moz-user-select:none;"
  72 + class="ui-resizable-handle">
  73 + </div>
  74 +</div>
  75 +<script type="text/javascript">
  76 + initNavTree('accept_8c.html','');
  77 +</script>
  78 +<div id="doc-content">
  79 +<div class="header">
  80 + <div class="headertitle">
  81 +<h1>src/socket/accept.c</h1> </div>
  82 +</div>
  83 +<div class="contents">
  84 +<a href="accept_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;errno.h&gt;</span> <span class="comment">/* for errno */</span>
  85 +<a name="l00002"></a>00002
  86 +<a name="l00003"></a>00003 <span class="preprocessor">#include &quot;socket.h&quot;</span>
  87 +<a name="l00004"></a>00004 <span class="preprocessor">#include &quot;interface/class.h&quot;</span>
  88 +<a name="l00005"></a>00005 <span class="preprocessor">#include &quot;interface/logger.h&quot;</span>
  89 +<a name="l00006"></a>00006
  90 +<a name="l00007"></a>00007 <a class="code" href="structSock.html">Sock</a>
  91 +<a name="l00008"></a><a class="code" href="accept_8c.html#a46aa6b495ccf752e844f93bf46c9edd6">00008</a> <a class="code" href="socket_8h.html#a46aa6b495ccf752e844f93bf46c9edd6">socketAccept</a>(<a class="code" href="structSock.html">Sock</a> <span class="keyword">this</span>, <span class="keywordtype">char</span> remoteAddr[16])
  92 +<a name="l00009"></a>00009 {
  93 +<a name="l00010"></a>00010 <a class="code" href="structSock.html">Sock</a> sock; <span class="comment">/* Socket for client */</span>
  94 +<a name="l00011"></a>00011 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len; <span class="comment">/* Length of client address data structure */</span>
  95 +<a name="l00012"></a>00012
  96 +<a name="l00013"></a>00013 <span class="comment">/* Set the size of the in-out parameter */</span>
  97 +<a name="l00014"></a>00014 len = <span class="keyword">sizeof</span>(this-&gt;addr);
  98 +<a name="l00015"></a>00015
  99 +<a name="l00023"></a>00023 sock = <span class="keyword">new</span>(<a class="code" href="structSock.html">Sock</a>, this-&gt;log, this-&gt;port);
  100 +<a name="l00024"></a>00024 close(sock-&gt;<a class="code" href="structSock.html#a1b5945aef923a906501d7abac82449c3">handle</a>);
  101 +<a name="l00029"></a>00029 <span class="comment">/* Wait for a client to connect */</span>
  102 +<a name="l00030"></a>00030 sock-&gt;<a class="code" href="structSock.html#a1b5945aef923a906501d7abac82449c3">handle</a> = accept(this-&gt;handle, (<span class="keyword">struct</span> sockaddr *) &amp;(sock-&gt;addr), &amp;len);
  103 +<a name="l00031"></a>00031 <span class="keywordflow">if</span> (-1 == sock-&gt;<a class="code" href="structSock.html#a1b5945aef923a906501d7abac82449c3">handle</a>) {
  104 +<a name="l00032"></a>00032 <a class="code" href="interface_2logger_8h.html#ae9f8662ec8b300dcfb5064906937553e">loggerLog</a>(this-&gt;log, <a class="code" href="logger_8h.html#a63296c69f4b9bf51d6756a5d2c482d1ea236a2401a6ed3e96611f3a14352082ad">LOGGER_WARNING</a>,
  105 +<a name="l00033"></a>00033 <span class="stringliteral">&quot;error accepting connection: %s&quot;</span>, strerror(errno));
  106 +<a name="l00034"></a>00034 } <span class="keywordflow">else</span> {
  107 +<a name="l00035"></a>00035 <a class="code" href="interface_2logger_8h.html#ae9f8662ec8b300dcfb5064906937553e">loggerLog</a>(this-&gt;log, <a class="code" href="logger_8h.html#a63296c69f4b9bf51d6756a5d2c482d1ea3a56c2c000665930df74a9ebf9047316">LOGGER_INFO</a>,
  108 +<a name="l00036"></a>00036 <span class="stringliteral">&quot;handling client %s\n&quot;</span>, inet_ntoa((sock-&gt;addr).sin_addr));
  109 +<a name="l00037"></a>00037 }
  110 +<a name="l00038"></a>00038
  111 +<a name="l00039"></a>00039 <span class="keywordflow">return</span> sock;
  112 +<a name="l00040"></a>00040 }
  113 +<a name="l00041"></a>00041
  114 +<a name="l00042"></a>00042 <span class="comment">// vim: set ts=4 sw=4:</span>
  115 +</pre></div></div>
  116 +</div>
  117 + <div id="nav-path" class="navpath">
  118 + <ul>
  119 + <li class="navelem"><a class="el" href="accept_8c.html">accept.c</a> </li>
  120 + <li class="footer">Generated on Wed Feb 8 2012 13:04:39 for server by&#160;
  121 +<a href="http://www.doxygen.org/index.html">
  122 +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
  123 + </ul>
  124 + </div>
  125 +<!--- window showing the filter options -->
  126 +<div id="MSearchSelectWindow"
  127 + onmouseover="return searchBox.OnSearchSelectShow()"
  128 + onmouseout="return searchBox.OnSearchSelectHide()"
  129 + onkeydown="return searchBox.OnSearchSelectKey(event)">
  130 +<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>
  131 +
  132 +<!-- iframe showing the search results (closed by default) -->
  133 +<div id="MSearchResultsWindow">
  134 +<iframe src="" frameborder="0"
  135 + name="MSearchResults" id="MSearchResults">
  136 +</iframe>
  137 +</div>
  138 +
  139 +
  140 +</body>
  141 +</html>
  1 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 +<html xmlns="http://www.w3.org/1999/xhtml">
  3 +<head>
  4 +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5 +<title>server: Data Structures</title>
  6 +<link href="tabs.css" rel="stylesheet" type="text/css"/>
  7 +<link href="search/search.css" rel="stylesheet" type="text/css"/>
  8 +<script type="text/javascript" src="search/search.js"></script>
  9 +<link href="navtree.css" rel="stylesheet" type="text/css"/>
  10 +<script type="text/javascript" src="jquery.js"></script>
  11 +<script type="text/javascript" src="navtree.js"></script>
  12 +<script type="text/javascript" src="resize.js"></script>
  13 +<script type="text/javascript">
  14 +$(document).ready(initResizable);
  15 +</script>
  16 +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
  17 +</head>
  18 +<body onload='searchBox.OnSelectItem(0);'>
  19 +<!-- Generated by Doxygen 1.7.3 -->
  20 +<script type="text/javascript"><!--
  21 +var searchBox = new SearchBox("searchBox", "search",false,'Search');
  22 +--></script>
  23 +<div id="top">
  24 +<div id="titlearea">
  25 +<table cellspacing="0" cellpadding="0">
  26 + <tbody>
  27 + <tr style="height: 56px;">
  28 + <td style="padding-left: 0.5em;">
  29 + <div id="projectname">server&#160;<span id="projectnumber">0.0.1</span></div>
  30 + <div id="projectbrief">basicserverinfrastructure</div>
  31 + </td>
  32 + </tr>
  33 + </tbody>
  34 +</table>
  35 +</div>
  36 + <div id="navrow1" class="tabs">
  37 + <ul class="tablist">
  38 + <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  39 + <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  40 + <li><a href="files.html"><span>Files</span></a></li>
  41 + <li id="searchli">
  42 + <div id="MSearchBox" class="MSearchBoxInactive">
  43 + <span class="left">
  44 + <img id="MSearchSelect" src="search/mag_sel.png"
  45 + onmouseover="return searchBox.OnSearchSelectShow()"
  46 + onmouseout="return searchBox.OnSearchSelectHide()"
  47 + alt=""/>
  48 + <input type="text" id="MSearchField" value="Search" accesskey="S"
  49 + onfocus="searchBox.OnSearchFieldFocus(true)"
  50 + onblur="searchBox.OnSearchFieldFocus(false)"
  51 + onkeyup="searchBox.OnSearchFieldChange(event)"/>
  52 + </span><span class="right">
  53 + <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  54 + </span>
  55 + </div>
  56 + </li>
  57 + </ul>
  58 + </div>
  59 + <div id="navrow2" class="tabs2">
  60 + <ul class="tablist">
  61 + <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  62 + <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
  63 + <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
  64 + </ul>
  65 + </div>
  66 +</div>
  67 +<div id="side-nav" class="ui-resizable side-nav-resizable">
  68 + <div id="nav-tree">
  69 + <div id="nav-tree-contents">
  70 + </div>
  71 + </div>
  72 + <div id="splitbar" style="-moz-user-select:none;"
  73 + class="ui-resizable-handle">
  74 + </div>
  75 +</div>
  76 +<script type="text/javascript">
  77 + initNavTree('annotated.html','');
  78 +</script>
  79 +<div id="doc-content">
  80 +<div class="header">
  81 + <div class="headertitle">
  82 +<h1>Data Structures</h1> </div>
  83 +</div>
  84 +<div class="contents">
  85 +<div class="textblock">Here are the data structures with brief descriptions:</div><table>
  86 + <tr><td class="indexkey"><a class="el" href="structclass.html">class</a></td><td class="indexvalue"></td></tr>
  87 + <tr><td class="indexkey"><a class="el" href="structHttpRequest.html">HttpRequest</a></td><td class="indexvalue"></td></tr>
  88 + <tr><td class="indexkey"><a class="el" href="structHttpRequestParser.html">HttpRequestParser</a></td><td class="indexvalue"></td></tr>
  89 + <tr><td class="indexkey"><a class="el" href="structHttpRequestQueue.html">HttpRequestQueue</a></td><td class="indexvalue"></td></tr>
  90 + <tr><td class="indexkey"><a class="el" href="structi__Class.html">i_Class</a></td><td class="indexvalue"></td></tr>
  91 + <tr><td class="indexkey"><a class="el" href="structi__Logger.html">i_Logger</a></td><td class="indexvalue"></td></tr>
  92 + <tr><td class="indexkey"><a class="el" href="structi__StreamReader.html">i_StreamReader</a></td><td class="indexvalue"></td></tr>
  93 + <tr><td class="indexkey"><a class="el" href="structiface__impl.html">iface_impl</a></td><td class="indexvalue"></td></tr>
  94 + <tr><td class="indexkey"><a class="el" href="structinterface.html">interface</a></td><td class="indexvalue"></td></tr>
  95 + <tr><td class="indexkey"><a class="el" href="structLogger.html">Logger</a></td><td class="indexvalue"></td></tr>
  96 + <tr><td class="indexkey"><a class="el" href="structLoggerStderr.html">LoggerStderr</a></td><td class="indexvalue"></td></tr>
  97 + <tr><td class="indexkey"><a class="el" href="structLoggerSyslog.html">LoggerSyslog</a></td><td class="indexvalue"></td></tr>
  98 + <tr><td class="indexkey"><a class="el" href="structServer.html">Server</a></td><td class="indexvalue"></td></tr>
  99 + <tr><td class="indexkey"><a class="el" href="structSock.html">Sock</a></td><td class="indexvalue"></td></tr>
  100 +</table>
  101 +</div>
  102 +</div>
  103 + <div id="nav-path" class="navpath">
  104 + <ul>
  105 + <li class="footer">Generated on Wed Feb 8 2012 13:04:40 for server by&#160;
  106 +<a href="http://www.doxygen.org/index.html">
  107 +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
  108 + </ul>
  109 + </div>
  110 +<!--- window showing the filter options -->
  111 +<div id="MSearchSelectWindow"
  112 + onmouseover="return searchBox.OnSearchSelectShow()"
  113 + onmouseout="return searchBox.OnSearchSelectHide()"
  114 + onkeydown="return searchBox.OnSearchSelectKey(event)">
  115 +<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>
  116 +
  117 +<!-- iframe showing the search results (closed by default) -->
  118 +<div id="MSearchResultsWindow">
  119 +<iframe src="" frameborder="0"
  120 + name="MSearchResults" id="MSearchResults">
  121 +</iframe>
  122 +</div>
  123 +
  124 +
  125 +</body>
  126 +</html>
  1 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 +<html xmlns="http://www.w3.org/1999/xhtml">
  3 +<head>
  4 +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5 +<title>server: src/class.c File Reference</title>
  6 +<link href="tabs.css" rel="stylesheet" type="text/css"/>
  7 +<link href="search/search.css" rel="stylesheet" type="text/css"/>
  8 +<script type="text/javascript" src="search/search.js"></script>
  9 +<link href="navtree.css" rel="stylesheet" type="text/css"/>
  10 +<script type="text/javascript" src="jquery.js"></script>
  11 +<script type="text/javascript" src="navtree.js"></script>
  12 +<script type="text/javascript" src="resize.js"></script>
  13 +<script type="text/javascript">
  14 +$(document).ready(initResizable);
  15 +</script>
  16 +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
  17 +</head>
  18 +<body onload='searchBox.OnSelectItem(0);'>
  19 +<!-- Generated by Doxygen 1.7.3 -->
  20 +<script type="text/javascript"><!--
  21 +var searchBox = new SearchBox("searchBox", "search",false,'Search');
  22 +--></script>
  23 +<div id="top">
  24 +<div id="titlearea">
  25 +<table cellspacing="0" cellpadding="0">
  26 + <tbody>
  27 + <tr style="height: 56px;">
  28 + <td style="padding-left: 0.5em;">
  29 + <div id="projectname">server&#160;<span id="projectnumber">0.0.1</span></div>
  30 + <div id="projectbrief">basicserverinfrastructure</div>
  31 + </td>
  32 + </tr>
  33 + </tbody>
  34 +</table>
  35 +</div>
  36 + <div id="navrow1" class="tabs">
  37 + <ul class="tablist">
  38 + <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  39 + <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  40 + <li class="current"><a href="files.html"><span>Files</span></a></li>
  41 + <li id="searchli">
  42 + <div id="MSearchBox" class="MSearchBoxInactive">
  43 + <span class="left">
  44 + <img id="MSearchSelect" src="search/mag_sel.png"
  45 + onmouseover="return searchBox.OnSearchSelectShow()"
  46 + onmouseout="return searchBox.OnSearchSelectHide()"
  47 + alt=""/>
  48 + <input type="text" id="MSearchField" value="Search" accesskey="S"
  49 + onfocus="searchBox.OnSearchFieldFocus(true)"
  50 + onblur="searchBox.OnSearchFieldFocus(false)"
  51 + onkeyup="searchBox.OnSearchFieldChange(event)"/>
  52 + </span><span class="right">
  53 + <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  54 + </span>
  55 + </div>
  56 + </li>
  57 + </ul>
  58 + </div>
  59 + <div id="navrow2" class="tabs2">
  60 + <ul class="tablist">
  61 + <li><a href="files.html"><span>File&#160;List</span></a></li>
  62 + <li><a href="globals.html"><span>Globals</span></a></li>
  63 + </ul>
  64 + </div>
  65 +</div>
  66 +<div id="side-nav" class="ui-resizable side-nav-resizable">
  67 + <div id="nav-tree">
  68 + <div id="nav-tree-contents">
  69 + </div>
  70 + </div>
  71 + <div id="splitbar" style="-moz-user-select:none;"
  72 + class="ui-resizable-handle">
  73 + </div>
  74 +</div>
  75 +<script type="text/javascript">
  76 + initNavTree('class_8c.html','');
  77 +</script>
  78 +<div id="doc-content">
  79 +<div class="header">
  80 + <div class="summary">
  81 +<a href="#func-members">Functions</a> </div>
  82 + <div class="headertitle">
  83 +<h1>src/class.c File Reference</h1> </div>
  84 +</div>
  85 +<div class="contents">
  86 +<div class="textblock"><code>#include &lt;stdarg.h&gt;</code><br/>
  87 +<code>#include &lt;stdlib.h&gt;</code><br/>
  88 +<code>#include &quot;class.h&quot;</code><br/>
  89 +<code>#include &quot;interface.h&quot;</code><br/>
  90 +</div><div class="textblock"><div class="dynheader">
  91 +Include dependency graph for class.c:</div>
  92 +<div class="dyncontent">
  93 +<div class="center"><img src="class_8c__incl.png" border="0" usemap="#src_2class_8c" alt=""/></div>
  94 +</div>
  95 +</div>
  96 +<p><a href="class_8c_source.html">Go to the source code of this file.</a></p>
  97 +<table class="memberdecls">
  98 +<tr><td colspan="2"><h2><a name="func-members"></a>
  99 +Functions</h2></td></tr>
  100 +<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_8c.html#a30ee53043e30a6f7517952a07b9dad83">class_getInterface</a> (<a class="el" href="structclass.html">class_ptr</a> *<a class="el" href="structclass.html">class</a>, <a class="el" href="structinterface.html">iface_ptr</a> _iface)</td></tr>
  101 +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structclass.html">class_ptr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_8c.html#a4571582148d8bd8a9387e89843e1904a">class_getClass</a> (void *object)</td></tr>
  102 +</table>
  103 +<hr/><h2>Function Documentation</h2>
  104 +<a class="anchor" id="a4571582148d8bd8a9387e89843e1904a"></a><!-- doxytag: member="class.c::class_getClass" ref="a4571582148d8bd8a9387e89843e1904a" args="(void *object)" -->
  105 +<div class="memitem">
  106 +<div class="memproto">
  107 + <table class="memname">
  108 + <tr>
  109 + <td class="memname"><a class="el" href="structclass.html">class_ptr</a> class_getClass </td>
  110 + <td>(</td>
  111 + <td class="paramtype">void *&#160;</td>
  112 + <td class="paramname"><em>object</em></td><td>)</td>
  113 + <td></td>
  114 + </tr>
  115 + </table>
  116 +</div>
  117 +<div class="memdoc">
  118 +
  119 +<p>Definition at line <a class="el" href="class_8c_source.html#l00021">21</a> of file <a class="el" href="class_8c_source.html">class.c</a>.</p>
  120 +<div class="fragment"><pre class="fragment">{
  121 + <span class="keywordflow">return</span> *(<a class="code" href="structclass.html">class_ptr</a> *)(<span class="keywordtype">object</span> - <span class="keyword">sizeof</span>(<span class="keywordtype">void</span>*));
  122 +}
  123 +</pre></div>
  124 +<p><div class="dynheader">
  125 +Here is the caller graph for this function:</div>
  126 +<div class="dyncontent">
  127 +<div class="center"><img src="class_8c_a4571582148d8bd8a9387e89843e1904a_icgraph.png" border="0" usemap="#class_8c_a4571582148d8bd8a9387e89843e1904a_icgraph" alt=""/></div>
  128 +<map name="class_8c_a4571582148d8bd8a9387e89843e1904a_icgraph" id="class_8c_a4571582148d8bd8a9387e89843e1904a_icgraph">
  129 +<area shape="rect" id="node3" href="interface_2class_8c.html#ada46f0179448063a30f6f219270bf1e0" title="classClone" alt="" coords="167,5,252,33"/></map>
  130 +</div>
  131 +</p>
  132 +
  133 +</div>
  134 +</div>
  135 +<a class="anchor" id="a30ee53043e30a6f7517952a07b9dad83"></a><!-- doxytag: member="class.c::class_getInterface" ref="a30ee53043e30a6f7517952a07b9dad83" args="(class_ptr *class, iface_ptr _iface)" -->
  136 +<div class="memitem">
  137 +<div class="memproto">
  138 + <table class="memname">
  139 + <tr>
  140 + <td class="memname">void* class_getInterface </td>
  141 + <td>(</td>
  142 + <td class="paramtype"><a class="el" href="structclass.html">class_ptr</a> *&#160;</td>
  143 + <td class="paramname"><em>class</em>, </td>
  144 + </tr>
  145 + <tr>
  146 + <td class="paramkey"></td>
  147 + <td></td>
  148 + <td class="paramtype"><a class="el" href="structinterface.html">iface_ptr</a>&#160;</td>
  149 + <td class="paramname"><em>_iface</em>&#160;</td>
  150 + </tr>
  151 + <tr>
  152 + <td></td>
  153 + <td>)</td>
  154 + <td></td><td></td>
  155 + </tr>
  156 + </table>
  157 +</div>
  158 +<div class="memdoc">
  159 +
  160 +<p>Definition at line <a class="el" href="class_8c_source.html#l00008">8</a> of file <a class="el" href="class_8c_source.html">class.c</a>.</p>
  161 +<div class="fragment"><pre class="fragment">{
  162 + <span class="keywordtype">void</span> * iface = (<span class="keywordtype">void</span> *)<a class="code" href="class_8h.html#adb99542d8748b5108322ccb26bb367e0">IFACE_GET</a>(*<span class="keyword">class</span>, _iface);
  163 +
  164 + <span class="keywordflow">while</span>(NULL == iface &amp;&amp; <a class="code" href="class_8h.html#a5ea9893a0e62748b9d1154d5b77abed1">HAS_PARENT</a>(*<span class="keyword">class</span>)) {
  165 + *<span class="keyword">class </span>= (*<span class="keyword">class</span>)-&gt;parent;
  166 + iface = (<span class="keywordtype">void</span> *)<a class="code" href="class_8h.html#adb99542d8748b5108322ccb26bb367e0">IFACE_GET</a>(*<span class="keyword">class</span>, _iface);
  167 + }
  168 +
  169 + <span class="keywordflow">return</span> iface;
  170 +}
  171 +</pre></div>
  172 +</div>
  173 +</div>
  174 +</div>
  175 +</div>
  176 + <div id="nav-path" class="navpath">
  177 + <ul>
  178 + <li class="navelem"><a class="el" href="class_8c.html">class.c</a> </li>
  179 + <li class="footer">Generated on Wed Feb 8 2012 13:04:39 for server by&#160;
  180 +<a href="http://www.doxygen.org/index.html">
  181 +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
  182 + </ul>
  183 + </div>
  184 +<!--- window showing the filter options -->
  185 +<div id="MSearchSelectWindow"
  186 + onmouseover="return searchBox.OnSearchSelectShow()"
  187 + onmouseout="return searchBox.OnSearchSelectHide()"
  188 + onkeydown="return searchBox.OnSearchSelectKey(event)">
  189 +<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>
  190 +
  191 +<!-- iframe showing the search results (closed by default) -->
  192 +<div id="MSearchResultsWindow">
  193 +<iframe src="" frameborder="0"
  194 + name="MSearchResults" id="MSearchResults">
  195 +</iframe>
  196 +</div>
  197 +
  198 +
  199 +</body>
  200 +</html>
  1 +<map id="G" name="G">
  2 +</map>
  1 +0faa5486e8244c2d53a573e205a0b141
  1 +<map id="G" name="G">
  2 +<area shape="rect" id="node3" href="$interface_2class_8c.html#ada46f0179448063a30f6f219270bf1e0" title="classClone" alt="" coords="167,5,252,33"/>
  3 +</map>
  1 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 +<html xmlns="http://www.w3.org/1999/xhtml">
  3 +<head>
  4 +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5 +<title>server: src/class.c Source File</title>
  6 +<link href="tabs.css" rel="stylesheet" type="text/css"/>
  7 +<link href="search/search.css" rel="stylesheet" type="text/css"/>
  8 +<script type="text/javascript" src="search/search.js"></script>
  9 +<link href="navtree.css" rel="stylesheet" type="text/css"/>
  10 +<script type="text/javascript" src="jquery.js"></script>
  11 +<script type="text/javascript" src="navtree.js"></script>
  12 +<script type="text/javascript" src="resize.js"></script>
  13 +<script type="text/javascript">
  14 +$(document).ready(initResizable);
  15 +</script>
  16 +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
  17 +</head>
  18 +<body onload='searchBox.OnSelectItem(0);'>
  19 +<!-- Generated by Doxygen 1.7.3 -->
  20 +<script type="text/javascript"><!--
  21 +var searchBox = new SearchBox("searchBox", "search",false,'Search');
  22 +--></script>
  23 +<div id="top">
  24 +<div id="titlearea">
  25 +<table cellspacing="0" cellpadding="0">
  26 + <tbody>
  27 + <tr style="height: 56px;">
  28 + <td style="padding-left: 0.5em;">
  29 + <div id="projectname">server&#160;<span id="projectnumber">0.0.1</span></div>
  30 + <div id="projectbrief">basicserverinfrastructure</div>
  31 + </td>
  32 + </tr>
  33 + </tbody>
  34 +</table>
  35 +</div>
  36 + <div id="navrow1" class="tabs">
  37 + <ul class="tablist">
  38 + <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  39 + <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  40 + <li class="current"><a href="files.html"><span>Files</span></a></li>
  41 + <li id="searchli">
  42 + <div id="MSearchBox" class="MSearchBoxInactive">
  43 + <span class="left">
  44 + <img id="MSearchSelect" src="search/mag_sel.png"
  45 + onmouseover="return searchBox.OnSearchSelectShow()"
  46 + onmouseout="return searchBox.OnSearchSelectHide()"
  47 + alt=""/>
  48 + <input type="text" id="MSearchField" value="Search" accesskey="S"
  49 + onfocus="searchBox.OnSearchFieldFocus(true)"
  50 + onblur="searchBox.OnSearchFieldFocus(false)"
  51 + onkeyup="searchBox.OnSearchFieldChange(event)"/>
  52 + </span><span class="right">
  53 + <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  54 + </span>
  55 + </div>
  56 + </li>
  57 + </ul>
  58 + </div>
  59 + <div id="navrow2" class="tabs2">
  60 + <ul class="tablist">
  61 + <li><a href="files.html"><span>File&#160;List</span></a></li>
  62 + <li><a href="globals.html"><span>Globals</span></a></li>
  63 + </ul>
  64 + </div>
  65 +</div>
  66 +<div id="side-nav" class="ui-resizable side-nav-resizable">
  67 + <div id="nav-tree">
  68 + <div id="nav-tree-contents">
  69 + </div>
  70 + </div>
  71 + <div id="splitbar" style="-moz-user-select:none;"
  72 + class="ui-resizable-handle">
  73 + </div>
  74 +</div>
  75 +<script type="text/javascript">
  76 + initNavTree('class_8c.html','');
  77 +</script>
  78 +<div id="doc-content">
  79 +<div class="header">
  80 + <div class="headertitle">
  81 +<h1>src/class.c</h1> </div>
  82 +</div>
  83 +<div class="contents">
  84 +<a href="class_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdarg.h&gt;</span>
  85 +<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
  86 +<a name="l00003"></a>00003
  87 +<a name="l00004"></a>00004 <span class="preprocessor">#include &quot;class.h&quot;</span>
  88 +<a name="l00005"></a>00005 <span class="preprocessor">#include &quot;interface.h&quot;</span>
  89 +<a name="l00006"></a>00006
  90 +<a name="l00007"></a>00007 <span class="keywordtype">void</span> *
  91 +<a name="l00008"></a><a class="code" href="class_8c.html#a30ee53043e30a6f7517952a07b9dad83">00008</a> <a class="code" href="class_8h.html#ad96186de45579eb423ab318a5caaf62f">class_getInterface</a>(<a class="code" href="structclass.html">class_ptr</a> * <span class="keyword">class</span>, <a class="code" href="structinterface.html">iface_ptr</a> _iface)
  92 +<a name="l00009"></a>00009 {
  93 +<a name="l00010"></a>00010 <span class="keywordtype">void</span> * iface = (<span class="keywordtype">void</span> *)<a class="code" href="class_8h.html#adb99542d8748b5108322ccb26bb367e0">IFACE_GET</a>(*<span class="keyword">class</span>, _iface);
  94 +<a name="l00011"></a>00011
  95 +<a name="l00012"></a>00012 <span class="keywordflow">while</span>(NULL == iface &amp;&amp; <a class="code" href="class_8h.html#a5ea9893a0e62748b9d1154d5b77abed1">HAS_PARENT</a>(*<span class="keyword">class</span>)) {
  96 +<a name="l00013"></a>00013 *<span class="keyword">class </span>= (*<span class="keyword">class</span>)-&gt;parent;
  97 +<a name="l00014"></a>00014 iface = (<span class="keywordtype">void</span> *)<a class="code" href="class_8h.html#adb99542d8748b5108322ccb26bb367e0">IFACE_GET</a>(*<span class="keyword">class</span>, _iface);
  98 +<a name="l00015"></a>00015 }
  99 +<a name="l00016"></a>00016
  100 +<a name="l00017"></a>00017 <span class="keywordflow">return</span> iface;
  101 +<a name="l00018"></a>00018 }
  102 +<a name="l00019"></a>00019
  103 +<a name="l00020"></a>00020 <a class="code" href="structclass.html">class_ptr</a>
  104 +<a name="l00021"></a><a class="code" href="class_8c.html#a4571582148d8bd8a9387e89843e1904a">00021</a> <a class="code" href="class_8h.html#a1f382a42de272d5cc4d6bb5b17db6ede">class_getClass</a>(<span class="keywordtype">void</span> * <span class="keywordtype">object</span>)
  105 +<a name="l00022"></a>00022 {
  106 +<a name="l00023"></a>00023 <span class="keywordflow">return</span> *(<a class="code" href="structclass.html">class_ptr</a> *)(<span class="keywordtype">object</span> - <span class="keyword">sizeof</span>(<span class="keywordtype">void</span>*));
  107 +<a name="l00024"></a>00024 }
  108 +<a name="l00025"></a>00025
  109 +<a name="l00026"></a>00026 <span class="comment">// vim: set ts=4 sw=4:</span>
  110 +</pre></div></div>
  111 +</div>
  112 + <div id="nav-path" class="navpath">
  113 + <ul>
  114 + <li class="navelem"><a class="el" href="class_8c.html">class.c</a> </li>
  115 + <li class="footer">Generated on Wed Feb 8 2012 13:04:39 for server by&#160;
  116 +<a href="http://www.doxygen.org/index.html">
  117 +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
  118 + </ul>
  119 + </div>
  120 +<!--- window showing the filter options -->
  121 +<div id="MSearchSelectWindow"
  122 + onmouseover="return searchBox.OnSearchSelectShow()"
  123 + onmouseout="return searchBox.OnSearchSelectHide()"
  124 + onkeydown="return searchBox.OnSearchSelectKey(event)">
  125 +<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>
  126 +
  127 +<!-- iframe showing the search results (closed by default) -->
  128 +<div id="MSearchResultsWindow">
  129 +<iframe src="" frameborder="0"
  130 + name="MSearchResults" id="MSearchResults">
  131 +</iframe>
  132 +</div>
  133 +
  134 +
  135 +</body>
  136 +</html>
  1 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 +<html xmlns="http://www.w3.org/1999/xhtml">
  3 +<head>
  4 +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5 +<title>server: include/class.h File Reference</title>
  6 +<link href="tabs.css" rel="stylesheet" type="text/css"/>
  7 +<link href="search/search.css" rel="stylesheet" type="text/css"/>
  8 +<script type="text/javascript" src="search/search.js"></script>
  9 +<link href="navtree.css" rel="stylesheet" type="text/css"/>
  10 +<script type="text/javascript" src="jquery.js"></script>
  11 +<script type="text/javascript" src="navtree.js"></script>
  12 +<script type="text/javascript" src="resize.js"></script>
  13 +<script type="text/javascript">
  14 +$(document).ready(initResizable);
  15 +</script>
  16 +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
  17 +</head>
  18 +<body onload='searchBox.OnSelectItem(0);'>
  19 +<!-- Generated by Doxygen 1.7.3 -->
  20 +<script type="text/javascript"><!--
  21 +var searchBox = new SearchBox("searchBox", "search",false,'Search');
  22 +--></script>
  23 +<div id="top">
  24 +<div id="titlearea">
  25 +<table cellspacing="0" cellpadding="0">
  26 + <tbody>
  27 + <tr style="height: 56px;">
  28 + <td style="padding-left: 0.5em;">
  29 + <div id="projectname">server&#160;<span id="projectnumber">0.0.1</span></div>
  30 + <div id="projectbrief">basicserverinfrastructure</div>
  31 + </td>
  32 + </tr>
  33 + </tbody>
  34 +</table>
  35 +</div>
  36 + <div id="navrow1" class="tabs">
  37 + <ul class="tablist">
  38 + <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  39 + <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  40 + <li class="current"><a href="files.html"><span>Files</span></a></li>
  41 + <li id="searchli">
  42 + <div id="MSearchBox" class="MSearchBoxInactive">
  43 + <span class="left">
  44 + <img id="MSearchSelect" src="search/mag_sel.png"
  45 + onmouseover="return searchBox.OnSearchSelectShow()"
  46 + onmouseout="return searchBox.OnSearchSelectHide()"
  47 + alt=""/>
  48 + <input type="text" id="MSearchField" value="Search" accesskey="S"
  49 + onfocus="searchBox.OnSearchFieldFocus(true)"
  50 + onblur="searchBox.OnSearchFieldFocus(false)"
  51 + onkeyup="searchBox.OnSearchFieldChange(event)"/>
  52 + </span><span class="right">
  53 + <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  54 + </span>
  55 + </div>
  56 + </li>
  57 + </ul>
  58 + </div>
  59 + <div id="navrow2" class="tabs2">
  60 + <ul class="tablist">
  61 + <li><a href="files.html"><span>File&#160;List</span></a></li>
  62 + <li><a href="globals.html"><span>Globals</span></a></li>
  63 + </ul>
  64 + </div>
  65 +</div>
  66 +<div id="side-nav" class="ui-resizable side-nav-resizable">
  67 + <div id="nav-tree">
  68 + <div id="nav-tree-contents">
  69 + </div>
  70 + </div>
  71 + <div id="splitbar" style="-moz-user-select:none;"
  72 + class="ui-resizable-handle">
  73 + </div>
  74 +</div>
  75 +<script type="text/javascript">
  76 + initNavTree('class_8h.html','');
  77 +</script>
  78 +<div id="doc-content">
  79 +<div class="header">
  80 + <div class="summary">
  81 +<a href="#nested-classes">Data Structures</a> &#124;
  82 +<a href="#define-members">Defines</a> &#124;
  83 +<a href="#typedef-members">Typedefs</a> &#124;
  84 +<a href="#func-members">Functions</a> </div>
  85 + <div class="headertitle">
  86 +<h1>include/class.h File Reference</h1> </div>
  87 +</div>
  88 +<div class="contents">
  89 +<div class="textblock"><code>#include &lt;stdarg.h&gt;</code><br/>
  90 +<code>#include &lt;sys/types.h&gt;</code><br/>
  91 +<code>#include &lt;string.h&gt;</code><br/>
  92 +<code>#include &lt;assert.h&gt;</code><br/>
  93 +<code>#include &quot;<a class="el" href="interface_8h_source.html">interface.h</a>&quot;</code><br/>
  94 +</div><div class="textblock"><div class="dynheader">
  95 +Include dependency graph for class.h:</div>
  96 +<div class="dyncontent">
  97 +<div class="center"><img src="class_8h__incl.png" border="0" usemap="#include_2class_8h" alt=""/></div>
  98 +<map name="include_2class_8h" id="include_2class_8h">
  99 +<area shape="rect" id="node11" href="interface_8h.html" title="interface.h" alt="" coords="333,83,416,111"/></map>
  100 +</div>
  101 +</div><div class="textblock"><div class="dynheader">
  102 +This graph shows which files directly or indirectly include this file:</div>
  103 +<div class="dyncontent">
  104 +<div class="center"><img src="class_8h__dep__incl.png" border="0" usemap="#include_2class_8hdep" alt=""/></div>
  105 +<map name="include_2class_8hdep" id="include_2class_8hdep">
  106 +<area shape="rect" id="node3" href="logger_8h.html" title="include/logger.h" alt="" coords="80,83,195,111"/><area shape="rect" id="node5" href="socket_8h.html" title="include/socket.h" alt="" coords="5,161,123,189"/><area shape="rect" id="node7" href="server_8h.html" title="include/server.h" alt="" coords="103,238,217,266"/></map>
  107 +</div>
  108 +</div>
  109 +<p><a href="class_8h_source.html">Go to the source code of this file.</a></p>
  110 +<table class="memberdecls">
  111 +<tr><td colspan="2"><h2><a name="nested-classes"></a>
  112 +Data Structures</h2></td></tr>
  113 +<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structclass.html">class</a></td></tr>
  114 +<tr><td colspan="2"><h2><a name="define-members"></a>
  115 +Defines</h2></td></tr>
  116 +<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_8h.html#a04ec2c53aa9fcdb5b58dc8e9d552dec0">_ISOC99_SOURCE</a></td></tr>
  117 +<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_8h.html#a28c4c4c1ebf62795262a3553d59e8bff">CLASS_MAGIC</a>&#160;&#160;&#160;0xFEFE</td></tr>
  118 +<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_8h.html#ab12c2142e0ec3f4f19a03b3879c67f32">CLASS</a>(name)</td></tr>
  119 +<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_8h.html#a45e588b871b5b73461805ab4a5c59aa5">EXTENDS</a>(parent)&#160;&#160;&#160;const char _[sizeof(struct c_##parent)]</td></tr>
  120 +<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_8h.html#ab9f9098d95379c04d979721396dabf68">_NULL</a>&#160;&#160;&#160;NULL</td></tr>
  121 +<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_8h.html#a509b4880afb25bb862c448d7a71e7afe">CREATE_CLASS</a>(name, _parent,...)</td></tr>
  122 +<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_8h.html#a2e9a0b177e4115cc7e547b51ac35c5af">_CALL</a>(object, _iface, method,...)</td></tr>
  123 +<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_8h.html#ada752d9d1fdbf84e978606e8999c762d">CALL</a>(object, _iface, method,...)</td></tr>
  124 +<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_8h.html#a06fb0f2e08d1cbacbed6784319e7c3fc">RETCALL</a>(object, _iface, method, ret,...)</td></tr>
  125 +<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_8h.html#adb99542d8748b5108322ccb26bb367e0">IFACE_GET</a>(<a class="el" href="structclass.html">class</a>, iface)&#160;&#160;&#160;(interfaceGet(&amp;((<a class="el" href="structclass.html">class</a>)-&gt;impl),(iface)))</td></tr>
  126 +<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_8h.html#a80e924aca338b869530dde0a9389e916">IFACE_EXISTS</a>(<a class="el" href="structclass.html">class</a>, iface)&#160;&#160;&#160;(NULL != IFACE_GET((<a class="el" href="structclass.html">class</a>),(iface)))</td></tr>
  127 +<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_8h.html#a5ea9893a0e62748b9d1154d5b77abed1">HAS_PARENT</a>(<a class="el" href="structclass.html">class</a>)&#160;&#160;&#160;(NULL != ((<a class="el" href="structclass.html">class</a>)-&gt;parent))</td></tr>
  128 +<tr><td colspan="2"><h2><a name="typedef-members"></a>
  129 +Typedefs</h2></td></tr>
  130 +<tr><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_8h.html#aa0ba47bce818b20155a8ef17a1fdc35c">fptr_classInit</a> )(void)</td></tr>
  131 +<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structclass.html">class</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_8h.html#a68df9f6e346c5fad9f61bb2557d1d832">class_ptr</a></td></tr>
  132 +<tr><td colspan="2"><h2><a name="func-members"></a>
  133 +Functions</h2></td></tr>
  134 +<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_8h.html#ad96186de45579eb423ab318a5caaf62f">class_getInterface</a> (<a class="el" href="structclass.html">class_ptr</a> *, <a class="el" href="structinterface.html">iface_ptr</a>)</td></tr>
  135 +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structclass.html">class_ptr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_8h.html#a1f382a42de272d5cc4d6bb5b17db6ede">class_getClass</a> (void *)</td></tr>
  136 +</table>
  137 +<hr/><h2>Define Documentation</h2>
  138 +<a class="anchor" id="a2e9a0b177e4115cc7e547b51ac35c5af"></a><!-- doxytag: member="class.h::_CALL" ref="a2e9a0b177e4115cc7e547b51ac35c5af" args="(object, _iface, method,...)" -->
  139 +<div class="memitem">
  140 +<div class="memproto">
  141 + <table class="memname">
  142 + <tr>
  143 + <td class="memname">#define _CALL</td>
  144 + <td>(</td>
  145 + <td class="paramtype">&#160;</td>
  146 + <td class="paramname">object, </td>
  147 + </tr>
  148 + <tr>
  149 + <td class="paramkey"></td>
  150 + <td></td>
  151 + <td class="paramtype">&#160;</td>
  152 + <td class="paramname">_iface, </td>
  153 + </tr>
  154 + <tr>
  155 + <td class="paramkey"></td>
  156 + <td></td>
  157 + <td class="paramtype">&#160;</td>
  158 + <td class="paramname">method, </td>
  159 + </tr>
  160 + <tr>
  161 + <td class="paramkey"></td>
  162 + <td></td>
  163 + <td class="paramtype">&#160;</td>
  164 + <td class="paramname"><em>...</em>&#160;</td>
  165 + </tr>
  166 + <tr>
  167 + <td></td>
  168 + <td>)</td>
  169 + <td></td><td></td>
  170 + </tr>
  171 + </table>
  172 +</div>
  173 +<div class="memdoc">
  174 +<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="structclass.html">class_ptr</a> <span class="keyword">class </span>= <a class="code" href="class_8h.html#a1f382a42de272d5cc4d6bb5b17db6ede">class_getClass</a>((object)); \
  175 + <span class="keyword">struct </span>i_##_iface * iface; \
  176 + <span class="keywordflow">if</span> (<a class="code" href="structclass.html">class</a>-&gt;<a class="code" href="structclass.html#a744967ad02b74a9464c1224c7fa05b23">init</a>) <span class="keyword">class</span>-&gt;<a class="code" href="structclass.html#a744967ad02b74a9464c1224c7fa05b23">init</a>(); \
  177 + iface = (<span class="keyword">struct </span>i_##_iface *)<a class="code" href="class_8h.html#ad96186de45579eb423ab318a5caaf62f">class_getInterface</a>(&amp;<span class="keyword">class</span>, &amp;i_##_iface); \
  178 + <span class="keywordflow">while</span> ((NULL == iface || NULL == iface-&gt;method) &amp;&amp; <a class="code" href="class_8h.html#a5ea9893a0e62748b9d1154d5b77abed1">HAS_PARENT</a>(<span class="keyword">class</span>)) { \
  179 + <span class="keyword">class </span>= <a class="code" href="structclass.html">class</a>-&gt;<a class="code" href="structclass.html#a97f697cb86be7a39d4477e971074ae6e">parent</a>; \
  180 + <span class="keywordflow">if</span> (<a class="code" href="structclass.html">class</a>-&gt;<a class="code" href="structclass.html#a744967ad02b74a9464c1224c7fa05b23">init</a>) <span class="keyword">class</span>-&gt;<a class="code" href="structclass.html#a744967ad02b74a9464c1224c7fa05b23">init</a>(); \
  181 + iface = (<span class="keyword">struct </span>i_##_iface *)<a class="code" href="class_8h.html#ad96186de45579eb423ab318a5caaf62f">class_getInterface</a>(&amp;<span class="keyword">class</span>, &amp;i_##_iface); \
  182 + }; \
  183 + assert(NULL != iface-&gt;method);
  184 +</pre></div><p>: actually i use gcc feature ## for variadoc... think about a way to make this standard. </p>
  185 +
  186 +<p>Definition at line <a class="el" href="class_8h_source.html#l00043">43</a> of file <a class="el" href="class_8h_source.html">class.h</a>.</p>
  187 +
  188 +</div>
  189 +</div>
  190 +<a class="anchor" id="a04ec2c53aa9fcdb5b58dc8e9d552dec0"></a><!-- doxytag: member="class.h::_ISOC99_SOURCE" ref="a04ec2c53aa9fcdb5b58dc8e9d552dec0" args="" -->
  191 +<div class="memitem">
  192 +<div class="memproto">
  193 + <table class="memname">
  194 + <tr>
  195 + <td class="memname">#define _ISOC99_SOURCE</td>
  196 + </tr>
  197 + </table>
  198 +</div>
  199 +<div class="memdoc">
  200 +
  201 +<p>Definition at line <a class="el" href="class_8h_source.html#l00011">11</a> of file <a class="el" href="class_8h_source.html">class.h</a>.</p>
  202 +
  203 +</div>
  204 +</div>
  205 +<a class="anchor" id="ab9f9098d95379c04d979721396dabf68"></a><!-- doxytag: member="class.h::_NULL" ref="ab9f9098d95379c04d979721396dabf68" args="" -->
  206 +<div class="memitem">
  207 +<div class="memproto">
  208 + <table class="memname">
  209 + <tr>
  210 + <td class="memname">#define _NULL&#160;&#160;&#160;NULL</td>
  211 + </tr>
  212 + </table>
  213 +</div>
  214 +<div class="memdoc">
  215 +
  216 +<p>Definition at line <a class="el" href="class_8h_source.html#l00024">24</a> of file <a class="el" href="class_8h_source.html">class.h</a>.</p>
  217 +
  218 +</div>
  219 +</div>
  220 +<a class="anchor" id="ada752d9d1fdbf84e978606e8999c762d"></a><!-- doxytag: member="class.h::CALL" ref="ada752d9d1fdbf84e978606e8999c762d" args="(object, _iface, method,...)" -->
  221 +<div class="memitem">
  222 +<div class="memproto">
  223 + <table class="memname">
  224 + <tr>
  225 + <td class="memname">#define CALL</td>
  226 + <td>(</td>
  227 + <td class="paramtype">&#160;</td>
  228 + <td class="paramname">object, </td>
  229 + </tr>
  230 + <tr>
  231 + <td class="paramkey"></td>
  232 + <td></td>
  233 + <td class="paramtype">&#160;</td>
  234 + <td class="paramname">_iface, </td>
  235 + </tr>
  236 + <tr>
  237 + <td class="paramkey"></td>
  238 + <td></td>
  239 + <td class="paramtype">&#160;</td>
  240 + <td class="paramname">method, </td>
  241 + </tr>
  242 + <tr>
  243 + <td class="paramkey"></td>
  244 + <td></td>
  245 + <td class="paramtype">&#160;</td>
  246 + <td class="paramname"><em>...</em>&#160;</td>
  247 + </tr>
  248 + <tr>
  249 + <td></td>
  250 + <td>)</td>
  251 + <td></td><td></td>
  252 + </tr>
  253 + </table>
  254 +</div>
  255 +<div class="memdoc">
  256 +<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> { \
  257 + <a class="code" href="class_8h.html#a2e9a0b177e4115cc7e547b51ac35c5af">_CALL</a>(<span class="keywordtype">object</span>, _iface, method, ##__VA_ARGS__); \
  258 + iface-&gt;method(<span class="keywordtype">object</span>, ##__VA_ARGS__); \
  259 + } <span class="keywordflow">while</span>(0)
  260 +</pre></div>
  261 +<p>Definition at line <a class="el" href="class_8h_source.html#l00055">55</a> of file <a class="el" href="class_8h_source.html">class.h</a>.</p>
  262 +
  263 +</div>
  264 +</div>
  265 +<a class="anchor" id="ab12c2142e0ec3f4f19a03b3879c67f32"></a><!-- doxytag: member="class.h::CLASS" ref="ab12c2142e0ec3f4f19a03b3879c67f32" args="(name)" -->
  266 +<div class="memitem">
  267 +<div class="memproto">
  268 + <table class="memname">
  269 + <tr>
  270 + <td class="memname">#define CLASS</td>
  271 + <td>(</td>
  272 + <td class="paramtype">&#160;</td>
  273 + <td class="paramname">name</td><td>)</td>
  274 + <td></td>
  275 + </tr>
  276 + </table>
  277 +</div>
  278 +<div class="memdoc">
  279 +<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keyword">struct </span>c_##name; \
  280 + <span class="keyword">typedef</span> <span class="keyword">struct </span>c_##name * name; \
  281 + <span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structclass.html">class</a> * <span class="keyword">const</span> _##name; \
  282 + <span class="keyword">struct </span>c_##name
  283 +</pre></div>
  284 +<p>Definition at line <a class="el" href="class_8h_source.html#l00015">15</a> of file <a class="el" href="class_8h_source.html">class.h</a>.</p>
  285 +
  286 +</div>
  287 +</div>
  288 +<a class="anchor" id="a28c4c4c1ebf62795262a3553d59e8bff"></a><!-- doxytag: member="class.h::CLASS_MAGIC" ref="a28c4c4c1ebf62795262a3553d59e8bff" args="" -->
  289 +<div class="memitem">
  290 +<div class="memproto">
  291 + <table class="memname">
  292 + <tr>
  293 + <td class="memname">#define CLASS_MAGIC&#160;&#160;&#160;0xFEFE</td>
  294 + </tr>
  295 + </table>
  296 +</div>
  297 +<div class="memdoc">
  298 +
  299 +<p>Definition at line <a class="el" href="class_8h_source.html#l00013">13</a> of file <a class="el" href="class_8h_source.html">class.h</a>.</p>
  300 +
  301 +</div>
  302 +</div>
  303 +<a class="anchor" id="a509b4880afb25bb862c448d7a71e7afe"></a><!-- doxytag: member="class.h::CREATE_CLASS" ref="a509b4880afb25bb862c448d7a71e7afe" args="(name, _parent,...)" -->
  304 +<div class="memitem">
  305 +<div class="memproto">
  306 + <table class="memname">
  307 + <tr>
  308 + <td class="memname">#define CREATE_CLASS</td>
  309 + <td>(</td>
  310 + <td class="paramtype">&#160;</td>
  311 + <td class="paramname">name, </td>
  312 + </tr>
  313 + <tr>
  314 + <td class="paramkey"></td>
  315 + <td></td>
  316 + <td class="paramtype">&#160;</td>
  317 + <td class="paramname">_parent, </td>
  318 + </tr>
  319 + <tr>
  320 + <td class="paramkey"></td>
  321 + <td></td>
  322 + <td class="paramtype">&#160;</td>
  323 + <td class="paramname"><em>...</em>&#160;</td>
  324 + </tr>
  325 + <tr>
  326 + <td></td>
  327 + <td>)</td>
  328 + <td></td><td></td>
  329 + </tr>
  330 + </table>
  331 +</div>
  332 +<div class="memdoc">
  333 +<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keyword">static</span> <span class="keyword">struct </span><a class="code" href="structclass.html">class</a> c_##name; \
  334 + <span class="keyword">static</span> <span class="keywordtype">void</span> _classInit_(<span class="keywordtype">void</span>) { \
  335 + c_##name.<a class="code" href="structclass.html#a97f697cb86be7a39d4477e971074ae6e">parent</a> = _##_parent; \
  336 + c_##name.<a class="code" href="structclass.html#a744967ad02b74a9464c1224c7fa05b23">init</a> = NULL; \
  337 + } \
  338 + <span class="keyword">static</span> <span class="keyword">struct </span><a class="code" href="structclass.html">class</a> c_##name = { \
  339 + <a class="code" href="class_8h.html#a28c4c4c1ebf62795262a3553d59e8bff">CLASS_MAGIC</a>, \
  340 + NULL, \
  341 + <span class="keyword">sizeof</span>(<span class="keyword">struct </span>c_##name), \
  342 + _classInit_, \
  343 + <a class="code" href="interface_8h.html#a6e8015282e5aac5747daff5bb71d8601">INIT_IMPL</a>(__VA_ARGS__) \
  344 + }; <span class="keyword">struct </span><a class="code" href="structclass.html">class</a> * <span class="keyword">const</span> _##name = &amp;c_##name
  345 +</pre></div>
  346 +<p>Definition at line <a class="el" href="class_8h_source.html#l00025">25</a> of file <a class="el" href="class_8h_source.html">class.h</a>.</p>
  347 +
  348 +</div>
  349 +</div>
  350 +<a class="anchor" id="a45e588b871b5b73461805ab4a5c59aa5"></a><!-- doxytag: member="class.h::EXTENDS" ref="a45e588b871b5b73461805ab4a5c59aa5" args="(parent)" -->
  351 +<div class="memitem">
  352 +<div class="memproto">
  353 + <table class="memname">
  354 + <tr>
  355 + <td class="memname">#define EXTENDS</td>
  356 + <td>(</td>
  357 + <td class="paramtype">&#160;</td>
  358 + <td class="paramname">parent</td><td>)</td>
  359 + <td>&#160;&#160;&#160;const char _[sizeof(struct c_##parent)]</td>
  360 + </tr>
  361 + </table>
  362 +</div>
  363 +<div class="memdoc">
  364 +
  365 +<p>Definition at line <a class="el" href="class_8h_source.html#l00021">21</a> of file <a class="el" href="class_8h_source.html">class.h</a>.</p>
  366 +
  367 +</div>
  368 +</div>
  369 +<a class="anchor" id="a5ea9893a0e62748b9d1154d5b77abed1"></a><!-- doxytag: member="class.h::HAS_PARENT" ref="a5ea9893a0e62748b9d1154d5b77abed1" args="(class)" -->
  370 +<div class="memitem">
  371 +<div class="memproto">
  372 + <table class="memname">
  373 + <tr>
  374 + <td class="memname">#define HAS_PARENT</td>
  375 + <td>(</td>
  376 + <td class="paramtype">&#160;</td>
  377 + <td class="paramname"><a class="el" href="structclass.html">class</a></td><td>)</td>
  378 + <td>&#160;&#160;&#160;(NULL != ((<a class="el" href="structclass.html">class</a>)-&gt;parent))</td>
  379 + </tr>
  380 + </table>
  381 +</div>
  382 +<div class="memdoc">
  383 +
  384 +<p>Definition at line <a class="el" href="class_8h_source.html#l00071">71</a> of file <a class="el" href="class_8h_source.html">class.h</a>.</p>
  385 +
  386 +</div>
  387 +</div>
  388 +<a class="anchor" id="a80e924aca338b869530dde0a9389e916"></a><!-- doxytag: member="class.h::IFACE_EXISTS" ref="a80e924aca338b869530dde0a9389e916" args="(class, iface)" -->
  389 +<div class="memitem">
  390 +<div class="memproto">
  391 + <table class="memname">
  392 + <tr>
  393 + <td class="memname">#define IFACE_EXISTS</td>
  394 + <td>(</td>
  395 + <td class="paramtype">&#160;</td>
  396 + <td class="paramname"><a class="el" href="structclass.html">class</a>, </td>
  397 + </tr>
  398 + <tr>
  399 + <td class="paramkey"></td>
  400 + <td></td>
  401 + <td class="paramtype">&#160;</td>
  402 + <td class="paramname">iface&#160;</td>
  403 + </tr>
  404 + <tr>
  405 + <td></td>
  406 + <td>)</td>
  407 + <td></td><td>&#160;&#160;&#160;(NULL != IFACE_GET((<a class="el" href="structclass.html">class</a>),(iface)))</td>
  408 + </tr>
  409 + </table>
  410 +</div>
  411 +<div class="memdoc">
  412 +
  413 +<p>Definition at line <a class="el" href="class_8h_source.html#l00069">69</a> of file <a class="el" href="class_8h_source.html">class.h</a>.</p>
  414 +
  415 +</div>
  416 +</div>
  417 +<a class="anchor" id="adb99542d8748b5108322ccb26bb367e0"></a><!-- doxytag: member="class.h::IFACE_GET" ref="adb99542d8748b5108322ccb26bb367e0" args="(class, iface)" -->
  418 +<div class="memitem">
  419 +<div class="memproto">
  420 + <table class="memname">
  421 + <tr>
  422 + <td class="memname">#define IFACE_GET</td>
  423 + <td>(</td>
  424 + <td class="paramtype">&#160;</td>
  425 + <td class="paramname"><a class="el" href="structclass.html">class</a>, </td>
  426 + </tr>
  427 + <tr>
  428 + <td class="paramkey"></td>
  429 + <td></td>
  430 + <td class="paramtype">&#160;</td>
  431 + <td class="paramname">iface&#160;</td>
  432 + </tr>
  433 + <tr>
  434 + <td></td>
  435 + <td>)</td>
  436 + <td></td><td>&#160;&#160;&#160;(interfaceGet(&amp;((<a class="el" href="structclass.html">class</a>)-&gt;impl),(iface)))</td>
  437 + </tr>
  438 + </table>
  439 +</div>
  440 +<div class="memdoc">
  441 +
  442 +<p>Definition at line <a class="el" href="class_8h_source.html#l00068">68</a> of file <a class="el" href="class_8h_source.html">class.h</a>.</p>
  443 +
  444 +</div>
  445 +</div>
  446 +<a class="anchor" id="a06fb0f2e08d1cbacbed6784319e7c3fc"></a><!-- doxytag: member="class.h::RETCALL" ref="a06fb0f2e08d1cbacbed6784319e7c3fc" args="(object, _iface, method, ret,...)" -->
  447 +<div class="memitem">
  448 +<div class="memproto">
  449 + <table class="memname">
  450 + <tr>
  451 + <td class="memname">#define RETCALL</td>
  452 + <td>(</td>
  453 + <td class="paramtype">&#160;</td>
  454 + <td class="paramname">object, </td>
  455 + </tr>
  456 + <tr>
  457 + <td class="paramkey"></td>
  458 + <td></td>
  459 + <td class="paramtype">&#160;</td>
  460 + <td class="paramname">_iface, </td>
  461 + </tr>
  462 + <tr>
  463 + <td class="paramkey"></td>
  464 + <td></td>
  465 + <td class="paramtype">&#160;</td>
  466 + <td class="paramname">method, </td>
  467 + </tr>
  468 + <tr>
  469 + <td class="paramkey"></td>
  470 + <td></td>
  471 + <td class="paramtype">&#160;</td>
  472 + <td class="paramname">ret, </td>
  473 + </tr>
  474 + <tr>
  475 + <td class="paramkey"></td>
  476 + <td></td>
  477 + <td class="paramtype">&#160;</td>
  478 + <td class="paramname"><em>...</em>&#160;</td>
  479 + </tr>
  480 + <tr>
  481 + <td></td>
  482 + <td>)</td>
  483 + <td></td><td></td>
  484 + </tr>
  485 + </table>
  486 +</div>
  487 +<div class="memdoc">
  488 +<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> { \
  489 + <a class="code" href="class_8h.html#a2e9a0b177e4115cc7e547b51ac35c5af">_CALL</a>(<span class="keywordtype">object</span>, _iface, method, ##__VA_ARGS__); \
  490 + ret = iface-&gt;method(<span class="keywordtype">object</span>, ##__VA_ARGS__); \
  491 + } <span class="keywordflow">while</span>(0)
  492 +</pre></div>
  493 +<p>Definition at line <a class="el" href="class_8h_source.html#l00061">61</a> of file <a class="el" href="class_8h_source.html">class.h</a>.</p>
  494 +
  495 +</div>
  496 +</div>
  497 +<hr/><h2>Typedef Documentation</h2>
  498 +<a class="anchor" id="a68df9f6e346c5fad9f61bb2557d1d832"></a><!-- doxytag: member="class.h::class_ptr" ref="a68df9f6e346c5fad9f61bb2557d1d832" args="" -->
  499 +<div class="memitem">
  500 +<div class="memproto">
  501 + <table class="memname">
  502 + <tr>
  503 + <td class="memname">typedef struct <a class="el" href="structclass.html">class</a>* <a class="el" href="structclass.html">class_ptr</a></td>
  504 + </tr>
  505 + </table>
  506 +</div>
  507 +<div class="memdoc">
  508 +
  509 +<p>Definition at line <a class="el" href="class_8h_source.html#l00076">76</a> of file <a class="el" href="class_8h_source.html">class.h</a>.</p>
  510 +
  511 +</div>
  512 +</div>
  513 +<a class="anchor" id="aa0ba47bce818b20155a8ef17a1fdc35c"></a><!-- doxytag: member="class.h::fptr_classInit" ref="aa0ba47bce818b20155a8ef17a1fdc35c" args=")(void)" -->
  514 +<div class="memitem">
  515 +<div class="memproto">
  516 + <table class="memname">
  517 + <tr>
  518 + <td class="memname">typedef void(* <a class="el" href="class_8h.html#aa0ba47bce818b20155a8ef17a1fdc35c">fptr_classInit</a>)(void)</td>
  519 + </tr>
  520 + </table>
  521 +</div>
  522 +<div class="memdoc">
  523 +
  524 +<p>Definition at line <a class="el" href="class_8h_source.html#l00073">73</a> of file <a class="el" href="class_8h_source.html">class.h</a>.</p>
  525 +
  526 +</div>
  527 +</div>
  528 +<hr/><h2>Function Documentation</h2>
  529 +<a class="anchor" id="a1f382a42de272d5cc4d6bb5b17db6ede"></a><!-- doxytag: member="class.h::class_getClass" ref="a1f382a42de272d5cc4d6bb5b17db6ede" args="(void *)" -->
  530 +<div class="memitem">
  531 +<div class="memproto">
  532 + <table class="memname">
  533 + <tr>
  534 + <td class="memname"><a class="el" href="structclass.html">class_ptr</a> class_getClass </td>
  535 + <td>(</td>
  536 + <td class="paramtype">void *&#160;</td>
  537 + <td class="paramname"></td><td>)</td>
  538 + <td></td>
  539 + </tr>
  540 + </table>
  541 +</div>
  542 +<div class="memdoc">
  543 +
  544 +<p>Definition at line <a class="el" href="class_8c_source.html#l00021">21</a> of file <a class="el" href="class_8c_source.html">class.c</a>.</p>
  545 +<div class="fragment"><pre class="fragment">{
  546 + <span class="keywordflow">return</span> *(<a class="code" href="structclass.html">class_ptr</a> *)(<span class="keywordtype">object</span> - <span class="keyword">sizeof</span>(<span class="keywordtype">void</span>*));
  547 +}
  548 +</pre></div>
  549 +<p><div class="dynheader">
  550 +Here is the caller graph for this function:</div>
  551 +<div class="dyncontent">
  552 +<div class="center"><img src="class_8h_a1f382a42de272d5cc4d6bb5b17db6ede_icgraph.png" border="0" usemap="#class_8h_a1f382a42de272d5cc4d6bb5b17db6ede_icgraph" alt=""/></div>
  553 +<map name="class_8h_a1f382a42de272d5cc4d6bb5b17db6ede_icgraph" id="class_8h_a1f382a42de272d5cc4d6bb5b17db6ede_icgraph">
  554 +<area shape="rect" id="node3" href="interface_2class_8c.html#ada46f0179448063a30f6f219270bf1e0" title="classClone" alt="" coords="167,5,252,33"/></map>
  555 +</div>
  556 +</p>
  557 +
  558 +</div>
  559 +</div>
  560 +<a class="anchor" id="ad96186de45579eb423ab318a5caaf62f"></a><!-- doxytag: member="class.h::class_getInterface" ref="ad96186de45579eb423ab318a5caaf62f" args="(class_ptr *, iface_ptr)" -->
  561 +<div class="memitem">
  562 +<div class="memproto">
  563 + <table class="memname">
  564 + <tr>
  565 + <td class="memname">void* class_getInterface </td>
  566 + <td>(</td>
  567 + <td class="paramtype"><a class="el" href="structclass.html">class_ptr</a> *&#160;</td>
  568 + <td class="paramname">, </td>
  569 + </tr>
  570 + <tr>
  571 + <td class="paramkey"></td>
  572 + <td></td>
  573 + <td class="paramtype"><a class="el" href="structinterface.html">iface_ptr</a>&#160;</td>
  574 + <td class="paramname">&#160;</td>
  575 + </tr>
  576 + <tr>
  577 + <td></td>
  578 + <td>)</td>
  579 + <td></td><td></td>
  580 + </tr>
  581 + </table>
  582 +</div>
  583 +<div class="memdoc">
  584 +
  585 +<p>Definition at line <a class="el" href="class_8c_source.html#l00008">8</a> of file <a class="el" href="class_8c_source.html">class.c</a>.</p>
  586 +<div class="fragment"><pre class="fragment">{
  587 + <span class="keywordtype">void</span> * iface = (<span class="keywordtype">void</span> *)<a class="code" href="class_8h.html#adb99542d8748b5108322ccb26bb367e0">IFACE_GET</a>(*<span class="keyword">class</span>, _iface);
  588 +
  589 + <span class="keywordflow">while</span>(NULL == iface &amp;&amp; <a class="code" href="class_8h.html#a5ea9893a0e62748b9d1154d5b77abed1">HAS_PARENT</a>(*<span class="keyword">class</span>)) {
  590 + *<span class="keyword">class </span>= (*<span class="keyword">class</span>)-&gt;<a class="code" href="structclass.html#a97f697cb86be7a39d4477e971074ae6e">parent</a>;
  591 + iface = (<span class="keywordtype">void</span> *)<a class="code" href="class_8h.html#adb99542d8748b5108322ccb26bb367e0">IFACE_GET</a>(*<span class="keyword">class</span>, _iface);
  592 + }
  593 +
  594 + <span class="keywordflow">return</span> iface;
  595 +}
  596 +</pre></div>
  597 +</div>
  598 +</div>
  599 +</div>
  600 +</div>
  601 + <div id="nav-path" class="navpath">
  602 + <ul>
  603 + <li class="navelem"><a class="el" href="class_8h.html">class.h</a> </li>
  604 + <li class="footer">Generated on Wed Feb 8 2012 13:04:39 for server by&#160;
  605 +<a href="http://www.doxygen.org/index.html">
  606 +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
  607 + </ul>
  608 + </div>
  609 +<!--- window showing the filter options -->
  610 +<div id="MSearchSelectWindow"
  611 + onmouseover="return searchBox.OnSearchSelectShow()"
  612 + onmouseout="return searchBox.OnSearchSelectHide()"
  613 + onkeydown="return searchBox.OnSearchSelectKey(event)">
  614 +<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>
  615 +
  616 +<!-- iframe showing the search results (closed by default) -->
  617 +<div id="MSearchResultsWindow">
  618 +<iframe src="" frameborder="0"
  619 + name="MSearchResults" id="MSearchResults">
  620 +</iframe>
  621 +</div>
  622 +
  623 +
  624 +</body>
  625 +</html>
  1 +<map id="G" name="G">
  2 +<area shape="rect" id="node3" href="$logger_8h.html" title="include/logger.h" alt="" coords="80,83,195,111"/>
  3 +<area shape="rect" id="node5" href="$socket_8h.html" title="include/socket.h" alt="" coords="5,161,123,189"/>
  4 +<area shape="rect" id="node7" href="$server_8h.html" title="include/server.h" alt="" coords="103,238,217,266"/>
  5 +</map>
  1 +67b05a97c7d2bb2f2ee8cbd85edaea47
  1 +<map id="G" name="G">
  2 +<area shape="rect" id="node11" href="$interface_8h.html" title="interface.h" alt="" coords="333,83,416,111"/>
  3 +</map>
  1 +12c1cadb41292afd851074fffef5daa9
  1 +<map id="G" name="G">
  2 +<area shape="rect" id="node3" href="$interface_2class_8c.html#ada46f0179448063a30f6f219270bf1e0" title="classClone" alt="" coords="167,5,252,33"/>
  3 +</map>
  1 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 +<html xmlns="http://www.w3.org/1999/xhtml">
  3 +<head>
  4 +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5 +<title>server: include/class.h Source File</title>
  6 +<link href="tabs.css" rel="stylesheet" type="text/css"/>
  7 +<link href="search/search.css" rel="stylesheet" type="text/css"/>
  8 +<script type="text/javascript" src="search/search.js"></script>
  9 +<link href="navtree.css" rel="stylesheet" type="text/css"/>
  10 +<script type="text/javascript" src="jquery.js"></script>
  11 +<script type="text/javascript" src="navtree.js"></script>
  12 +<script type="text/javascript" src="resize.js"></script>
  13 +<script type="text/javascript">
  14 +$(document).ready(initResizable);
  15 +</script>
  16 +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
  17 +</head>
  18 +<body onload='searchBox.OnSelectItem(0);'>
  19 +<!-- Generated by Doxygen 1.7.3 -->
  20 +<script type="text/javascript"><!--
  21 +var searchBox = new SearchBox("searchBox", "search",false,'Search');
  22 +--></script>
  23 +<div id="top">
  24 +<div id="titlearea">
  25 +<table cellspacing="0" cellpadding="0">
  26 + <tbody>
  27 + <tr style="height: 56px;">
  28 + <td style="padding-left: 0.5em;">
  29 + <div id="projectname">server&#160;<span id="projectnumber">0.0.1</span></div>
  30 + <div id="projectbrief">basicserverinfrastructure</div>
  31 + </td>
  32 + </tr>
  33 + </tbody>
  34 +</table>
  35 +</div>
  36 + <div id="navrow1" class="tabs">
  37 + <ul class="tablist">
  38 + <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  39 + <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  40 + <li class="current"><a href="files.html"><span>Files</span></a></li>
  41 + <li id="searchli">
  42 + <div id="MSearchBox" class="MSearchBoxInactive">
  43 + <span class="left">
  44 + <img id="MSearchSelect" src="search/mag_sel.png"
  45 + onmouseover="return searchBox.OnSearchSelectShow()"
  46 + onmouseout="return searchBox.OnSearchSelectHide()"
  47 + alt=""/>
  48 + <input type="text" id="MSearchField" value="Search" accesskey="S"
  49 + onfocus="searchBox.OnSearchFieldFocus(true)"
  50 + onblur="searchBox.OnSearchFieldFocus(false)"
  51 + onkeyup="searchBox.OnSearchFieldChange(event)"/>
  52 + </span><span class="right">
  53 + <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  54 + </span>
  55 + </div>
  56 + </li>
  57 + </ul>
  58 + </div>
  59 + <div id="navrow2" class="tabs2">
  60 + <ul class="tablist">
  61 + <li><a href="files.html"><span>File&#160;List</span></a></li>
  62 + <li><a href="globals.html"><span>Globals</span></a></li>
  63 + </ul>
  64 + </div>
  65 +</div>
  66 +<div id="side-nav" class="ui-resizable side-nav-resizable">
  67 + <div id="nav-tree">
  68 + <div id="nav-tree-contents">
  69 + </div>
  70 + </div>
  71 + <div id="splitbar" style="-moz-user-select:none;"
  72 + class="ui-resizable-handle">
  73 + </div>
  74 +</div>
  75 +<script type="text/javascript">
  76 + initNavTree('class_8h.html','');
  77 +</script>
  78 +<div id="doc-content">
  79 +<div class="header">
  80 + <div class="headertitle">
  81 +<h1>include/class.h</h1> </div>
  82 +</div>
  83 +<div class="contents">
  84 +<a href="class_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef __CLASS_H__</span>
  85 +<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define __CLASS_H__</span>
  86 +<a name="l00003"></a>00003 <span class="preprocessor"></span>
  87 +<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;stdarg.h&gt;</span>
  88 +<a name="l00005"></a>00005 <span class="preprocessor">#include &lt;sys/types.h&gt;</span>
  89 +<a name="l00006"></a>00006 <span class="preprocessor">#include &lt;string.h&gt;</span>
  90 +<a name="l00007"></a>00007 <span class="preprocessor">#include &lt;assert.h&gt;</span>
  91 +<a name="l00008"></a>00008
  92 +<a name="l00009"></a>00009 <span class="preprocessor">#include &quot;<a class="code" href="interface_8h.html">interface.h</a>&quot;</span>
  93 +<a name="l00010"></a>00010
  94 +<a name="l00011"></a><a class="code" href="class_8h.html#a04ec2c53aa9fcdb5b58dc8e9d552dec0">00011</a> <span class="preprocessor">#define _ISOC99_SOURCE</span>
  95 +<a name="l00012"></a>00012 <span class="preprocessor"></span>
  96 +<a name="l00013"></a><a class="code" href="class_8h.html#a28c4c4c1ebf62795262a3553d59e8bff">00013</a> <span class="preprocessor">#define CLASS_MAGIC 0xFEFE</span>
  97 +<a name="l00014"></a>00014 <span class="preprocessor"></span>
  98 +<a name="l00015"></a><a class="code" href="class_8h.html#ab12c2142e0ec3f4f19a03b3879c67f32">00015</a> <span class="preprocessor">#define CLASS(name) \</span>
  99 +<a name="l00016"></a>00016 <span class="preprocessor"> struct c_##name; \</span>
  100 +<a name="l00017"></a>00017 <span class="preprocessor"> typedef struct c_##name * name; \</span>
  101 +<a name="l00018"></a>00018 <span class="preprocessor"> extern struct class * const _##name; \</span>
  102 +<a name="l00019"></a>00019 <span class="preprocessor"> struct c_##name</span>
  103 +<a name="l00020"></a>00020 <span class="preprocessor"></span>
  104 +<a name="l00021"></a><a class="code" href="class_8h.html#a45e588b871b5b73461805ab4a5c59aa5">00021</a> <span class="preprocessor">#define EXTENDS(parent) \</span>
  105 +<a name="l00022"></a>00022 <span class="preprocessor"> const char _[sizeof(struct c_##parent)]</span>
  106 +<a name="l00023"></a>00023 <span class="preprocessor"></span>
  107 +<a name="l00024"></a><a class="code" href="class_8h.html#ab9f9098d95379c04d979721396dabf68">00024</a> <span class="preprocessor">#define _NULL NULL</span>
  108 +<a name="l00025"></a><a class="code" href="class_8h.html#a509b4880afb25bb862c448d7a71e7afe">00025</a> <span class="preprocessor"></span><span class="preprocessor">#define CREATE_CLASS(name,_parent,...) \</span>
  109 +<a name="l00026"></a>00026 <span class="preprocessor"> static struct class c_##name; \</span>
  110 +<a name="l00027"></a>00027 <span class="preprocessor"> static void _classInit_(void) { \</span>
  111 +<a name="l00028"></a>00028 <span class="preprocessor"> c_##name.parent = _##_parent; \</span>
  112 +<a name="l00029"></a>00029 <span class="preprocessor"> c_##name.init = NULL; \</span>
  113 +<a name="l00030"></a>00030 <span class="preprocessor"> } \</span>
  114 +<a name="l00031"></a>00031 <span class="preprocessor"> static struct class c_##name = { \</span>
  115 +<a name="l00032"></a>00032 <span class="preprocessor"> CLASS_MAGIC, \</span>
  116 +<a name="l00033"></a>00033 <span class="preprocessor"> NULL, \</span>
  117 +<a name="l00034"></a>00034 <span class="preprocessor"> sizeof(struct c_##name), \</span>
  118 +<a name="l00035"></a>00035 <span class="preprocessor"> _classInit_, \</span>
  119 +<a name="l00036"></a>00036 <span class="preprocessor"> INIT_IMPL(__VA_ARGS__) \</span>
  120 +<a name="l00037"></a>00037 <span class="preprocessor"> }; struct class * const _##name = &amp;c_##name</span>
  121 +<a name="l00038"></a>00038 <span class="preprocessor"></span>
  122 +<a name="l00043"></a><a class="code" href="class_8h.html#a2e9a0b177e4115cc7e547b51ac35c5af">00043</a> <span class="preprocessor">#define _CALL(object,_iface,method,...) \</span>
  123 +<a name="l00044"></a>00044 <span class="preprocessor"> class_ptr class = class_getClass((object)); \</span>
  124 +<a name="l00045"></a>00045 <span class="preprocessor"> struct i_##_iface * iface; \</span>
  125 +<a name="l00046"></a>00046 <span class="preprocessor"> if (class-&gt;init) class-&gt;init(); \</span>
  126 +<a name="l00047"></a>00047 <span class="preprocessor"> iface = (struct i_##_iface *)class_getInterface(&amp;class, &amp;i_##_iface); \</span>
  127 +<a name="l00048"></a>00048 <span class="preprocessor"> while ((NULL == iface || NULL == iface-&gt;method) &amp;&amp; HAS_PARENT(class)) { \</span>
  128 +<a name="l00049"></a>00049 <span class="preprocessor"> class = class-&gt;parent; \</span>
  129 +<a name="l00050"></a>00050 <span class="preprocessor"> if (class-&gt;init) class-&gt;init(); \</span>
  130 +<a name="l00051"></a>00051 <span class="preprocessor"> iface = (struct i_##_iface *)class_getInterface(&amp;class, &amp;i_##_iface); \</span>
  131 +<a name="l00052"></a>00052 <span class="preprocessor"> }; \</span>
  132 +<a name="l00053"></a>00053 <span class="preprocessor"> assert(NULL != iface-&gt;method);</span>
  133 +<a name="l00054"></a>00054 <span class="preprocessor"></span>
  134 +<a name="l00055"></a><a class="code" href="class_8h.html#ada752d9d1fdbf84e978606e8999c762d">00055</a> <span class="preprocessor">#define CALL(object,_iface,method,...) \</span>
  135 +<a name="l00056"></a>00056 <span class="preprocessor"> do { \</span>
  136 +<a name="l00057"></a>00057 <span class="preprocessor"> _CALL(object, _iface, method, ##__VA_ARGS__); \</span>
  137 +<a name="l00058"></a>00058 <span class="preprocessor"> iface-&gt;method(object, ##__VA_ARGS__); \</span>
  138 +<a name="l00059"></a>00059 <span class="preprocessor"> } while(0)</span>
  139 +<a name="l00060"></a>00060 <span class="preprocessor"></span>
  140 +<a name="l00061"></a><a class="code" href="class_8h.html#a06fb0f2e08d1cbacbed6784319e7c3fc">00061</a> <span class="preprocessor">#define RETCALL(object,_iface,method,ret,...) \</span>
  141 +<a name="l00062"></a>00062 <span class="preprocessor"> do { \</span>
  142 +<a name="l00063"></a>00063 <span class="preprocessor"> _CALL(object, _iface, method, ##__VA_ARGS__); \</span>
  143 +<a name="l00064"></a>00064 <span class="preprocessor"> ret = iface-&gt;method(object, ##__VA_ARGS__); \</span>
  144 +<a name="l00065"></a>00065 <span class="preprocessor"> } while(0)</span>
  145 +<a name="l00066"></a>00066 <span class="preprocessor"></span>
  146 +<a name="l00067"></a>00067
  147 +<a name="l00068"></a><a class="code" href="class_8h.html#adb99542d8748b5108322ccb26bb367e0">00068</a> <span class="preprocessor">#define IFACE_GET(class,iface) (interfaceGet(&amp;((class)-&gt;impl),(iface)))</span>
  148 +<a name="l00069"></a><a class="code" href="class_8h.html#a80e924aca338b869530dde0a9389e916">00069</a> <span class="preprocessor"></span><span class="preprocessor">#define IFACE_EXISTS(class,iface) (NULL != IFACE_GET((class),(iface)))</span>
  149 +<a name="l00070"></a>00070 <span class="preprocessor"></span>
  150 +<a name="l00071"></a><a class="code" href="class_8h.html#a5ea9893a0e62748b9d1154d5b77abed1">00071</a> <span class="preprocessor">#define HAS_PARENT(class) (NULL != ((class)-&gt;parent))</span>
  151 +<a name="l00072"></a>00072 <span class="preprocessor"></span>
  152 +<a name="l00073"></a><a class="code" href="class_8h.html#aa0ba47bce818b20155a8ef17a1fdc35c">00073</a> <span class="keyword">typedef</span> void (* <a class="code" href="class_8h.html#aa0ba47bce818b20155a8ef17a1fdc35c">fptr_classInit</a>)(void);
  153 +<a name="l00074"></a>00074
  154 +<a name="l00075"></a>00075 <span class="keyword">struct </span><a class="code" href="structclass.html">class</a>;
  155 +<a name="l00076"></a><a class="code" href="class_8h.html#a68df9f6e346c5fad9f61bb2557d1d832">00076</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structclass.html">class</a> * <a class="code" href="class_8h.html#a68df9f6e346c5fad9f61bb2557d1d832">class_ptr</a>;
  156 +<a name="l00077"></a><a class="code" href="structclass.html">00077</a> <span class="keyword">struct </span><a class="code" href="structclass.html">class</a> {
  157 +<a name="l00078"></a><a class="code" href="structclass.html#a395a6874758c92188945df7c070f5ff1">00078</a> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="structclass.html#a395a6874758c92188945df7c070f5ff1">magic</a>;
  158 +<a name="l00079"></a><a class="code" href="structclass.html#a97f697cb86be7a39d4477e971074ae6e">00079</a> class_ptr <a class="code" href="structclass.html#a97f697cb86be7a39d4477e971074ae6e">parent</a>;
  159 +<a name="l00080"></a><a class="code" href="structclass.html#a31f0b35f94229885e948d55bac214c0d">00080</a> <span class="keywordtype">size_t</span> <a class="code" href="structclass.html#a31f0b35f94229885e948d55bac214c0d">object_size</a>;
  160 +<a name="l00081"></a><a class="code" href="structclass.html#a744967ad02b74a9464c1224c7fa05b23">00081</a> <a class="code" href="class_8h.html#aa0ba47bce818b20155a8ef17a1fdc35c">fptr_classInit</a> <a class="code" href="structclass.html#a744967ad02b74a9464c1224c7fa05b23">init</a>;
  161 +<a name="l00082"></a>00082 <span class="keyword">struct </span><a class="code" href="structiface__impl.html">iface_impl</a> <a class="code" href="structiface__impl.html#a4f3e0d7f7bbd7e3f98472a140c37c1ea">impl</a>;
  162 +<a name="l00083"></a>00083 };
  163 +<a name="l00084"></a>00084
  164 +<a name="l00085"></a>00085 <span class="keyword">extern</span> <span class="keywordtype">void</span> * <a class="code" href="class_8h.html#ad96186de45579eb423ab318a5caaf62f">class_getInterface</a>(class_ptr *, <a class="code" href="structinterface.html">iface_ptr</a>);
  165 +<a name="l00086"></a>00086 <span class="keyword">extern</span> class_ptr <a class="code" href="class_8h.html#a1f382a42de272d5cc4d6bb5b17db6ede">class_getClass</a>(<span class="keywordtype">void</span> *);
  166 +<a name="l00087"></a>00087
  167 +<a name="l00088"></a>00088 <span class="preprocessor">#endif // __CLASS_H__</span>
  168 +<a name="l00089"></a>00089 <span class="preprocessor"></span>
  169 +<a name="l00090"></a>00090 <span class="comment">// vim: set ts=4 sw=4:</span>
  170 +</pre></div></div>
  171 +</div>
  172 + <div id="nav-path" class="navpath">
  173 + <ul>
  174 + <li class="navelem"><a class="el" href="class_8h.html">class.h</a> </li>
  175 + <li class="footer">Generated on Wed Feb 8 2012 13:04:39 for server by&#160;
  176 +<a href="http://www.doxygen.org/index.html">
  177 +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
  178 + </ul>
  179 + </div>
  180 +<!--- window showing the filter options -->
  181 +<div id="MSearchSelectWindow"
  182 + onmouseover="return searchBox.OnSearchSelectShow()"
  183 + onmouseout="return searchBox.OnSearchSelectHide()"
  184 + onkeydown="return searchBox.OnSearchSelectKey(event)">
  185 +<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>
  186 +
  187 +<!-- iframe showing the search results (closed by default) -->
  188 +<div id="MSearchResultsWindow">
  189 +<iframe src="" frameborder="0"
  190 + name="MSearchResults" id="MSearchResults">
  191 +</iframe>
  192 +</div>
  193 +
  194 +
  195 +</body>
  196 +</html>
  1 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 +<html xmlns="http://www.w3.org/1999/xhtml">
  3 +<head>
  4 +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5 +<title>server: Data Structure Index</title>
  6 +<link href="tabs.css" rel="stylesheet" type="text/css"/>
  7 +<link href="search/search.css" rel="stylesheet" type="text/css"/>
  8 +<script type="text/javascript" src="search/search.js"></script>
  9 +<link href="navtree.css" rel="stylesheet" type="text/css"/>
  10 +<script type="text/javascript" src="jquery.js"></script>
  11 +<script type="text/javascript" src="navtree.js"></script>
  12 +<script type="text/javascript" src="resize.js"></script>
  13 +<script type="text/javascript">
  14 +$(document).ready(initResizable);
  15 +</script>
  16 +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
  17 +</head>
  18 +<body onload='searchBox.OnSelectItem(0);'>
  19 +<!-- Generated by Doxygen 1.7.3 -->
  20 +<script type="text/javascript"><!--
  21 +var searchBox = new SearchBox("searchBox", "search",false,'Search');
  22 +--></script>
  23 +<div id="top">
  24 +<div id="titlearea">
  25 +<table cellspacing="0" cellpadding="0">
  26 + <tbody>
  27 + <tr style="height: 56px;">
  28 + <td style="padding-left: 0.5em;">
  29 + <div id="projectname">server&#160;<span id="projectnumber">0.0.1</span></div>
  30 + <div id="projectbrief">basicserverinfrastructure</div>
  31 + </td>
  32 + </tr>
  33 + </tbody>
  34 +</table>
  35 +</div>
  36 + <div id="navrow1" class="tabs">
  37 + <ul class="tablist">
  38 + <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  39 + <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  40 + <li><a href="files.html"><span>Files</span></a></li>
  41 + <li id="searchli">
  42 + <div id="MSearchBox" class="MSearchBoxInactive">
  43 + <span class="left">
  44 + <img id="MSearchSelect" src="search/mag_sel.png"
  45 + onmouseover="return searchBox.OnSearchSelectShow()"
  46 + onmouseout="return searchBox.OnSearchSelectHide()"
  47 + alt=""/>
  48 + <input type="text" id="MSearchField" value="Search" accesskey="S"
  49 + onfocus="searchBox.OnSearchFieldFocus(true)"
  50 + onblur="searchBox.OnSearchFieldFocus(false)"
  51 + onkeyup="searchBox.OnSearchFieldChange(event)"/>
  52 + </span><span class="right">
  53 + <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  54 + </span>
  55 + </div>
  56 + </li>
  57 + </ul>
  58 + </div>
  59 + <div id="navrow2" class="tabs2">
  60 + <ul class="tablist">
  61 + <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  62 + <li class="current"><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
  63 + <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
  64 + </ul>
  65 + </div>
  66 +</div>
  67 +<div id="side-nav" class="ui-resizable side-nav-resizable">
  68 + <div id="nav-tree">
  69 + <div id="nav-tree-contents">
  70 + </div>
  71 + </div>
  72 + <div id="splitbar" style="-moz-user-select:none;"
  73 + class="ui-resizable-handle">
  74 + </div>
  75 +</div>
  76 +<script type="text/javascript">
  77 + initNavTree('classes.html','');
  78 +</script>
  79 +<div id="doc-content">
  80 +<div class="header">
  81 + <div class="headertitle">
  82 +<h1>Data Structure Index</h1> </div>
  83 +</div>
  84 +<div class="contents">
  85 +<div class="qindex"><a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_H">H</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a></div>
  86 +<table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
  87 +<tr><td><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;C&#160;&#160;</div></td></tr></table>
  88 +</td><td><a class="el" href="structHttpRequestParser.html">HttpRequestParser</a>&#160;&#160;&#160;</td><td><a class="el" href="structi__Logger.html">i_Logger</a>&#160;&#160;&#160;</td><td><a name="letter_L"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;L&#160;&#160;</div></td></tr></table>
  89 +</td><td><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;S&#160;&#160;</div></td></tr></table>
  90 +</td></tr><tr><td><a class="el" href="structclass.html">class</a>&#160;&#160;&#160;</td><td><a class="el" href="structHttpRequestQueue.html">HttpRequestQueue</a>&#160;&#160;&#160;</td><td><a class="el" href="structi__StreamReader.html">i_StreamReader</a>&#160;&#160;&#160;</td><td><a class="el" href="structLogger.html">Logger</a>&#160;&#160;&#160;</td><td><a class="el" href="structServer.html">Server</a>&#160;&#160;&#160;</td></tr><tr><td><a name="letter_H"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;H&#160;&#160;</div></td></tr></table>
  91 +</td><td><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;I&#160;&#160;</div></td></tr></table>
  92 +</td><td><a class="el" href="structiface__impl.html">iface_impl</a>&#160;&#160;&#160;</td><td><a class="el" href="structLoggerStderr.html">LoggerStderr</a>&#160;&#160;&#160;</td><td><a class="el" href="structSock.html">Sock</a>&#160;&#160;&#160;</td></tr><tr><td><a class="el" href="structHttpRequest.html">HttpRequest</a>&#160;&#160;&#160;</td><td><a class="el" href="structi__Class.html">i_Class</a>&#160;&#160;&#160;</td><td><a class="el" href="structinterface.html">interface</a>&#160;&#160;&#160;</td><td><a class="el" href="structLoggerSyslog.html">LoggerSyslog</a>&#160;&#160;&#160;</td></tr></table><div class="qindex"><a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_H">H</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a></div>
  93 +</div>
  94 +</div>
  95 + <div id="nav-path" class="navpath">
  96 + <ul>
  97 + <li class="footer">Generated on Wed Feb 8 2012 13:04:40 for server by&#160;
  98 +<a href="http://www.doxygen.org/index.html">
  99 +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
  100 + </ul>
  101 + </div>
  102 +<!--- window showing the filter options -->
  103 +<div id="MSearchSelectWindow"
  104 + onmouseover="return searchBox.OnSearchSelectShow()"
  105 + onmouseout="return searchBox.OnSearchSelectHide()"
  106 + onkeydown="return searchBox.OnSearchSelectKey(event)">
  107 +<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>
  108 +
  109 +<!-- iframe showing the search results (closed by default) -->
  110 +<div id="MSearchResultsWindow">
  111 +<iframe src="" frameborder="0"
  112 + name="MSearchResults" id="MSearchResults">
  113 +</iframe>
  114 +</div>
  115 +
  116 +
  117 +</body>
  118 +</html>
  1 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 +<html xmlns="http://www.w3.org/1999/xhtml">
  3 +<head>
  4 +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5 +<title>server: src/server/close_conn.c File Reference</title>
  6 +<link href="tabs.css" rel="stylesheet" type="text/css"/>
  7 +<link href="search/search.css" rel="stylesheet" type="text/css"/>
  8 +<script type="text/javascript" src="search/search.js"></script>
  9 +<link href="navtree.css" rel="stylesheet" type="text/css"/>
  10 +<script type="text/javascript" src="jquery.js"></script>
  11 +<script type="text/javascript" src="navtree.js"></script>
  12 +<script type="text/javascript" src="resize.js"></script>
  13 +<script type="text/javascript">
  14 +$(document).ready(initResizable);
  15 +</script>
  16 +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
  17 +</head>
  18 +<body onload='searchBox.OnSelectItem(0);'>
  19 +<!-- Generated by Doxygen 1.7.3 -->
  20 +<script type="text/javascript"><!--
  21 +var searchBox = new SearchBox("searchBox", "search",false,'Search');
  22 +--></script>
  23 +<div id="top">
  24 +<div id="titlearea">
  25 +<table cellspacing="0" cellpadding="0">
  26 + <tbody>
  27 + <tr style="height: 56px;">
  28 + <td style="padding-left: 0.5em;">
  29 + <div id="projectname">server&#160;<span id="projectnumber">0.0.1</span></div>
  30 + <div id="projectbrief">basicserverinfrastructure</div>
  31 + </td>
  32 + </tr>
  33 + </tbody>
  34 +</table>
  35 +</div>
  36 + <div id="navrow1" class="tabs">
  37 + <ul class="tablist">
  38 + <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  39 + <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  40 + <li class="current"><a href="files.html"><span>Files</span></a></li>
  41 + <li id="searchli">
  42 + <div id="MSearchBox" class="MSearchBoxInactive">
  43 + <span class="left">
  44 + <img id="MSearchSelect" src="search/mag_sel.png"
  45 + onmouseover="return searchBox.OnSearchSelectShow()"
  46 + onmouseout="return searchBox.OnSearchSelectHide()"
  47 + alt=""/>
  48 + <input type="text" id="MSearchField" value="Search" accesskey="S"
  49 + onfocus="searchBox.OnSearchFieldFocus(true)"
  50 + onblur="searchBox.OnSearchFieldFocus(false)"
  51 + onkeyup="searchBox.OnSearchFieldChange(event)"/>
  52 + </span><span class="right">
  53 + <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  54 + </span>
  55 + </div>
  56 + </li>
  57 + </ul>
  58 + </div>
  59 + <div id="navrow2" class="tabs2">
  60 + <ul class="tablist">
  61 + <li><a href="files.html"><span>File&#160;List</span></a></li>
  62 + <li><a href="globals.html"><span>Globals</span></a></li>
  63 + </ul>
  64 + </div>
  65 +</div>
  66 +<div id="side-nav" class="ui-resizable side-nav-resizable">
  67 + <div id="nav-tree">
  68 + <div id="nav-tree-contents">
  69 + </div>
  70 + </div>
  71 + <div id="splitbar" style="-moz-user-select:none;"
  72 + class="ui-resizable-handle">
  73 + </div>
  74 +</div>
  75 +<script type="text/javascript">
  76 + initNavTree('close__conn_8c.html','');
  77 +</script>
  78 +<div id="doc-content">
  79 +<div class="header">
  80 + <div class="summary">
  81 +<a href="#func-members">Functions</a> </div>
  82 + <div class="headertitle">
  83 +<h1>src/server/close_conn.c File Reference</h1> </div>
  84 +</div>
  85 +<div class="contents">
  86 +<div class="textblock"><code>#include &lt;string.h&gt;</code><br/>
  87 +<code>#include &quot;server.h&quot;</code><br/>
  88 +<code>#include &quot;interface/class.h&quot;</code><br/>
  89 +</div><div class="textblock"><div class="dynheader">
  90 +Include dependency graph for close_conn.c:</div>
  91 +<div class="dyncontent">
  92 +<div class="center"><img src="close__conn_8c__incl.png" border="0" usemap="#src_2server_2close__conn_8c" alt=""/></div>
  93 +</div>
  94 +</div>
  95 +<p><a href="close__conn_8c_source.html">Go to the source code of this file.</a></p>
  96 +<table class="memberdecls">
  97 +<tr><td colspan="2"><h2><a name="func-members"></a>
  98 +Functions</h2></td></tr>
  99 +<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="close__conn_8c.html#ad721e61c8676f0b4c3b8fc401e26f266">serverCloseConn</a> (<a class="el" href="structServer.html">Server</a> this, unsigned int i)</td></tr>
  100 +</table>
  101 +<hr/><h2>Function Documentation</h2>
  102 +<a class="anchor" id="ad721e61c8676f0b4c3b8fc401e26f266"></a><!-- doxytag: member="close_conn.c::serverCloseConn" ref="ad721e61c8676f0b4c3b8fc401e26f266" args="(Server this, unsigned int i)" -->
  103 +<div class="memitem">
  104 +<div class="memproto">
  105 + <table class="memname">
  106 + <tr>
  107 + <td class="memname">void serverCloseConn </td>
  108 + <td>(</td>
  109 + <td class="paramtype"><a class="el" href="structServer.html">Server</a>&#160;</td>
  110 + <td class="paramname"><em>this</em>, </td>
  111 + </tr>
  112 + <tr>
  113 + <td class="paramkey"></td>
  114 + <td></td>
  115 + <td class="paramtype">unsigned int&#160;</td>
  116 + <td class="paramname"><em>i</em>&#160;</td>
  117 + </tr>
  118 + <tr>
  119 + <td></td>
  120 + <td>)</td>
  121 + <td></td><td></td>
  122 + </tr>
  123 + </table>
  124 +</div>
  125 +<div class="memdoc">
  126 +
  127 +<p>Definition at line <a class="el" href="close__conn_8c_source.html#l00007">7</a> of file <a class="el" href="close__conn_8c_source.html">close_conn.c</a>.</p>
  128 +<div class="fragment"><pre class="fragment">{
  129 + <span class="keywordtype">int</span> fd = (this-&gt;fds)[i].fd;
  130 +
  131 + <span class="keyword">delete</span>(&amp;((this-&gt;conns)[fd].sock));
  132 + <span class="keyword">delete</span>(&amp;((this-&gt;conns)[fd].reader));
  133 + (this-&gt;fds)[i].events = 0;
  134 + this-&gt;ndel++;
  135 +<span class="comment">// CLEAR_CONN(this, i);</span>
  136 +<span class="comment">// this-&gt;nfds--;</span>
  137 +}
  138 +</pre></div>
  139 +<p><div class="dynheader">
  140 +Here is the caller graph for this function:</div>
  141 +<div class="dyncontent">
  142 +<div class="center"><img src="close__conn_8c_ad721e61c8676f0b4c3b8fc401e26f266_icgraph.png" border="0" usemap="#close__conn_8c_ad721e61c8676f0b4c3b8fc401e26f266_icgraph" alt=""/></div>
  143 +<map name="close__conn_8c_ad721e61c8676f0b4c3b8fc401e26f266_icgraph" id="close__conn_8c_ad721e61c8676f0b4c3b8fc401e26f266_icgraph">
  144 +<area shape="rect" id="node3" href="run_8c.html#a67a4d9073b80d8ae1459fb11ddd23675" title="serverRun" alt="" coords="180,5,263,33"/><area shape="rect" id="node5" href="testserver_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4" title="main" alt="" coords="312,5,363,33"/></map>
  145 +</div>
  146 +</p>
  147 +
  148 +</div>
  149 +</div>
  150 +</div>
  151 +</div>
  152 + <div id="nav-path" class="navpath">
  153 + <ul>
  154 + <li class="navelem"><a class="el" href="close__conn_8c.html">close_conn.c</a> </li>
  155 + <li class="footer">Generated on Wed Feb 8 2012 13:04:39 for server by&#160;
  156 +<a href="http://www.doxygen.org/index.html">
  157 +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
  158 + </ul>
  159 + </div>
  160 +<!--- window showing the filter options -->
  161 +<div id="MSearchSelectWindow"
  162 + onmouseover="return searchBox.OnSearchSelectShow()"
  163 + onmouseout="return searchBox.OnSearchSelectHide()"
  164 + onkeydown="return searchBox.OnSearchSelectKey(event)">
  165 +<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>
  166 +
  167 +<!-- iframe showing the search results (closed by default) -->
  168 +<div id="MSearchResultsWindow">
  169 +<iframe src="" frameborder="0"
  170 + name="MSearchResults" id="MSearchResults">
  171 +</iframe>
  172 +</div>
  173 +
  174 +
  175 +</body>
  176 +</html>
  1 +<map id="G" name="G">
  2 +</map>
  1 +680a421e377c1cfade97ad3db077eb73
  1 +<map id="G" name="G">
  2 +<area shape="rect" id="node3" href="$run_8c.html#a67a4d9073b80d8ae1459fb11ddd23675" title="serverRun" alt="" coords="180,5,263,33"/>
  3 +<area shape="rect" id="node5" href="$testserver_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4" title="main" alt="" coords="312,5,363,33"/>
  4 +</map>
  1 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 +<html xmlns="http://www.w3.org/1999/xhtml">
  3 +<head>
  4 +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5 +<title>server: src/server/close_conn.c Source File</title>
  6 +<link href="tabs.css" rel="stylesheet" type="text/css"/>
  7 +<link href="search/search.css" rel="stylesheet" type="text/css"/>
  8 +<script type="text/javascript" src="search/search.js"></script>
  9 +<link href="navtree.css" rel="stylesheet" type="text/css"/>
  10 +<script type="text/javascript" src="jquery.js"></script>
  11 +<script type="text/javascript" src="navtree.js"></script>
  12 +<script type="text/javascript" src="resize.js"></script>
  13 +<script type="text/javascript">
  14 +$(document).ready(initResizable);
  15 +</script>
  16 +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
  17 +</head>
  18 +<body onload='searchBox.OnSelectItem(0);'>
  19 +<!-- Generated by Doxygen 1.7.3 -->
  20 +<script type="text/javascript"><!--
  21 +var searchBox = new SearchBox("searchBox", "search",false,'Search');
  22 +--></script>
  23 +<div id="top">
  24 +<div id="titlearea">
  25 +<table cellspacing="0" cellpadding="0">
  26 + <tbody>
  27 + <tr style="height: 56px;">
  28 + <td style="padding-left: 0.5em;">
  29 + <div id="projectname">server&#160;<span id="projectnumber">0.0.1</span></div>
  30 + <div id="projectbrief">basicserverinfrastructure</div>
  31 + </td>
  32 + </tr>
  33 + </tbody>
  34 +</table>
  35 +</div>
  36 + <div id="navrow1" class="tabs">
  37 + <ul class="tablist">
  38 + <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  39 + <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  40 + <li class="current"><a href="files.html"><span>Files</span></a></li>
  41 + <li id="searchli">
  42 + <div id="MSearchBox" class="MSearchBoxInactive">
  43 + <span class="left">
  44 + <img id="MSearchSelect" src="search/mag_sel.png"
  45 + onmouseover="return searchBox.OnSearchSelectShow()"
  46 + onmouseout="return searchBox.OnSearchSelectHide()"
  47 + alt=""/>
  48 + <input type="text" id="MSearchField" value="Search" accesskey="S"
  49 + onfocus="searchBox.OnSearchFieldFocus(true)"
  50 + onblur="searchBox.OnSearchFieldFocus(false)"
  51 + onkeyup="searchBox.OnSearchFieldChange(event)"/>
  52 + </span><span class="right">
  53 + <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  54 + </span>
  55 + </div>
  56 + </li>
  57 + </ul>
  58 + </div>
  59 + <div id="navrow2" class="tabs2">
  60 + <ul class="tablist">
  61 + <li><a href="files.html"><span>File&#160;List</span></a></li>
  62 + <li><a href="globals.html"><span>Globals</span></a></li>
  63 + </ul>
  64 + </div>
  65 +</div>
  66 +<div id="side-nav" class="ui-resizable side-nav-resizable">
  67 + <div id="nav-tree">
  68 + <div id="nav-tree-contents">
  69 + </div>
  70 + </div>
  71 + <div id="splitbar" style="-moz-user-select:none;"
  72 + class="ui-resizable-handle">
  73 + </div>
  74 +</div>
  75 +<script type="text/javascript">
  76 + initNavTree('close__conn_8c.html','');
  77 +</script>
  78 +<div id="doc-content">
  79 +<div class="header">
  80 + <div class="headertitle">
  81 +<h1>src/server/close_conn.c</h1> </div>
  82 +</div>
  83 +<div class="contents">
  84 +<a href="close__conn_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;string.h&gt;</span>
  85 +<a name="l00002"></a>00002
  86 +<a name="l00003"></a>00003 <span class="preprocessor">#include &quot;server.h&quot;</span>
  87 +<a name="l00004"></a>00004 <span class="preprocessor">#include &quot;interface/class.h&quot;</span>
  88 +<a name="l00005"></a>00005
  89 +<a name="l00006"></a>00006 <span class="keywordtype">void</span>
  90 +<a name="l00007"></a><a class="code" href="close__conn_8c.html#ad721e61c8676f0b4c3b8fc401e26f266">00007</a> <a class="code" href="server_8h.html#a81f787254ea87cbc851d292e5a7d195d">serverCloseConn</a>(<a class="code" href="structServer.html">Server</a> <span class="keyword">this</span>, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i)
  91 +<a name="l00008"></a>00008 {
  92 +<a name="l00009"></a>00009 <span class="keywordtype">int</span> fd = (this-&gt;fds)[i].fd;
  93 +<a name="l00010"></a>00010
  94 +<a name="l00011"></a>00011 <span class="keyword">delete</span>(&amp;((this-&gt;conns)[fd].sock));
  95 +<a name="l00012"></a>00012 <span class="keyword">delete</span>(&amp;((this-&gt;conns)[fd].reader));
  96 +<a name="l00013"></a>00013 (this-&gt;fds)[i].events = 0;
  97 +<a name="l00014"></a>00014 this-&gt;ndel++;
  98 +<a name="l00015"></a>00015 <span class="comment">// CLEAR_CONN(this, i);</span>
  99 +<a name="l00016"></a>00016 <span class="comment">// this-&gt;nfds--;</span>
  100 +<a name="l00017"></a>00017 }
  101 +<a name="l00018"></a>00018
  102 +<a name="l00019"></a>00019 <span class="comment">// vim: set ts=4 sw=4:</span>
  103 +</pre></div></div>
  104 +</div>
  105 + <div id="nav-path" class="navpath">
  106 + <ul>
  107 + <li class="navelem"><a class="el" href="close__conn_8c.html">close_conn.c</a> </li>
  108 + <li class="footer">Generated on Wed Feb 8 2012 13:04:39 for server by&#160;
  109 +<a href="http://www.doxygen.org/index.html">
  110 +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
  111 + </ul>
  112 + </div>
  113 +<!--- window showing the filter options -->
  114 +<div id="MSearchSelectWindow"
  115 + onmouseover="return searchBox.OnSearchSelectShow()"
  116 + onmouseout="return searchBox.OnSearchSelectHide()"
  117 + onkeydown="return searchBox.OnSearchSelectKey(event)">
  118 +<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>
  119 +
  120 +<!-- iframe showing the search results (closed by default) -->
  121 +<div id="MSearchResultsWindow">
  122 +<iframe src="" frameborder="0"
  123 + name="MSearchResults" id="MSearchResults">
  124 +</iframe>
  125 +</div>
  126 +
  127 +
  128 +</body>
  129 +</html>
  1 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 +<html xmlns="http://www.w3.org/1999/xhtml">
  3 +<head>
  4 +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5 +<title>server: src/socket/connect.c File Reference</title>
  6 +<link href="tabs.css" rel="stylesheet" type="text/css"/>
  7 +<link href="search/search.css" rel="stylesheet" type="text/css"/>
  8 +<script type="text/javascript" src="search/search.js"></script>
  9 +<link href="navtree.css" rel="stylesheet" type="text/css"/>
  10 +<script type="text/javascript" src="jquery.js"></script>
  11 +<script type="text/javascript" src="navtree.js"></script>
  12 +<script type="text/javascript" src="resize.js"></script>
  13 +<script type="text/javascript">
  14 +$(document).ready(initResizable);
  15 +</script>
  16 +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
  17 +</head>
  18 +<body onload='searchBox.OnSelectItem(0);'>
  19 +<!-- Generated by Doxygen 1.7.3 -->
  20 +<script type="text/javascript"><!--
  21 +var searchBox = new SearchBox("searchBox", "search",false,'Search');
  22 +--></script>
  23 +<div id="top">
  24 +<div id="titlearea">
  25 +<table cellspacing="0" cellpadding="0">
  26 + <tbody>
  27 + <tr style="height: 56px;">
  28 + <td style="padding-left: 0.5em;">
  29 + <div id="projectname">server&#160;<span id="projectnumber">0.0.1</span></div>
  30 + <div id="projectbrief">basicserverinfrastructure</div>
  31 + </td>
  32 + </tr>
  33 + </tbody>
  34 +</table>
  35 +</div>
  36 + <div id="navrow1" class="tabs">
  37 + <ul class="tablist">
  38 + <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  39 + <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  40 + <li class="current"><a href="files.html"><span>Files</span></a></li>
  41 + <li id="searchli">
  42 + <div id="MSearchBox" class="MSearchBoxInactive">
  43 + <span class="left">
  44 + <img id="MSearchSelect" src="search/mag_sel.png"
  45 + onmouseover="return searchBox.OnSearchSelectShow()"
  46 + onmouseout="return searchBox.OnSearchSelectHide()"
  47 + alt=""/>
  48 + <input type="text" id="MSearchField" value="Search" accesskey="S"
  49 + onfocus="searchBox.OnSearchFieldFocus(true)"
  50 + onblur="searchBox.OnSearchFieldFocus(false)"
  51 + onkeyup="searchBox.OnSearchFieldChange(event)"/>
  52 + </span><span class="right">
  53 + <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  54 + </span>
  55 + </div>
  56 + </li>
  57 + </ul>
  58 + </div>
  59 + <div id="navrow2" class="tabs2">
  60 + <ul class="tablist">
  61 + <li><a href="files.html"><span>File&#160;List</span></a></li>
  62 + <li><a href="globals.html"><span>Globals</span></a></li>
  63 + </ul>
  64 + </div>
  65 +</div>
  66 +<div id="side-nav" class="ui-resizable side-nav-resizable">
  67 + <div id="nav-tree">
  68 + <div id="nav-tree-contents">
  69 + </div>
  70 + </div>
  71 + <div id="splitbar" style="-moz-user-select:none;"
  72 + class="ui-resizable-handle">
  73 + </div>
  74 +</div>
  75 +<script type="text/javascript">
  76 + initNavTree('connect_8c.html','');
  77 +</script>
  78 +<div id="doc-content">
  79 +<div class="header">
  80 + <div class="summary">
  81 +<a href="#func-members">Functions</a> </div>
  82 + <div class="headertitle">
  83 +<h1>src/socket/connect.c File Reference</h1> </div>
  84 +</div>
  85 +<div class="contents">
  86 +<div class="textblock"><code>#include &lt;stdlib.h&gt;</code><br/>
  87 +<code>#include &lt;errno.h&gt;</code><br/>
  88 +<code>#include &quot;socket.h&quot;</code><br/>
  89 +<code>#include &quot;interface/class.h&quot;</code><br/>
  90 +<code>#include &quot;interface/logger.h&quot;</code><br/>
  91 +</div><div class="textblock"><div class="dynheader">
  92 +Include dependency graph for connect.c:</div>
  93 +<div class="dyncontent">
  94 +<div class="center"><img src="connect_8c__incl.png" border="0" usemap="#src_2socket_2connect_8c" alt=""/></div>
  95 +</div>
  96 +</div>
  97 +<p><a href="connect_8c_source.html">Go to the source code of this file.</a></p>
  98 +<table class="memberdecls">
  99 +<tr><td colspan="2"><h2><a name="func-members"></a>
  100 +Functions</h2></td></tr>
  101 +<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="connect_8c.html#adbfc4792c437102f20e2c86c4ee8581b">socketConnect</a> (<a class="el" href="structSock.html">Sock</a> this, const char *addr)</td></tr>
  102 +</table>
  103 +<hr/><h2>Function Documentation</h2>
  104 +<a class="anchor" id="adbfc4792c437102f20e2c86c4ee8581b"></a><!-- doxytag: member="connect.c::socketConnect" ref="adbfc4792c437102f20e2c86c4ee8581b" args="(Sock this, const char *addr)" -->
  105 +<div class="memitem">
  106 +<div class="memproto">
  107 + <table class="memname">
  108 + <tr>
  109 + <td class="memname">void socketConnect </td>
  110 + <td>(</td>
  111 + <td class="paramtype"><a class="el" href="structSock.html">Sock</a>&#160;</td>
  112 + <td class="paramname"><em>this</em>, </td>
  113 + </tr>
  114 + <tr>
  115 + <td class="paramkey"></td>
  116 + <td></td>
  117 + <td class="paramtype">const char *&#160;</td>
  118 + <td class="paramname"><em>addr</em>&#160;</td>
  119 + </tr>
  120 + <tr>
  121 + <td></td>
  122 + <td>)</td>
  123 + <td></td><td></td>
  124 + </tr>
  125 + </table>
  126 +</div>
  127 +<div class="memdoc">
  128 +
  129 +<p>Definition at line <a class="el" href="connect_8c_source.html#l00010">10</a> of file <a class="el" href="connect_8c_source.html">connect.c</a>.</p>
  130 +<div class="fragment"><pre class="fragment">{
  131 + inet_pton(AF_INET, addr, &amp;((this-&gt;addr).sin_addr));
  132 + (this-&gt;addr).sin_family = AF_INET; <span class="comment">/* Internet address family */</span>
  133 + (this-&gt;addr).sin_port = htons(this-&gt;port); <span class="comment">/* Local port */</span>
  134 +
  135 + <span class="keywordflow">if</span> (-1 == connect(this-&gt;handle, (<span class="keyword">struct</span> sockaddr*) &amp;(this-&gt;addr), <span class="keyword">sizeof</span>(this-&gt;addr))) {
  136 + <a class="code" href="interface_2logger_8h.html#ae9f8662ec8b300dcfb5064906937553e">loggerLog</a>(this-&gt;log, <a class="code" href="logger_8h.html#a63296c69f4b9bf51d6756a5d2c482d1eaa7d55c7b377d82da77e532aa299eeeb0">LOGGER_CRIT</a>,
  137 + <span class="stringliteral">&quot;error connection socket: %s - service terminated&quot;</span>,
  138 + strerror(errno));
  139 + exit(EXIT_FAILURE);
  140 + }
  141 +}
  142 +</pre></div>
  143 +<p><div class="dynheader">
  144 +Here is the call graph for this function:</div>
  145 +<div class="dyncontent">
  146 +<div class="center"><img src="connect_8c_adbfc4792c437102f20e2c86c4ee8581b_cgraph.png" border="0" usemap="#connect_8c_adbfc4792c437102f20e2c86c4ee8581b_cgraph" alt=""/></div>
  147 +<map name="connect_8c_adbfc4792c437102f20e2c86c4ee8581b_cgraph" id="connect_8c_adbfc4792c437102f20e2c86c4ee8581b_cgraph">
  148 +<area shape="rect" id="node3" href="interface_2logger_8h.html#ae9f8662ec8b300dcfb5064906937553e" title="loggerLog" alt="" coords="167,5,247,33"/></map>
  149 +</div>
  150 +</p>
  151 +
  152 +</div>
  153 +</div>
  154 +</div>
  155 +</div>
  156 + <div id="nav-path" class="navpath">
  157 + <ul>
  158 + <li class="navelem"><a class="el" href="connect_8c.html">connect.c</a> </li>
  159 + <li class="footer">Generated on Wed Feb 8 2012 13:04:40 for server by&#160;
  160 +<a href="http://www.doxygen.org/index.html">
  161 +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
  162 + </ul>
  163 + </div>
  164 +<!--- window showing the filter options -->
  165 +<div id="MSearchSelectWindow"
  166 + onmouseover="return searchBox.OnSearchSelectShow()"
  167 + onmouseout="return searchBox.OnSearchSelectHide()"
  168 + onkeydown="return searchBox.OnSearchSelectKey(event)">
  169 +<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>
  170 +
  171 +<!-- iframe showing the search results (closed by default) -->
  172 +<div id="MSearchResultsWindow">
  173 +<iframe src="" frameborder="0"
  174 + name="MSearchResults" id="MSearchResults">
  175 +</iframe>
  176 +</div>
  177 +
  178 +
  179 +</body>
  180 +</html>
  1 +<map id="G" name="G">
  2 +</map>
  1 +369f6f148cdb8193e9425b0be26688fa
  1 +<map id="G" name="G">
  2 +<area shape="rect" id="node3" href="$interface_2logger_8h.html#ae9f8662ec8b300dcfb5064906937553e" title="loggerLog" alt="" coords="167,5,247,33"/>
  3 +</map>
  1 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 +<html xmlns="http://www.w3.org/1999/xhtml">
  3 +<head>
  4 +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5 +<title>server: src/socket/connect.c Source File</title>
  6 +<link href="tabs.css" rel="stylesheet" type="text/css"/>
  7 +<link href="search/search.css" rel="stylesheet" type="text/css"/>
  8 +<script type="text/javascript" src="search/search.js"></script>
  9 +<link href="navtree.css" rel="stylesheet" type="text/css"/>
  10 +<script type="text/javascript" src="jquery.js"></script>
  11 +<script type="text/javascript" src="navtree.js"></script>
  12 +<script type="text/javascript" src="resize.js"></script>
  13 +<script type="text/javascript">
  14 +$(document).ready(initResizable);
  15 +</script>
  16 +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
  17 +</head>
  18 +<body onload='searchBox.OnSelectItem(0);'>
  19 +<!-- Generated by Doxygen 1.7.3 -->
  20 +<script type="text/javascript"><!--
  21 +var searchBox = new SearchBox("searchBox", "search",false,'Search');
  22 +--></script>
  23 +<div id="top">
  24 +<div id="titlearea">
  25 +<table cellspacing="0" cellpadding="0">
  26 + <tbody>
  27 + <tr style="height: 56px;">
  28 + <td style="padding-left: 0.5em;">
  29 + <div id="projectname">server&#160;<span id="projectnumber">0.0.1</span></div>
  30 + <div id="projectbrief">basicserverinfrastructure</div>
  31 + </td>
  32 + </tr>
  33 + </tbody>
  34 +</table>
  35 +</div>
  36 + <div id="navrow1" class="tabs">
  37 + <ul class="tablist">
  38 + <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  39 + <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  40 + <li class="current"><a href="files.html"><span>Files</span></a></li>
  41 + <li id="searchli">
  42 + <div id="MSearchBox" class="MSearchBoxInactive">
  43 + <span class="left">
  44 + <img id="MSearchSelect" src="search/mag_sel.png"
  45 + onmouseover="return searchBox.OnSearchSelectShow()"
  46 + onmouseout="return searchBox.OnSearchSelectHide()"
  47 + alt=""/>
  48 + <input type="text" id="MSearchField" value="Search" accesskey="S"
  49 + onfocus="searchBox.OnSearchFieldFocus(true)"
  50 + onblur="searchBox.OnSearchFieldFocus(false)"
  51 + onkeyup="searchBox.OnSearchFieldChange(event)"/>
  52 + </span><span class="right">
  53 + <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  54 + </span>
  55 + </div>
  56 + </li>
  57 + </ul>
  58 + </div>
  59 + <div id="navrow2" class="tabs2">
  60 + <ul class="tablist">
  61 + <li><a href="files.html"><span>File&#160;List</span></a></li>
  62 + <li><a href="globals.html"><span>Globals</span></a></li>
  63 + </ul>
  64 + </div>
  65 +</div>
  66 +<div id="side-nav" class="ui-resizable side-nav-resizable">
  67 + <div id="nav-tree">
  68 + <div id="nav-tree-contents">
  69 + </div>
  70 + </div>
  71 + <div id="splitbar" style="-moz-user-select:none;"
  72 + class="ui-resizable-handle">
  73 + </div>
  74 +</div>
  75 +<script type="text/javascript">
  76 + initNavTree('connect_8c.html','');
  77 +</script>
  78 +<div id="doc-content">
  79 +<div class="header">
  80 + <div class="headertitle">
  81 +<h1>src/socket/connect.c</h1> </div>
  82 +</div>
  83 +<div class="contents">
  84 +<a href="connect_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdlib.h&gt;</span> <span class="comment">/* for atoi() and exit() */</span>
  85 +<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;errno.h&gt;</span> <span class="comment">/* for errno */</span>
  86 +<a name="l00003"></a>00003
  87 +<a name="l00004"></a>00004 <span class="preprocessor">#include &quot;socket.h&quot;</span>
  88 +<a name="l00005"></a>00005 <span class="preprocessor">#include &quot;interface/class.h&quot;</span>
  89 +<a name="l00006"></a>00006 <span class="preprocessor">#include &quot;interface/logger.h&quot;</span>
  90 +<a name="l00007"></a>00007
  91 +<a name="l00008"></a>00008
  92 +<a name="l00009"></a>00009 <span class="keywordtype">void</span>
  93 +<a name="l00010"></a><a class="code" href="connect_8c.html#adbfc4792c437102f20e2c86c4ee8581b">00010</a> <a class="code" href="socket_8h.html#adbfc4792c437102f20e2c86c4ee8581b">socketConnect</a>(<a class="code" href="structSock.html">Sock</a> <span class="keyword">this</span>, <span class="keyword">const</span> <span class="keywordtype">char</span> * addr)
  94 +<a name="l00011"></a>00011 {
  95 +<a name="l00012"></a>00012 inet_pton(AF_INET, addr, &amp;((this-&gt;addr).sin_addr));
  96 +<a name="l00013"></a>00013 (this-&gt;addr).sin_family = AF_INET; <span class="comment">/* Internet address family */</span>
  97 +<a name="l00014"></a>00014 (this-&gt;addr).sin_port = htons(this-&gt;port); <span class="comment">/* Local port */</span>
  98 +<a name="l00015"></a>00015
  99 +<a name="l00016"></a>00016 <span class="keywordflow">if</span> (-1 == connect(this-&gt;handle, (<span class="keyword">struct</span> sockaddr*) &amp;(this-&gt;addr), <span class="keyword">sizeof</span>(this-&gt;addr))) {
  100 +<a name="l00017"></a>00017 <a class="code" href="interface_2logger_8h.html#ae9f8662ec8b300dcfb5064906937553e">loggerLog</a>(this-&gt;log, <a class="code" href="logger_8h.html#a63296c69f4b9bf51d6756a5d2c482d1eaa7d55c7b377d82da77e532aa299eeeb0">LOGGER_CRIT</a>,
  101 +<a name="l00018"></a>00018 <span class="stringliteral">&quot;error connection socket: %s - service terminated&quot;</span>,
  102 +<a name="l00019"></a>00019 strerror(errno));
  103 +<a name="l00020"></a>00020 exit(EXIT_FAILURE);
  104 +<a name="l00021"></a>00021 }
  105 +<a name="l00022"></a>00022 }
  106 +<a name="l00023"></a>00023
  107 +<a name="l00024"></a>00024 <span class="comment">// vim: set ts=4 sw=4:</span>
  108 +</pre></div></div>
  109 +</div>
  110 + <div id="nav-path" class="navpath">
  111 + <ul>
  112 + <li class="navelem"><a class="el" href="connect_8c.html">connect.c</a> </li>
  113 + <li class="footer">Generated on Wed Feb 8 2012 13:04:39 for server by&#160;
  114 +<a href="http://www.doxygen.org/index.html">
  115 +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
  116 + </ul>
  117 + </div>
  118 +<!--- window showing the filter options -->
  119 +<div id="MSearchSelectWindow"
  120 + onmouseover="return searchBox.OnSearchSelectShow()"
  121 + onmouseout="return searchBox.OnSearchSelectHide()"
  122 + onkeydown="return searchBox.OnSearchSelectKey(event)">
  123 +<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>
  124 +
  125 +<!-- iframe showing the search results (closed by default) -->
  126 +<div id="MSearchResultsWindow">
  127 +<iframe src="" frameborder="0"
  128 + name="MSearchResults" id="MSearchResults">
  129 +</iframe>
  130 +</div>
  131 +
  132 +
  133 +</body>
  134 +</html>
  1 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 +<html xmlns="http://www.w3.org/1999/xhtml">
  3 +<head>
  4 +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5 +<title>server: src/daemonize.c File Reference</title>
  6 +<link href="tabs.css" rel="stylesheet" type="text/css"/>
  7 +<link href="search/search.css" rel="stylesheet" type="text/css"/>
  8 +<script type="text/javascript" src="search/search.js"></script>
  9 +<link href="navtree.css" rel="stylesheet" type="text/css"/>
  10 +<script type="text/javascript" src="jquery.js"></script>
  11 +<script type="text/javascript" src="navtree.js"></script>
  12 +<script type="text/javascript" src="resize.js"></script>
  13 +<script type="text/javascript">
  14 +$(document).ready(initResizable);
  15 +</script>
  16 +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
  17 +</head>
  18 +<body onload='searchBox.OnSelectItem(0);'>
  19 +<!-- Generated by Doxygen 1.7.3 -->
  20 +<script type="text/javascript"><!--
  21 +var searchBox = new SearchBox("searchBox", "search",false,'Search');
  22 +--></script>
  23 +<div id="top">
  24 +<div id="titlearea">
  25 +<table cellspacing="0" cellpadding="0">
  26 + <tbody>
  27 + <tr style="height: 56px;">
  28 + <td style="padding-left: 0.5em;">
  29 + <div id="projectname">server&#160;<span id="projectnumber">0.0.1</span></div>
  30 + <div id="projectbrief">basicserverinfrastructure</div>
  31 + </td>
  32 + </tr>
  33 + </tbody>
  34 +</table>
  35 +</div>
  36 + <div id="navrow1" class="tabs">
  37 + <ul class="tablist">
  38 + <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  39 + <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  40 + <li class="current"><a href="files.html"><span>Files</span></a></li>
  41 + <li id="searchli">
  42 + <div id="MSearchBox" class="MSearchBoxInactive">
  43 + <span class="left">
  44 + <img id="MSearchSelect" src="search/mag_sel.png"
  45 + onmouseover="return searchBox.OnSearchSelectShow()"
  46 + onmouseout="return searchBox.OnSearchSelectHide()"
  47 + alt=""/>
  48 + <input type="text" id="MSearchField" value="Search" accesskey="S"
  49 + onfocus="searchBox.OnSearchFieldFocus(true)"
  50 + onblur="searchBox.OnSearchFieldFocus(false)"
  51 + onkeyup="searchBox.OnSearchFieldChange(event)"/>
  52 + </span><span class="right">
  53 + <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  54 + </span>
  55 + </div>
  56 + </li>
  57 + </ul>
  58 + </div>
  59 + <div id="navrow2" class="tabs2">
  60 + <ul class="tablist">
  61 + <li><a href="files.html"><span>File&#160;List</span></a></li>
  62 + <li><a href="globals.html"><span>Globals</span></a></li>
  63 + </ul>
  64 + </div>
  65 +</div>
  66 +<div id="side-nav" class="ui-resizable side-nav-resizable">
  67 + <div id="nav-tree">
  68 + <div id="nav-tree-contents">
  69 + </div>
  70 + </div>
  71 + <div id="splitbar" style="-moz-user-select:none;"
  72 + class="ui-resizable-handle">
  73 + </div>
  74 +</div>
  75 +<script type="text/javascript">
  76 + initNavTree('daemonize_8c.html','');
  77 +</script>
  78 +<div id="doc-content">
  79 +<div class="header">
  80 + <div class="summary">
  81 +<a href="#func-members">Functions</a> </div>
  82 + <div class="headertitle">
  83 +<h1>src/daemonize.c File Reference</h1> </div>
  84 +</div>
  85 +<div class="contents">
  86 +<div class="textblock"><code>#include &lt;stdio.h&gt;</code><br/>
  87 +<code>#include &lt;unistd.h&gt;</code><br/>
  88 +<code>#include &lt;stdlib.h&gt;</code><br/>
  89 +</div><div class="textblock"><div class="dynheader">
  90 +Include dependency graph for daemonize.c:</div>
  91 +<div class="dyncontent">
  92 +<div class="center"><img src="daemonize_8c__incl.png" border="0" usemap="#src_2daemonize_8c" alt=""/></div>
  93 +</div>
  94 +</div>
  95 +<p><a href="daemonize_8c_source.html">Go to the source code of this file.</a></p>
  96 +<table class="memberdecls">
  97 +<tr><td colspan="2"><h2><a name="func-members"></a>
  98 +Functions</h2></td></tr>
  99 +<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="daemonize_8c.html#a29b0af1da2432bcc90721c0b62f4e660">daemonize</a> (void)</td></tr>
  100 +</table>
  101 +<hr/><h2>Function Documentation</h2>
  102 +<a class="anchor" id="a29b0af1da2432bcc90721c0b62f4e660"></a><!-- doxytag: member="daemonize.c::daemonize" ref="a29b0af1da2432bcc90721c0b62f4e660" args="(void)" -->
  103 +<div class="memitem">
  104 +<div class="memproto">
  105 + <table class="memname">
  106 + <tr>
  107 + <td class="memname">void daemonize </td>
  108 + <td>(</td>
  109 + <td class="paramtype">void&#160;</td>
  110 + <td class="paramname"></td><td>)</td>
  111 + <td></td>
  112 + </tr>
  113 + </table>
  114 +</div>
  115 +<div class="memdoc">
  116 +
  117 +<p>Definition at line <a class="el" href="daemonize_8c_source.html#l00006">6</a> of file <a class="el" href="daemonize_8c_source.html">daemonize.c</a>.</p>
  118 +<div class="fragment"><pre class="fragment"> {
  119 + pid_t pid;
  120 +
  121 + <span class="keywordflow">if</span> (0 &gt; ((pid = fork()))) {
  122 + perror(<span class="stringliteral">&quot;deamoinze[fork]&quot;</span>);
  123 + exit(EXIT_FAILURE);
  124 + } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (0 != pid) {
  125 + exit(EXIT_SUCCESS);
  126 + }
  127 +
  128 + <span class="comment">/* make new child session leader */</span>
  129 + setsid();
  130 +
  131 + <span class="comment">/* connect all standard streams to /dev/null */</span>
  132 + stderr = freopen(<span class="stringliteral">&quot;/dev/null&quot;</span>, <span class="stringliteral">&quot;w&quot;</span>, stderr);
  133 + stdin = freopen(<span class="stringliteral">&quot;/dev/null&quot;</span>, <span class="stringliteral">&quot;r&quot;</span>, stdin);
  134 + stdout = freopen(<span class="stringliteral">&quot;/dev/null&quot;</span>, <span class="stringliteral">&quot;w&quot;</span>, stdout);
  135 +}
  136 +</pre></div>
  137 +</div>
  138 +</div>
  139 +</div>
  140 +</div>
  141 + <div id="nav-path" class="navpath">
  142 + <ul>
  143 + <li class="navelem"><a class="el" href="daemonize_8c.html">daemonize.c</a> </li>
  144 + <li class="footer">Generated on Wed Feb 8 2012 13:04:39 for server by&#160;
  145 +<a href="http://www.doxygen.org/index.html">
  146 +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
  147 + </ul>
  148 + </div>
  149 +<!--- window showing the filter options -->
  150 +<div id="MSearchSelectWindow"
  151 + onmouseover="return searchBox.OnSearchSelectShow()"
  152 + onmouseout="return searchBox.OnSearchSelectHide()"
  153 + onkeydown="return searchBox.OnSearchSelectKey(event)">
  154 +<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>
  155 +
  156 +<!-- iframe showing the search results (closed by default) -->
  157 +<div id="MSearchResultsWindow">
  158 +<iframe src="" frameborder="0"
  159 + name="MSearchResults" id="MSearchResults">
  160 +</iframe>
  161 +</div>
  162 +
  163 +
  164 +</body>
  165 +</html>
  1 +<map id="G" name="G">
  2 +</map>
  1 +95c7a7499b1da3ea08617c6b311a882c
  1 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 +<html xmlns="http://www.w3.org/1999/xhtml">
  3 +<head>
  4 +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5 +<title>server: src/daemonize.c Source File</title>
  6 +<link href="tabs.css" rel="stylesheet" type="text/css"/>
  7 +<link href="search/search.css" rel="stylesheet" type="text/css"/>
  8 +<script type="text/javascript" src="search/search.js"></script>
  9 +<link href="navtree.css" rel="stylesheet" type="text/css"/>
  10 +<script type="text/javascript" src="jquery.js"></script>
  11 +<script type="text/javascript" src="navtree.js"></script>
  12 +<script type="text/javascript" src="resize.js"></script>
  13 +<script type="text/javascript">
  14 +$(document).ready(initResizable);
  15 +</script>
  16 +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
  17 +</head>
  18 +<body onload='searchBox.OnSelectItem(0);'>
  19 +<!-- Generated by Doxygen 1.7.3 -->
  20 +<script type="text/javascript"><!--
  21 +var searchBox = new SearchBox("searchBox", "search",false,'Search');
  22 +--></script>
  23 +<div id="top">
  24 +<div id="titlearea">
  25 +<table cellspacing="0" cellpadding="0">
  26 + <tbody>
  27 + <tr style="height: 56px;">
  28 + <td style="padding-left: 0.5em;">
  29 + <div id="projectname">server&#160;<span id="projectnumber">0.0.1</span></div>
  30 + <div id="projectbrief">basicserverinfrastructure</div>
  31 + </td>
  32 + </tr>
  33 + </tbody>
  34 +</table>
  35 +</div>
  36 + <div id="navrow1" class="tabs">
  37 + <ul class="tablist">
  38 + <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  39 + <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  40 + <li class="current"><a href="files.html"><span>Files</span></a></li>
  41 + <li id="searchli">
  42 + <div id="MSearchBox" class="MSearchBoxInactive">
  43 + <span class="left">
  44 + <img id="MSearchSelect" src="search/mag_sel.png"
  45 + onmouseover="return searchBox.OnSearchSelectShow()"
  46 + onmouseout="return searchBox.OnSearchSelectHide()"
  47 + alt=""/>
  48 + <input type="text" id="MSearchField" value="Search" accesskey="S"
  49 + onfocus="searchBox.OnSearchFieldFocus(true)"
  50 + onblur="searchBox.OnSearchFieldFocus(false)"
  51 + onkeyup="searchBox.OnSearchFieldChange(event)"/>
  52 + </span><span class="right">
  53 + <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  54 + </span>
  55 + </div>
  56 + </li>
  57 + </ul>
  58 + </div>
  59 + <div id="navrow2" class="tabs2">
  60 + <ul class="tablist">
  61 + <li><a href="files.html"><span>File&#160;List</span></a></li>
  62 + <li><a href="globals.html"><span>Globals</span></a></li>
  63 + </ul>
  64 + </div>
  65 +</div>
  66 +<div id="side-nav" class="ui-resizable side-nav-resizable">
  67 + <div id="nav-tree">
  68 + <div id="nav-tree-contents">
  69 + </div>
  70 + </div>
  71 + <div id="splitbar" style="-moz-user-select:none;"
  72 + class="ui-resizable-handle">
  73 + </div>
  74 +</div>
  75 +<script type="text/javascript">
  76 + initNavTree('daemonize_8c.html','');
  77 +</script>
  78 +<div id="doc-content">
  79 +<div class="header">
  80 + <div class="headertitle">
  81 +<h1>src/daemonize.c</h1> </div>
  82 +</div>
  83 +<div class="contents">
  84 +<a href="daemonize_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span> <span class="comment">/* for printf() and fprintf() */</span>
  85 +<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;unistd.h&gt;</span> <span class="comment">/* for getopt */</span>
  86 +<a name="l00003"></a>00003 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
  87 +<a name="l00004"></a>00004
  88 +<a name="l00005"></a>00005
  89 +<a name="l00006"></a><a class="code" href="daemonize_8c.html#a29b0af1da2432bcc90721c0b62f4e660">00006</a> <span class="keywordtype">void</span> <a class="code" href="daemonize_8c.html#a29b0af1da2432bcc90721c0b62f4e660">daemonize</a>(<span class="keywordtype">void</span>) {
  90 +<a name="l00007"></a>00007 pid_t pid;
  91 +<a name="l00008"></a>00008
  92 +<a name="l00009"></a>00009 <span class="keywordflow">if</span> (0 &gt; ((pid = fork()))) {
  93 +<a name="l00010"></a>00010 perror(<span class="stringliteral">&quot;deamoinze[fork]&quot;</span>);
  94 +<a name="l00011"></a>00011 exit(EXIT_FAILURE);
  95 +<a name="l00012"></a>00012 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (0 != pid) {
  96 +<a name="l00013"></a>00013 exit(EXIT_SUCCESS);
  97 +<a name="l00014"></a>00014 }
  98 +<a name="l00015"></a>00015
  99 +<a name="l00016"></a>00016 <span class="comment">/* make new child session leader */</span>
  100 +<a name="l00017"></a>00017 setsid();
  101 +<a name="l00018"></a>00018
  102 +<a name="l00019"></a>00019 <span class="comment">/* connect all standard streams to /dev/null */</span>
  103 +<a name="l00020"></a>00020 stderr = freopen(<span class="stringliteral">&quot;/dev/null&quot;</span>, <span class="stringliteral">&quot;w&quot;</span>, stderr);
  104 +<a name="l00021"></a>00021 stdin = freopen(<span class="stringliteral">&quot;/dev/null&quot;</span>, <span class="stringliteral">&quot;r&quot;</span>, stdin);
  105 +<a name="l00022"></a>00022 stdout = freopen(<span class="stringliteral">&quot;/dev/null&quot;</span>, <span class="stringliteral">&quot;w&quot;</span>, stdout);
  106 +<a name="l00023"></a>00023 }
  107 +</pre></div></div>
  108 +</div>
  109 + <div id="nav-path" class="navpath">
  110 + <ul>
  111 + <li class="navelem"><a class="el" href="daemonize_8c.html">daemonize.c</a> </li>
  112 + <li class="footer">Generated on Wed Feb 8 2012 13:04:39 for server by&#160;
  113 +<a href="http://www.doxygen.org/index.html">
  114 +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
  115 + </ul>
  116 + </div>
  117 +<!--- window showing the filter options -->
  118 +<div id="MSearchSelectWindow"
  119 + onmouseover="return searchBox.OnSearchSelectShow()"
  120 + onmouseout="return searchBox.OnSearchSelectHide()"
  121 + onkeydown="return searchBox.OnSearchSelectKey(event)">
  122 +<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>
  123 +
  124 +<!-- iframe showing the search results (closed by default) -->
  125 +<div id="MSearchResultsWindow">
  126 +<iframe src="" frameborder="0"
  127 + name="MSearchResults" id="MSearchResults">
  128 +</iframe>
  129 +</div>
  130 +
  131 +
  132 +</body>
  133 +</html>
  1 +/* The standard CSS for doxygen */
  2 +
  3 +body, table, div, p, dl {
  4 + font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
  5 + font-size: 12px;
  6 +}
  7 +
  8 +/* @group Heading Levels */
  9 +
  10 +h1 {
  11 + font-size: 150%;
  12 +}
  13 +
  14 +h2 {
  15 + font-size: 120%;
  16 +}
  17 +
  18 +h3 {
  19 + font-size: 100%;
  20 +}
  21 +
  22 +dt {
  23 + font-weight: bold;
  24 +}
  25 +
  26 +div.multicol {
  27 + -moz-column-gap: 1em;
  28 + -webkit-column-gap: 1em;
  29 + -moz-column-count: 3;
  30 + -webkit-column-count: 3;
  31 +}
  32 +
  33 +p.startli, p.startdd, p.starttd {
  34 + margin-top: 2px;
  35 +}
  36 +
  37 +p.endli {
  38 + margin-bottom: 0px;
  39 +}
  40 +
  41 +p.enddd {
  42 + margin-bottom: 4px;
  43 +}
  44 +
  45 +p.endtd {
  46 + margin-bottom: 2px;
  47 +}
  48 +
  49 +/* @end */
  50 +
  51 +caption {
  52 + font-weight: bold;
  53 +}
  54 +
  55 +span.legend {
  56 + font-size: 70%;
  57 + text-align: center;
  58 +}
  59 +
  60 +h3.version {
  61 + font-size: 90%;
  62 + text-align: center;
  63 +}
  64 +
  65 +div.qindex, div.navtab{
  66 + background-color: #EBEFF6;
  67 + border: 1px solid #A3B4D7;
  68 + text-align: center;
  69 + margin: 2px;
  70 + padding: 2px;
  71 +}
  72 +
  73 +div.qindex, div.navpath {
  74 + width: 100%;
  75 + line-height: 140%;
  76 +}
  77 +
  78 +div.navtab {
  79 + margin-right: 15px;
  80 +}
  81 +
  82 +/* @group Link Styling */
  83 +
  84 +a {
  85 + color: #3D578C;
  86 + font-weight: normal;
  87 + text-decoration: none;
  88 +}
  89 +
  90 +.contents a:visited {
  91 + color: #4665A2;
  92 +}
  93 +
  94 +a:hover {
  95 + text-decoration: underline;
  96 +}
  97 +
  98 +a.qindex {
  99 + font-weight: bold;
  100 +}
  101 +
  102 +a.qindexHL {
  103 + font-weight: bold;
  104 + background-color: #9CAFD4;
  105 + color: #ffffff;
  106 + border: 1px double #869DCA;
  107 +}
  108 +
  109 +.contents a.qindexHL:visited {
  110 + color: #ffffff;
  111 +}
  112 +
  113 +a.el {
  114 + font-weight: bold;
  115 +}
  116 +
  117 +a.elRef {
  118 +}
  119 +
  120 +a.code {
  121 + color: #4665A2;
  122 +}
  123 +
  124 +a.codeRef {
  125 + color: #4665A2;
  126 +}
  127 +
  128 +/* @end */
  129 +
  130 +dl.el {
  131 + margin-left: -1cm;
  132 +}
  133 +
  134 +.fragment {
  135 + font-family: monospace, fixed;
  136 + font-size: 105%;
  137 +}
  138 +
  139 +pre.fragment {
  140 + border: 1px solid #C4CFE5;
  141 + background-color: #FBFCFD;
  142 + padding: 4px 6px;
  143 + margin: 4px 8px 4px 2px;
  144 + overflow: auto;
  145 + word-wrap: break-word;
  146 + font-size: 9pt;
  147 + line-height: 125%;
  148 +}
  149 +
  150 +div.ah {
  151 + background-color: black;
  152 + font-weight: bold;
  153 + color: #ffffff;
  154 + margin-bottom: 3px;
  155 + margin-top: 3px;
  156 + padding: 0.2em;
  157 + border: solid thin #333;
  158 + border-radius: 0.5em;
  159 + -webkit-border-radius: .5em;
  160 + -moz-border-radius: .5em;
  161 + box-shadow: 2px 2px 3px #999;
  162 + -webkit-box-shadow: 2px 2px 3px #999;
  163 + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
  164 + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
  165 + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
  166 +}
  167 +
  168 +div.groupHeader {
  169 + margin-left: 16px;
  170 + margin-top: 12px;
  171 + font-weight: bold;
  172 +}
  173 +
  174 +div.groupText {
  175 + margin-left: 16px;
  176 + font-style: italic;
  177 +}
  178 +
  179 +body {
  180 + background: white;
  181 + color: black;
  182 + margin: 0;
  183 +}
  184 +
  185 +div.contents {
  186 + margin-top: 10px;
  187 + margin-left: 10px;
  188 + margin-right: 10px;
  189 +}
  190 +
  191 +td.indexkey {
  192 + background-color: #EBEFF6;
  193 + font-weight: bold;
  194 + border: 1px solid #C4CFE5;
  195 + margin: 2px 0px 2px 0;
  196 + padding: 2px 10px;
  197 +}
  198 +
  199 +td.indexvalue {
  200 + background-color: #EBEFF6;
  201 + border: 1px solid #C4CFE5;
  202 + padding: 2px 10px;
  203 + margin: 2px 0px;
  204 +}
  205 +
  206 +tr.memlist {
  207 + background-color: #EEF1F7;
  208 +}
  209 +
  210 +p.formulaDsp {
  211 + text-align: center;
  212 +}
  213 +
  214 +img.formulaDsp {
  215 +
  216 +}
  217 +
  218 +img.formulaInl {
  219 + vertical-align: middle;
  220 +}
  221 +
  222 +div.center {
  223 + text-align: center;
  224 + margin-top: 0px;
  225 + margin-bottom: 0px;
  226 + padding: 0px;
  227 +}
  228 +
  229 +div.center img {
  230 + border: 0px;
  231 +}
  232 +
  233 +address.footer {
  234 + text-align: right;
  235 + padding-right: 12px;
  236 +}
  237 +
  238 +img.footer {
  239 + border: 0px;
  240 + vertical-align: middle;
  241 +}
  242 +
  243 +/* @group Code Colorization */
  244 +
  245 +span.keyword {
  246 + color: #008000
  247 +}
  248 +
  249 +span.keywordtype {
  250 + color: #604020
  251 +}
  252 +
  253 +span.keywordflow {
  254 + color: #e08000
  255 +}
  256 +
  257 +span.comment {
  258 + color: #800000
  259 +}
  260 +
  261 +span.preprocessor {
  262 + color: #806020
  263 +}
  264 +
  265 +span.stringliteral {
  266 + color: #002080
  267 +}
  268 +
  269 +span.charliteral {
  270 + color: #008080
  271 +}
  272 +
  273 +span.vhdldigit {
  274 + color: #ff00ff
  275 +}
  276 +
  277 +span.vhdlchar {
  278 + color: #000000
  279 +}
  280 +
  281 +span.vhdlkeyword {
  282 + color: #700070
  283 +}
  284 +
  285 +span.vhdllogic {
  286 + color: #ff0000
  287 +}
  288 +
  289 +/* @end */
  290 +
  291 +/*
  292 +.search {
  293 + color: #003399;
  294 + font-weight: bold;
  295 +}
  296 +
  297 +form.search {
  298 + margin-bottom: 0px;
  299 + margin-top: 0px;
  300 +}
  301 +
  302 +input.search {
  303 + font-size: 75%;
  304 + color: #000080;
  305 + font-weight: normal;
  306 + background-color: #e8eef2;
  307 +}
  308 +*/
  309 +
  310 +td.tiny {
  311 + font-size: 75%;
  312 +}
  313 +
  314 +.dirtab {
  315 + padding: 4px;
  316 + border-collapse: collapse;
  317 + border: 1px solid #A3B4D7;
  318 +}
  319 +
  320 +th.dirtab {
  321 + background: #EBEFF6;
  322 + font-weight: bold;
  323 +}
  324 +
  325 +hr {
  326 + height: 0px;
  327 + border: none;
  328 + border-top: 1px solid #4A6AAA;
  329 +}
  330 +
  331 +hr.footer {
  332 + height: 1px;
  333 +}
  334 +
  335 +/* @group Member Descriptions */
  336 +
  337 +table.memberdecls {
  338 + border-spacing: 0px;
  339 + padding: 0px;
  340 +}
  341 +
  342 +.mdescLeft, .mdescRight,
  343 +.memItemLeft, .memItemRight,
  344 +.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
  345 + background-color: #F9FAFC;
  346 + border: none;
  347 + margin: 4px;
  348 + padding: 1px 0 0 8px;
  349 +}
  350 +
  351 +.mdescLeft, .mdescRight {
  352 + padding: 0px 8px 4px 8px;
  353 + color: #555;
  354 +}
  355 +
  356 +.memItemLeft, .memItemRight, .memTemplParams {
  357 + border-top: 1px solid #C4CFE5;
  358 +}
  359 +
  360 +.memItemLeft, .memTemplItemLeft {
  361 + white-space: nowrap;
  362 +}
  363 +
  364 +.memTemplParams {
  365 + color: #4665A2;
  366 + white-space: nowrap;
  367 +}
  368 +
  369 +/* @end */
  370 +
  371 +/* @group Member Details */
  372 +
  373 +/* Styles for detailed member documentation */
  374 +
  375 +.memtemplate {
  376 + font-size: 80%;
  377 + color: #4665A2;
  378 + font-weight: normal;
  379 + margin-left: 9px;
  380 +}
  381 +
  382 +.memnav {
  383 + background-color: #EBEFF6;
  384 + border: 1px solid #A3B4D7;
  385 + text-align: center;
  386 + margin: 2px;
  387 + margin-right: 15px;
  388 + padding: 2px;
  389 +}
  390 +
  391 +.memitem {
  392 + padding: 0;
  393 + margin-bottom: 10px;
  394 +}
  395 +
  396 +.memname {
  397 + white-space: nowrap;
  398 + font-weight: bold;
  399 + margin-left: 6px;
  400 +}
  401 +
  402 +.memproto {
  403 + border-top: 1px solid #A8B8D9;
  404 + border-left: 1px solid #A8B8D9;
  405 + border-right: 1px solid #A8B8D9;
  406 + padding: 6px 0px 6px 0px;
  407 + color: #253555;
  408 + font-weight: bold;
  409 + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
  410 + /* opera specific markup */
  411 + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
  412 + border-top-right-radius: 8px;
  413 + border-top-left-radius: 8px;
  414 + /* firefox specific markup */
  415 + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
  416 + -moz-border-radius-topright: 8px;
  417 + -moz-border-radius-topleft: 8px;
  418 + /* webkit specific markup */
  419 + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
  420 + -webkit-border-top-right-radius: 8px;
  421 + -webkit-border-top-left-radius: 8px;
  422 + background-image:url('nav_f.png');
  423 + background-repeat:repeat-x;
  424 + background-color: #E2E8F2;
  425 +
  426 +}
  427 +
  428 +.memdoc {
  429 + border-bottom: 1px solid #A8B8D9;
  430 + border-left: 1px solid #A8B8D9;
  431 + border-right: 1px solid #A8B8D9;
  432 + padding: 2px 5px;
  433 + background-color: #FBFCFD;
  434 + border-top-width: 0;
  435 + /* opera specific markup */
  436 + border-bottom-left-radius: 8px;
  437 + border-bottom-right-radius: 8px;
  438 + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
  439 + /* firefox specific markup */
  440 + -moz-border-radius-bottomleft: 8px;
  441 + -moz-border-radius-bottomright: 8px;
  442 + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
  443 + background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7);
  444 + /* webkit specific markup */
  445 + -webkit-border-bottom-left-radius: 8px;
  446 + -webkit-border-bottom-right-radius: 8px;
  447 + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
  448 + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7));
  449 +}
  450 +
  451 +.paramkey {
  452 + text-align: right;
  453 +}
  454 +
  455 +.paramtype {
  456 + white-space: nowrap;
  457 +}
  458 +
  459 +.paramname {
  460 + color: #602020;
  461 + white-space: nowrap;
  462 +}
  463 +.paramname em {
  464 + font-style: normal;
  465 +}
  466 +
  467 +.params, .retval, .exception, .tparams {
  468 + border-spacing: 6px 2px;
  469 +}
  470 +
  471 +.params .paramname, .retval .paramname {
  472 + font-weight: bold;
  473 + vertical-align: top;
  474 +}
  475 +
  476 +.params .paramtype {
  477 + font-style: italic;
  478 + vertical-align: top;
  479 +}
  480 +
  481 +.params .paramdir {
  482 + font-family: "courier new",courier,monospace;
  483 + vertical-align: top;
  484 +}
  485 +
  486 +
  487 +
  488 +
  489 +/* @end */
  490 +
  491 +/* @group Directory (tree) */
  492 +
  493 +/* for the tree view */
  494 +
  495 +.ftvtree {
  496 + font-family: sans-serif;
  497 + margin: 0px;
  498 +}
  499 +
  500 +/* these are for tree view when used as main index */
  501 +
  502 +.directory {
  503 + font-size: 9pt;
  504 + font-weight: bold;
  505 + margin: 5px;
  506 +}
  507 +
  508 +.directory h3 {
  509 + margin: 0px;
  510 + margin-top: 1em;
  511 + font-size: 11pt;
  512 +}
  513 +
  514 +/*
  515 +The following two styles can be used to replace the root node title
  516 +with an image of your choice. Simply uncomment the next two styles,
  517 +specify the name of your image and be sure to set 'height' to the
  518 +proper pixel height of your image.
  519 +*/
  520 +
  521 +/*
  522 +.directory h3.swap {
  523 + height: 61px;
  524 + background-repeat: no-repeat;
  525 + background-image: url("yourimage.gif");
  526 +}
  527 +.directory h3.swap span {
  528 + display: none;
  529 +}
  530 +*/
  531 +
  532 +.directory > h3 {
  533 + margin-top: 0;
  534 +}
  535 +
  536 +.directory p {
  537 + margin: 0px;
  538 + white-space: nowrap;
  539 +}
  540 +
  541 +.directory div {
  542 + display: none;
  543 + margin: 0px;
  544 +}
  545 +
  546 +.directory img {
  547 + vertical-align: -30%;
  548 +}
  549 +
  550 +/* these are for tree view when not used as main index */
  551 +
  552 +.directory-alt {
  553 + font-size: 100%;
  554 + font-weight: bold;
  555 +}
  556 +
  557 +.directory-alt h3 {
  558 + margin: 0px;
  559 + margin-top: 1em;
  560 + font-size: 11pt;
  561 +}
  562 +
  563 +.directory-alt > h3 {
  564 + margin-top: 0;
  565 +}
  566 +
  567 +.directory-alt p {
  568 + margin: 0px;
  569 + white-space: nowrap;
  570 +}
  571 +
  572 +.directory-alt div {
  573 + display: none;
  574 + margin: 0px;
  575 +}
  576 +
  577 +.directory-alt img {
  578 + vertical-align: -30%;
  579 +}
  580 +
  581 +/* @end */
  582 +
  583 +div.dynheader {
  584 + margin-top: 8px;
  585 +}
  586 +
  587 +address {
  588 + font-style: normal;
  589 + color: #2A3D61;
  590 +}
  591 +
  592 +table.doxtable {
  593 + border-collapse:collapse;
  594 +}
  595 +
  596 +table.doxtable td, table.doxtable th {
  597 + border: 1px solid #2D4068;
  598 + padding: 3px 7px 2px;
  599 +}
  600 +
  601 +table.doxtable th {
  602 + background-color: #374F7F;
  603 + color: #FFFFFF;
  604 + font-size: 110%;
  605 + padding-bottom: 4px;
  606 + padding-top: 5px;
  607 + text-align:left;
  608 +}
  609 +
  610 +.tabsearch {
  611 + top: 0px;
  612 + left: 10px;
  613 + height: 36px;
  614 + background-image: url('tab_b.png');
  615 + z-index: 101;
  616 + overflow: hidden;
  617 + font-size: 13px;
  618 +}
  619 +
  620 +.navpath ul
  621 +{
  622 + font-size: 11px;
  623 + background-image:url('tab_b.png');
  624 + background-repeat:repeat-x;
  625 + height:30px;
  626 + line-height:30px;
  627 + color:#8AA0CC;
  628 + border:solid 1px #C2CDE4;
  629 + overflow:hidden;
  630 + margin:0px;
  631 + padding:0px;
  632 +}
  633 +
  634 +.navpath li
  635 +{
  636 + list-style-type:none;
  637 + float:left;
  638 + padding-left:10px;
  639 + padding-right:15px;
  640 + background-image:url('bc_s.png');
  641 + background-repeat:no-repeat;
  642 + background-position:right;
  643 + color:#364D7C;
  644 +}
  645 +
  646 +.navpath li.navelem a
  647 +{
  648 + height:32px;
  649 + display:block;
  650 + text-decoration: none;
  651 + outline: none;
  652 +}
  653 +
  654 +.navpath li.navelem a:hover
  655 +{
  656 + color:#6884BD;
  657 +}
  658 +
  659 +.navpath li.footer
  660 +{
  661 + list-style-type:none;
  662 + float:right;
  663 + padding-left:10px;
  664 + padding-right:15px;
  665 + background-image:none;
  666 + background-repeat:no-repeat;
  667 + background-position:right;
  668 + color:#364D7C;
  669 + font-size: 8pt;
  670 +}
  671 +
  672 +
  673 +div.summary
  674 +{
  675 + float: right;
  676 + font-size: 8pt;
  677 + padding-right: 5px;
  678 + width: 50%;
  679 + text-align: right;
  680 +}
  681 +
  682 +div.summary a
  683 +{
  684 + white-space: nowrap;
  685 +}
  686 +
  687 +div.ingroups
  688 +{
  689 + font-size: 8pt;
  690 + padding-left: 5px;
  691 + width: 50%;
  692 + text-align: left;
  693 +}
  694 +
  695 +div.ingroups a
  696 +{
  697 + white-space: nowrap;
  698 +}
  699 +
  700 +div.header
  701 +{
  702 + background-image:url('nav_h.png');
  703 + background-repeat:repeat-x;
  704 + background-color: #F9FAFC;
  705 + margin: 0px;
  706 + border-bottom: 1px solid #C4CFE5;
  707 +}
  708 +
  709 +div.headertitle
  710 +{
  711 + padding: 5px 5px 5px 10px;
  712 +}
  713 +
  714 +dl
  715 +{
  716 + padding: 0 0 0 10px;
  717 +}
  718 +
  719 +dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug
  720 +{
  721 + border-left:4px solid;
  722 + padding: 0 0 0 6px;
  723 +}
  724 +
  725 +dl.note
  726 +{
  727 + border-color: #D0D000;
  728 +}
  729 +
  730 +dl.warning, dl.attention
  731 +{
  732 + border-color: #FF0000;
  733 +}
  734 +
  735 +dl.pre, dl.post, dl.invariant
  736 +{
  737 + border-color: #00D000;
  738 +}
  739 +
  740 +dl.deprecated
  741 +{
  742 + border-color: #505050;
  743 +}
  744 +
  745 +dl.todo
  746 +{
  747 + border-color: #00C0E0;
  748 +}
  749 +
  750 +dl.test
  751 +{
  752 + border-color: #3030E0;
  753 +}
  754 +
  755 +dl.bug
  756 +{
  757 + border-color: #C08050;
  758 +}
  759 +
  760 +#projectlogo
  761 +{
  762 + text-align: center;
  763 + vertical-align: bottom;
  764 + border-collapse: separate;
  765 +}
  766 +
  767 +#projectlogo img
  768 +{
  769 + border: 0px none;
  770 +}
  771 +
  772 +#projectname
  773 +{
  774 + font: 300% arial,sans-serif;
  775 + margin: 0px;
  776 + padding: 0px;
  777 +}
  778 +
  779 +#projectbrief
  780 +{
  781 + font: 120% arial,sans-serif;
  782 + margin: 0px;
  783 + padding: 0px;
  784 +}
  785 +
  786 +#projectnumber
  787 +{
  788 + font: 50% arial,sans-serif;
  789 + margin: 0px;
  790 + padding: 0px;
  791 +}
  792 +
  793 +#titlearea
  794 +{
  795 + padding: 0px;
  796 + margin: 0px;
  797 + width: 100%;
  798 + border-bottom: 1px solid #5373B4;
  799 +}
  800 +
  1 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 +<html xmlns="http://www.w3.org/1999/xhtml">
  3 +<head>
  4 +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5 +<title>server: File List</title>
  6 +<link href="tabs.css" rel="stylesheet" type="text/css"/>
  7 +<link href="search/search.css" rel="stylesheet" type="text/css"/>
  8 +<script type="text/javascript" src="search/search.js"></script>
  9 +<link href="navtree.css" rel="stylesheet" type="text/css"/>
  10 +<script type="text/javascript" src="jquery.js"></script>
  11 +<script type="text/javascript" src="navtree.js"></script>
  12 +<script type="text/javascript" src="resize.js"></script>
  13 +<script type="text/javascript">
  14 +$(document).ready(initResizable);
  15 +</script>
  16 +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
  17 +</head>
  18 +<body onload='searchBox.OnSelectItem(0);'>
  19 +<!-- Generated by Doxygen 1.7.3 -->
  20 +<script type="text/javascript"><!--
  21 +var searchBox = new SearchBox("searchBox", "search",false,'Search');
  22 +--></script>
  23 +<div id="top">
  24 +<div id="titlearea">
  25 +<table cellspacing="0" cellpadding="0">
  26 + <tbody>
  27 + <tr style="height: 56px;">
  28 + <td style="padding-left: 0.5em;">
  29 + <div id="projectname">server&#160;<span id="projectnumber">0.0.1</span></div>
  30 + <div id="projectbrief">basicserverinfrastructure</div>
  31 + </td>
  32 + </tr>
  33 + </tbody>
  34 +</table>
  35 +</div>
  36 + <div id="navrow1" class="tabs">
  37 + <ul class="tablist">
  38 + <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  39 + <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  40 + <li class="current"><a href="files.html"><span>Files</span></a></li>
  41 + <li id="searchli">
  42 + <div id="MSearchBox" class="MSearchBoxInactive">
  43 + <span class="left">
  44 + <img id="MSearchSelect" src="search/mag_sel.png"
  45 + onmouseover="return searchBox.OnSearchSelectShow()"
  46 + onmouseout="return searchBox.OnSearchSelectHide()"
  47 + alt=""/>
  48 + <input type="text" id="MSearchField" value="Search" accesskey="S"
  49 + onfocus="searchBox.OnSearchFieldFocus(true)"
  50 + onblur="searchBox.OnSearchFieldFocus(false)"
  51 + onkeyup="searchBox.OnSearchFieldChange(event)"/>
  52 + </span><span class="right">
  53 + <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  54 + </span>
  55 + </div>
  56 + </li>
  57 + </ul>
  58 + </div>
  59 + <div id="navrow2" class="tabs2">
  60 + <ul class="tablist">
  61 + <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
  62 + <li><a href="globals.html"><span>Globals</span></a></li>
  63 + </ul>
  64 + </div>
  65 +</div>
  66 +<div id="side-nav" class="ui-resizable side-nav-resizable">
  67 + <div id="nav-tree">
  68 + <div id="nav-tree-contents">
  69 + </div>
  70 + </div>
  71 + <div id="splitbar" style="-moz-user-select:none;"
  72 + class="ui-resizable-handle">
  73 + </div>
  74 +</div>
  75 +<script type="text/javascript">
  76 + initNavTree('files.html','');
  77 +</script>
  78 +<div id="doc-content">
  79 +<div class="header">
  80 + <div class="headertitle">
  81 +<h1>File List</h1> </div>
  82 +</div>
  83 +<div class="contents">
  84 +<div class="textblock">Here is a list of all files with brief descriptions:</div><table>
  85 + <tr><td class="indexkey">include/<a class="el" href="class_8h.html">class.h</a> <a href="class_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  86 + <tr><td class="indexkey">include/<a class="el" href="interface_8h.html">interface.h</a> <a href="interface_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  87 + <tr><td class="indexkey">include/<a class="el" href="logger_8h.html">logger.h</a> <a href="logger_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  88 + <tr><td class="indexkey">include/<a class="el" href="server_8h.html">server.h</a> <a href="server_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  89 + <tr><td class="indexkey">include/<a class="el" href="signalHandling_8h.html">signalHandling.h</a> <a href="signalHandling_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  90 + <tr><td class="indexkey">include/<a class="el" href="socket_8h.html">socket.h</a> <a href="socket_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  91 + <tr><td class="indexkey">include/http/<a class="el" href="request_8h.html">request.h</a> <a href="request_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  92 + <tr><td class="indexkey">include/http/<a class="el" href="request__parser_8h.html">request_parser.h</a> <a href="request__parser_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  93 + <tr><td class="indexkey">include/http/<a class="el" href="request__queue_8h.html">request_queue.h</a> <a href="request__queue_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  94 + <tr><td class="indexkey">include/interface/<a class="el" href="interface_2class_8h.html">class.h</a> <a href="interface_2class_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  95 + <tr><td class="indexkey">include/interface/<a class="el" href="interface_2logger_8h.html">logger.h</a> <a href="interface_2logger_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  96 + <tr><td class="indexkey">include/interface/<a class="el" href="stream__reader_8h.html">stream_reader.h</a> <a href="stream__reader_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  97 + <tr><td class="indexkey">src/<a class="el" href="class_8c.html">class.c</a> <a href="class_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  98 + <tr><td class="indexkey">src/<a class="el" href="daemonize_8c.html">daemonize.c</a> <a href="daemonize_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  99 + <tr><td class="indexkey">src/<a class="el" href="interface_8c.html">interface.c</a> <a href="interface_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  100 + <tr><td class="indexkey">src/<a class="el" href="logger_8c.html">logger.c</a> <a href="logger_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  101 + <tr><td class="indexkey">src/<a class="el" href="server_8c.html">server.c</a> <a href="server_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  102 + <tr><td class="indexkey">src/<a class="el" href="signalHandling_8c.html">signalHandling.c</a> <a href="signalHandling_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  103 + <tr><td class="indexkey">src/<a class="el" href="socket_8c.html">socket.c</a> <a href="socket_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  104 + <tr><td class="indexkey">src/<a class="el" href="testserver_8c.html">testserver.c</a> <a href="testserver_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  105 + <tr><td class="indexkey">src/http/<a class="el" href="request_8c.html">request.c</a> <a href="request_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  106 + <tr><td class="indexkey">src/http/<a class="el" href="request__parser_8c.html">request_parser.c</a> <a href="request__parser_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  107 + <tr><td class="indexkey">src/http/<a class="el" href="request__queue_8c.html">request_queue.c</a> <a href="request__queue_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  108 + <tr><td class="indexkey">src/interface/<a class="el" href="interface_2class_8c.html">class.c</a> <a href="interface_2class_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  109 + <tr><td class="indexkey">src/interface/<a class="el" href="interface_2logger_8c.html">logger.c</a> <a href="interface_2logger_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  110 + <tr><td class="indexkey">src/interface/<a class="el" href="stream__reader_8c.html">stream_reader.c</a> <a href="stream__reader_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  111 + <tr><td class="indexkey">src/logger/<a class="el" href="stderr_8c.html">stderr.c</a> <a href="stderr_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  112 + <tr><td class="indexkey">src/logger/<a class="el" href="syslog_8c.html">syslog.c</a> <a href="syslog_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  113 + <tr><td class="indexkey">src/server/<a class="el" href="close__conn_8c.html">close_conn.c</a> <a href="close__conn_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  114 + <tr><td class="indexkey">src/server/<a class="el" href="handle__accept_8c.html">handle_accept.c</a> <a href="handle__accept_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  115 + <tr><td class="indexkey">src/server/<a class="el" href="poll_8c.html">poll.c</a> <a href="poll_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  116 + <tr><td class="indexkey">src/server/<a class="el" href="read_8c.html">read.c</a> <a href="read_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  117 + <tr><td class="indexkey">src/server/<a class="el" href="run_8c.html">run.c</a> <a href="run_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  118 + <tr><td class="indexkey">src/socket/<a class="el" href="accept_8c.html">accept.c</a> <a href="accept_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  119 + <tr><td class="indexkey">src/socket/<a class="el" href="connect_8c.html">connect.c</a> <a href="connect_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  120 + <tr><td class="indexkey">src/socket/<a class="el" href="listen_8c.html">listen.c</a> <a href="listen_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
  121 +</table>
  122 +</div>
  123 +</div>
  124 + <div id="nav-path" class="navpath">
  125 + <ul>
  126 + <li class="footer">Generated on Wed Feb 8 2012 13:04:40 for server by&#160;
  127 +<a href="http://www.doxygen.org/index.html">
  128 +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
  129 + </ul>
  130 + </div>
  131 +<!--- window showing the filter options -->
  132 +<div id="MSearchSelectWindow"
  133 + onmouseover="return searchBox.OnSearchSelectShow()"
  134 + onmouseout="return searchBox.OnSearchSelectHide()"
  135 + onkeydown="return searchBox.OnSearchSelectKey(event)">
  136 +<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>
  137 +
  138 +<!-- iframe showing the search results (closed by default) -->
  139 +<div id="MSearchResultsWindow">
  140 +<iframe src="" frameborder="0"
  141 + name="MSearchResults" id="MSearchResults">
  142 +</iframe>
  143 +</div>
  144 +
  145 +
  146 +</body>
  147 +</html>
  1 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 +<html xmlns="http://www.w3.org/1999/xhtml">
  3 +<head>
  4 +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5 +<title>server: Data Fields</title>
  6 +<link href="tabs.css" rel="stylesheet" type="text/css"/>
  7 +<link href="search/search.css" rel="stylesheet" type="text/css"/>
  8 +<script type="text/javascript" src="search/search.js"></script>
  9 +<link href="navtree.css" rel="stylesheet" type="text/css"/>
  10 +<script type="text/javascript" src="jquery.js"></script>
  11 +<script type="text/javascript" src="navtree.js"></script>
  12 +<script type="text/javascript" src="resize.js"></script>
  13 +<script type="text/javascript">
  14 +$(document).ready(initResizable);
  15 +</script>
  16 +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
  17 +</head>
  18 +<body onload='searchBox.OnSelectItem(0);'>
  19 +<!-- Generated by Doxygen 1.7.3 -->
  20 +<script type="text/javascript"><!--
  21 +var searchBox = new SearchBox("searchBox", "search",false,'Search');
  22 +--></script>
  23 +<div id="top">
  24 +<div id="titlearea">
  25 +<table cellspacing="0" cellpadding="0">
  26 + <tbody>
  27 + <tr style="height: 56px;">
  28 + <td style="padding-left: 0.5em;">
  29 + <div id="projectname">server&#160;<span id="projectnumber">0.0.1</span></div>
  30 + <div id="projectbrief">basicserverinfrastructure</div>
  31 + </td>
  32 + </tr>
  33 + </tbody>
  34 +</table>
  35 +</div>
  36 + <div id="navrow1" class="tabs">
  37 + <ul class="tablist">
  38 + <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  39 + <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  40 + <li><a href="files.html"><span>Files</span></a></li>
  41 + <li id="searchli">
  42 + <div id="MSearchBox" class="MSearchBoxInactive">
  43 + <span class="left">
  44 + <img id="MSearchSelect" src="search/mag_sel.png"
  45 + onmouseover="return searchBox.OnSearchSelectShow()"
  46 + onmouseout="return searchBox.OnSearchSelectHide()"
  47 + alt=""/>
  48 + <input type="text" id="MSearchField" value="Search" accesskey="S"
  49 + onfocus="searchBox.OnSearchFieldFocus(true)"
  50 + onblur="searchBox.OnSearchFieldFocus(false)"
  51 + onkeyup="searchBox.OnSearchFieldChange(event)"/>
  52 + </span><span class="right">
  53 + <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  54 + </span>
  55 + </div>
  56 + </li>
  57 + </ul>
  58 + </div>
  59 + <div id="navrow2" class="tabs2">
  60 + <ul class="tablist">
  61 + <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  62 + <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
  63 + <li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
  64 + </ul>
  65 + </div>
  66 + <div id="navrow3" class="tabs2">
  67 + <ul class="tablist">
  68 + <li class="current"><a href="functions.html"><span>All</span></a></li>
  69 + <li><a href="functions_func.html"><span>Functions</span></a></li>
  70 + <li><a href="functions_vars.html"><span>Variables</span></a></li>
  71 + </ul>
  72 + </div>
  73 + <div id="navrow4" class="tabs3">
  74 + <ul class="tablist">
  75 + <li><a href="#index__"><span>_</span></a></li>
  76 + <li><a href="#index_b"><span>b</span></a></li>
  77 + <li><a href="#index_c"><span>c</span></a></li>
  78 + <li><a href="#index_d"><span>d</span></a></li>
  79 + <li><a href="#index_e"><span>e</span></a></li>
  80 + <li><a href="#index_h"><span>h</span></a></li>
  81 + <li><a href="#index_i"><span>i</span></a></li>
  82 + <li><a href="#index_l"><span>l</span></a></li>
  83 + <li><a href="#index_m"><span>m</span></a></li>
  84 + <li><a href="#index_n"><span>n</span></a></li>
  85 + <li><a href="#index_o"><span>o</span></a></li>
  86 + <li><a href="#index_p"><span>p</span></a></li>
  87 + <li><a href="#index_r"><span>r</span></a></li>
  88 + <li><a href="#index_s"><span>s</span></a></li>
  89 + <li><a href="#index_u"><span>u</span></a></li>
  90 + <li><a href="#index_v"><span>v</span></a></li>
  91 + <li><a href="#index_w"><span>w</span></a></li>
  92 + </ul>
  93 + </div>
  94 +</div>
  95 +<div id="side-nav" class="ui-resizable side-nav-resizable">
  96 + <div id="nav-tree">
  97 + <div id="nav-tree-contents">
  98 + </div>
  99 + </div>
  100 + <div id="splitbar" style="-moz-user-select:none;"
  101 + class="ui-resizable-handle">
  102 + </div>
  103 +</div>
  104 +<script type="text/javascript">
  105 + initNavTree('functions.html','');
  106 +</script>
  107 +<div id="doc-content">
  108 +<div class="contents">
  109 +<div class="textblock">Here is a list of all struct and union fields with links to the structures/unions they belong to:</div>
  110 +
  111 +<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
  112 +<li>_
  113 +: <a class="el" href="structi__Class.html#a988da6337fdaa9c14010c864c628555c">i_Class</a>
  114 +, <a class="el" href="structi__StreamReader.html#ac1a75d5e8f7932c13f1575805f097a4a">i_StreamReader</a>
  115 +, <a class="el" href="structi__Logger.html#a4e6025014bd73827bbb1c3e3dd571160">i_Logger</a>
  116 +</li>
  117 +</ul>
  118 +
  119 +
  120 +<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
  121 +<li>body
  122 +: <a class="el" href="structHttpRequest.html#a4064a72196787ee73d246b117de2a7ef">HttpRequest</a>
  123 +</li>
  124 +<li>buffer
  125 +: <a class="el" href="structHttpRequestParser.html#a6c93a89e984f6ee2c7f52bfa281c2f94">HttpRequestParser</a>
  126 +</li>
  127 +<li>buffer_size
  128 +: <a class="el" href="structHttpRequestParser.html#aa969bc054c7215c626abecdc2b0e4b31">HttpRequestParser</a>
  129 +</li>
  130 +<li>buffer_used
  131 +: <a class="el" href="structHttpRequestParser.html#a8c978afebc23adea883f35699d0b1421">HttpRequestParser</a>
  132 +</li>
  133 +</ul>
  134 +
  135 +
  136 +<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
  137 +<li>clone
  138 +: <a class="el" href="structi__Class.html#ad3af0db4f258c8af23f62e14283bff43">i_Class</a>
  139 +</li>
  140 +<li>conns
  141 +: <a class="el" href="structServer.html#a269c01ae6736206cdd9a5e1d5ad2398b">Server</a>
  142 +</li>
  143 +<li>ctor
  144 +: <a class="el" href="structi__Class.html#ace20a21c57a14d2846cfd061002970f4">i_Class</a>
  145 +</li>
  146 +</ul>
  147 +
  148 +
  149 +<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
  150 +<li>done
  151 +: <a class="el" href="structHttpRequest.html#a3cda82352767cf9f1c2a665ec2638a70">HttpRequest</a>
  152 +</li>
  153 +<li>dtor
  154 +: <a class="el" href="structi__Class.html#aced52ce163499af9cc7de1ae979e0ee2">i_Class</a>
  155 +</li>
  156 +</ul>
  157 +
  158 +
  159 +<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
  160 +<li>EXTENDS()
  161 +: <a class="el" href="structLoggerStderr.html#a533c72d4344f76a26516ac903651297a">LoggerStderr</a>
  162 +, <a class="el" href="structLoggerSyslog.html#a116fa3bce3c65fc1fdd0a2b1f6a15011">LoggerSyslog</a>
  163 +</li>
  164 +</ul>
  165 +
  166 +
  167 +<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
  168 +<li>handle
  169 +: <a class="el" href="structSock.html#a1b5945aef923a906501d7abac82449c3">Sock</a>
  170 +</li>
  171 +<li>header
  172 +: <a class="el" href="structHttpRequest.html#ab0abc660d76e3b9a169bddd4a92ffd52">HttpRequest</a>
  173 +</li>
  174 +<li>http_version
  175 +: <a class="el" href="structHttpRequest.html#ab9bfe4f569e5cbcbf49d4b8377d254a2">HttpRequest</a>
  176 +</li>
  177 +</ul>
  178 +
  179 +
  180 +<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
  181 +<li>impl
  182 +: <a class="el" href="structiface__impl.html#a4f3e0d7f7bbd7e3f98472a140c37c1ea">iface_impl</a>
  183 +</li>
  184 +<li>init
  185 +: <a class="el" href="structclass.html#a744967ad02b74a9464c1224c7fa05b23">class</a>
  186 +</li>
  187 +</ul>
  188 +
  189 +
  190 +<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
  191 +<li>log
  192 +: <a class="el" href="structi__Logger.html#ac8380d02d5fb624d46df64e0c8a4e236">i_Logger</a>
  193 +, <a class="el" href="structSock.html#a7441b6368f3e778b5da7554a4f5a7eb6">Sock</a>
  194 +</li>
  195 +<li>logger
  196 +: <a class="el" href="structServer.html#ab50b5b20130564ba7e9a12032070882f">Server</a>
  197 +</li>
  198 +</ul>
  199 +
  200 +
  201 +<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
  202 +<li>magic
  203 +: <a class="el" href="structclass.html#a395a6874758c92188945df7c070f5ff1">class</a>
  204 +</li>
  205 +<li>method
  206 +: <a class="el" href="structHttpRequest.html#a266c616e67dea85335c9fcfca6e5c0cb">HttpRequest</a>
  207 +</li>
  208 +<li>min_level
  209 +: <a class="el" href="structLogger.html#ae0e2ee030c14c5ef01dc0d1568c6fd3f">Logger</a>
  210 +</li>
  211 +</ul>
  212 +
  213 +
  214 +<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
  215 +<li>name
  216 +: <a class="el" href="structHttpRequest.html#a6b66dcc28e31a61cc2f9f0b462f6ea18">HttpRequest</a>
  217 +, <a class="el" href="structinterface.html#aee0f8e8ed8b404d358a6da91196da0d9">interface</a>
  218 +</li>
  219 +<li>ndel
  220 +: <a class="el" href="structServer.html#a88eb6b108b1d22967076fc1d9e21c4d4">Server</a>
  221 +</li>
  222 +<li>nfds
  223 +: <a class="el" href="structServer.html#a156e386a6d4c73e6233531706a091fb3">Server</a>
  224 +</li>
  225 +<li>nimpl
  226 +: <a class="el" href="structiface__impl.html#af2eaa008e863bdef373ed0c6fa26722b">iface_impl</a>
  227 +</li>
  228 +<li>nmethods
  229 +: <a class="el" href="structinterface.html#a7efc08a40bdff0c29b10594c7148168f">interface</a>
  230 +</li>
  231 +<li>nrequests
  232 +: <a class="el" href="structHttpRequestQueue.html#a2bd08c36442f90e82b29b09f54a08682">HttpRequestQueue</a>
  233 +</li>
  234 +</ul>
  235 +
  236 +
  237 +<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
  238 +<li>object_size
  239 +: <a class="el" href="structclass.html#a31f0b35f94229885e948d55bac214c0d">class</a>
  240 +</li>
  241 +</ul>
  242 +
  243 +
  244 +<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
  245 +<li>parent
  246 +: <a class="el" href="structclass.html#a97f697cb86be7a39d4477e971074ae6e">class</a>
  247 +</li>
  248 +<li>port
  249 +: <a class="el" href="structSock.html#a29ba0820a4596f40009a514d7cb82f39">Sock</a>
  250 +</li>
  251 +</ul>
  252 +
  253 +
  254 +<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
  255 +<li>rbuf
  256 +: <a class="el" href="structServer.html#a898e067058a6db3a8d5cf3968fc79c8a">Server</a>
  257 +</li>
  258 +<li>read
  259 +: <a class="el" href="structi__StreamReader.html#ae27c6977fb19bd1199316d8724b1c693">i_StreamReader</a>
  260 +</li>
  261 +<li>reader
  262 +: <a class="el" href="structServer.html#a241c1cbc117f318453934fa10c2c4a23">Server</a>
  263 +</li>
  264 +<li>request_queue
  265 +: <a class="el" href="structHttpRequestParser.html#a5106282e74d88ab2238d5a1e11e1877a">HttpRequestParser</a>
  266 +</li>
  267 +<li>requests
  268 +: <a class="el" href="structHttpRequestQueue.html#a9413ed3fe003274c47618adde5335164">HttpRequestQueue</a>
  269 +</li>
  270 +<li>rpos
  271 +: <a class="el" href="structServer.html#af39a8d40450b5c6a947be2c1a95c0943">Server</a>
  272 +</li>
  273 +</ul>
  274 +
  275 +
  276 +<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
  277 +<li>simpl
  278 +: <a class="el" href="structiface__impl.html#a9ee4589aed892fb213117b692e63e302">iface_impl</a>
  279 +</li>
  280 +<li>sock
  281 +: <a class="el" href="structServer.html#a4cdc9c048a3a1846683fdedc2269c0f8">Server</a>
  282 +</li>
  283 +<li>state
  284 +: <a class="el" href="structHttpRequestParser.html#a8b0173db304820355cc8764e57cc5b63">HttpRequestParser</a>
  285 +</li>
  286 +</ul>
  287 +
  288 +
  289 +<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
  290 +<li>uri
  291 +: <a class="el" href="structHttpRequest.html#a3f880540d72ba70d88f8a312b256b7c9">HttpRequest</a>
  292 +</li>
  293 +</ul>
  294 +
  295 +
  296 +<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
  297 +<li>value
  298 +: <a class="el" href="structHttpRequest.html#a333e4fbf77305e59196c2ebd59cf6b65">HttpRequest</a>
  299 +</li>
  300 +</ul>
  301 +
  302 +
  303 +<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
  304 +<li>wbuf
  305 +: <a class="el" href="structServer.html#a8914561393eb8d570a2cfb5348b6aeb7">Server</a>
  306 +</li>
  307 +<li>wpos
  308 +: <a class="el" href="structServer.html#a95e4cdf2ef584a6709f794d58d9190b3">Server</a>
  309 +</li>
  310 +</ul>
  311 +</div>
  312 +</div>
  313 + <div id="nav-path" class="navpath">
  314 + <ul>
  315 + <li class="footer">Generated on Wed Feb 8 2012 13:04:40 for server by&#160;
  316 +<a href="http://www.doxygen.org/index.html">
  317 +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
  318 + </ul>
  319 + </div>
  320 +<!--- window showing the filter options -->
  321 +<div id="MSearchSelectWindow"
  322 + onmouseover="return searchBox.OnSearchSelectShow()"
  323 + onmouseout="return searchBox.OnSearchSelectHide()"
  324 + onkeydown="return searchBox.OnSearchSelectKey(event)">
  325 +<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>
  326 +
  327 +<!-- iframe showing the search results (closed by default) -->
  328 +<div id="MSearchResultsWindow">
  329 +<iframe src="" frameborder="0"
  330 + name="MSearchResults" id="MSearchResults">
  331 +</iframe>
  332 +</div>
  333 +
  334 +
  335 +</body>
  336 +</html>
  1 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 +<html xmlns="http://www.w3.org/1999/xhtml">
  3 +<head>
  4 +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5 +<title>server: Data Fields - Functions</title>
  6 +<link href="tabs.css" rel="stylesheet" type="text/css"/>
  7 +<link href="search/search.css" rel="stylesheet" type="text/css"/>
  8 +<script type="text/javascript" src="search/search.js"></script>
  9 +<link href="navtree.css" rel="stylesheet" type="text/css"/>
  10 +<script type="text/javascript" src="jquery.js"></script>
  11 +<script type="text/javascript" src="navtree.js"></script>
  12 +<script type="text/javascript" src="resize.js"></script>
  13 +<script type="text/javascript">
  14 +$(document).ready(initResizable);
  15 +</script>
  16 +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
  17 +</head>
  18 +<body onload='searchBox.OnSelectItem(0);'>
  19 +<!-- Generated by Doxygen 1.7.3 -->
  20 +<script type="text/javascript"><!--
  21 +var searchBox = new SearchBox("searchBox", "search",false,'Search');
  22 +--></script>
  23 +<div id="top">
  24 +<div id="titlearea">
  25 +<table cellspacing="0" cellpadding="0">
  26 + <tbody>
  27 + <tr style="height: 56px;">
  28 + <td style="padding-left: 0.5em;">
  29 + <div id="projectname">server&#160;<span id="projectnumber">0.0.1</span></div>
  30 + <div id="projectbrief">basicserverinfrastructure</div>
  31 + </td>
  32 + </tr>
  33 + </tbody>
  34 +</table>
  35 +</div>
  36 + <div id="navrow1" class="tabs">
  37 + <ul class="tablist">
  38 + <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  39 + <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  40 + <li><a href="files.html"><span>Files</span></a></li>
  41 + <li id="searchli">
  42 + <div id="MSearchBox" class="MSearchBoxInactive">
  43 + <span class="left">
  44 + <img id="MSearchSelect" src="search/mag_sel.png"
  45 + onmouseover="return searchBox.OnSearchSelectShow()"
  46 + onmouseout="return searchBox.OnSearchSelectHide()"
  47 + alt=""/>
  48 + <input type="text" id="MSearchField" value="Search" accesskey="S"
  49 + onfocus="searchBox.OnSearchFieldFocus(true)"
  50 + onblur="searchBox.OnSearchFieldFocus(false)"
  51 + onkeyup="searchBox.OnSearchFieldChange(event)"/>
  52 + </span><span class="right">
  53 + <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  54 + </span>
  55 + </div>
  56 + </li>
  57 + </ul>
  58 + </div>
  59 + <div id="navrow2" class="tabs2">
  60 + <ul class="tablist">
  61 + <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  62 + <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
  63 + <li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
  64 + </ul>
  65 + </div>
  66 + <div id="navrow3" class="tabs2">
  67 + <ul class="tablist">
  68 + <li><a href="functions.html"><span>All</span></a></li>
  69 + <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
  70 + <li><a href="functions_vars.html"><span>Variables</span></a></li>
  71 + </ul>
  72 + </div>
  73 +</div>
  74 +<div id="side-nav" class="ui-resizable side-nav-resizable">
  75 + <div id="nav-tree">
  76 + <div id="nav-tree-contents">
  77 + </div>
  78 + </div>
  79 + <div id="splitbar" style="-moz-user-select:none;"
  80 + class="ui-resizable-handle">
  81 + </div>
  82 +</div>
  83 +<script type="text/javascript">
  84 + initNavTree('functions.html','');
  85 +</script>
  86 +<div id="doc-content">
  87 +<div class="contents">
  88 +&#160;<ul>
  89 +<li>EXTENDS()
  90 +: <a class="el" href="structLoggerStderr.html#a533c72d4344f76a26516ac903651297a">LoggerStderr</a>
  91 +, <a class="el" href="structLoggerSyslog.html#a116fa3bce3c65fc1fdd0a2b1f6a15011">LoggerSyslog</a>
  92 +</li>
  93 +</ul>
  94 +</div>
  95 +</div>
  96 + <div id="nav-path" class="navpath">
  97 + <ul>
  98 + <li class="footer">Generated on Wed Feb 8 2012 13:04:40 for server by&#160;
  99 +<a href="http://www.doxygen.org/index.html">
  100 +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
  101 + </ul>
  102 + </div>
  103 +<!--- window showing the filter options -->
  104 +<div id="MSearchSelectWindow"
  105 + onmouseover="return searchBox.OnSearchSelectShow()"
  106 + onmouseout="return searchBox.OnSearchSelectHide()"
  107 + onkeydown="return searchBox.OnSearchSelectKey(event)">
  108 +<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>
  109 +
  110 +<!-- iframe showing the search results (closed by default) -->
  111 +<div id="MSearchResultsWindow">
  112 +<iframe src="" frameborder="0"
  113 + name="MSearchResults" id="MSearchResults">
  114 +</iframe>
  115 +</div>
  116 +
  117 +
  118 +</body>
  119 +</html>
  1 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 +<html xmlns="http://www.w3.org/1999/xhtml">
  3 +<head>
  4 +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5 +<title>server: Data Fields - Variables</title>
  6 +<link href="tabs.css" rel="stylesheet" type="text/css"/>
  7 +<link href="search/search.css" rel="stylesheet" type="text/css"/>
  8 +<script type="text/javascript" src="search/search.js"></script>
  9 +<link href="navtree.css" rel="stylesheet" type="text/css"/>
  10 +<script type="text/javascript" src="jquery.js"></script>
  11 +<script type="text/javascript" src="navtree.js"></script>
  12 +<script type="text/javascript" src="resize.js"></script>
  13 +<script type="text/javascript">
  14 +$(document).ready(initResizable);
  15 +</script>
  16 +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
  17 +</head>
  18 +<body onload='searchBox.OnSelectItem(0);'>
  19 +<!-- Generated by Doxygen 1.7.3 -->
  20 +<script type="text/javascript"><!--
  21 +var searchBox = new SearchBox("searchBox", "search",false,'Search');
  22 +--></script>
  23 +<div id="top">
  24 +<div id="titlearea">
  25 +<table cellspacing="0" cellpadding="0">
  26 + <tbody>
  27 + <tr style="height: 56px;">
  28 + <td style="padding-left: 0.5em;">
  29 + <div id="projectname">server&#160;<span id="projectnumber">0.0.1</span></div>
  30 + <div id="projectbrief">basicserverinfrastructure</div>
  31 + </td>
  32 + </tr>
  33 + </tbody>
  34 +</table>
  35 +</div>
  36 + <div id="navrow1" class="tabs">
  37 + <ul class="tablist">
  38 + <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  39 + <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  40 + <li><a href="files.html"><span>Files</span></a></li>
  41 + <li id="searchli">
  42 + <div id="MSearchBox" class="MSearchBoxInactive">
  43 + <span class="left">
  44 + <img id="MSearchSelect" src="search/mag_sel.png"
  45 + onmouseover="return searchBox.OnSearchSelectShow()"
  46 + onmouseout="return searchBox.OnSearchSelectHide()"
  47 + alt=""/>
  48 + <input type="text" id="MSearchField" value="Search" accesskey="S"
  49 + onfocus="searchBox.OnSearchFieldFocus(true)"
  50 + onblur="searchBox.OnSearchFieldFocus(false)"
  51 + onkeyup="searchBox.OnSearchFieldChange(event)"/>
  52 + </span><span class="right">
  53 + <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  54 + </span>
  55 + </div>
  56 + </li>
  57 + </ul>
  58 + </div>
  59 + <div id="navrow2" class="tabs2">
  60 + <ul class="tablist">
  61 + <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  62 + <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
  63 + <li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
  64 + </ul>
  65 + </div>
  66 + <div id="navrow3" class="tabs2">
  67 + <ul class="tablist">
  68 + <li><a href="functions.html"><span>All</span></a></li>
  69 + <li><a href="functions_func.html"><span>Functions</span></a></li>
  70 + <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
  71 + </ul>
  72 + </div>
  73 + <div id="navrow4" class="tabs3">
  74 + <ul class="tablist">
  75 + <li><a href="#index__"><span>_</span></a></li>
  76 + <li><a href="#index_b"><span>b</span></a></li>
  77 + <li><a href="#index_c"><span>c</span></a></li>
  78 + <li><a href="#index_d"><span>d</span></a></li>
  79 + <li><a href="#index_h"><span>h</span></a></li>
  80 + <li><a href="#index_i"><span>i</span></a></li>
  81 + <li><a href="#index_l"><span>l</span></a></li>
  82 + <li><a href="#index_m"><span>m</span></a></li>
  83 + <li><a href="#index_n"><span>n</span></a></li>
  84 + <li><a href="#index_o"><span>o</span></a></li>
  85 + <li><a href="#index_p"><span>p</span></a></li>
  86 + <li><a href="#index_r"><span>r</span></a></li>
  87 + <li><a href="#index_s"><span>s</span></a></li>
  88 + <li><a href="#index_u"><span>u</span></a></li>
  89 + <li><a href="#index_v"><span>v</span></a></li>
  90 + <li><a href="#index_w"><span>w</span></a></li>
  91 + </ul>
  92 + </div>
  93 +</div>
  94 +<div id="side-nav" class="ui-resizable side-nav-resizable">
  95 + <div id="nav-tree">
  96 + <div id="nav-tree-contents">
  97 + </div>
  98 + </div>
  99 + <div id="splitbar" style="-moz-user-select:none;"
  100 + class="ui-resizable-handle">
  101 + </div>
  102 +</div>
  103 +<script type="text/javascript">
  104 + initNavTree('functions.html','');
  105 +</script>
  106 +<div id="doc-content">
  107 +<div class="contents">
  108 +&#160;
  109 +
  110 +<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
  111 +<li>_
  112 +: <a class="el" href="structi__Class.html#a988da6337fdaa9c14010c864c628555c">i_Class</a>
  113 +, <a class="el" href="structi__StreamReader.html#ac1a75d5e8f7932c13f1575805f097a4a">i_StreamReader</a>
  114 +, <a class="el" href="structi__Logger.html#a4e6025014bd73827bbb1c3e3dd571160">i_Logger</a>
  115 +</li>
  116 +</ul>
  117 +
  118 +
  119 +<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
  120 +<li>body
  121 +: <a class="el" href="structHttpRequest.html#a4064a72196787ee73d246b117de2a7ef">HttpRequest</a>
  122 +</li>
  123 +<li>buffer
  124 +: <a class="el" href="structHttpRequestParser.html#a6c93a89e984f6ee2c7f52bfa281c2f94">HttpRequestParser</a>
  125 +</li>
  126 +<li>buffer_size
  127 +: <a class="el" href="structHttpRequestParser.html#aa969bc054c7215c626abecdc2b0e4b31">HttpRequestParser</a>
  128 +</li>
  129 +<li>buffer_used
  130 +: <a class="el" href="structHttpRequestParser.html#a8c978afebc23adea883f35699d0b1421">HttpRequestParser</a>
  131 +</li>
  132 +</ul>
  133 +
  134 +
  135 +<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
  136 +<li>clone
  137 +: <a class="el" href="structi__Class.html#ad3af0db4f258c8af23f62e14283bff43">i_Class</a>
  138 +</li>
  139 +<li>conns
  140 +: <a class="el" href="structServer.html#a269c01ae6736206cdd9a5e1d5ad2398b">Server</a>
  141 +</li>
  142 +<li>ctor
  143 +: <a class="el" href="structi__Class.html#ace20a21c57a14d2846cfd061002970f4">i_Class</a>
  144 +</li>
  145 +</ul>
  146 +
  147 +
  148 +<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
  149 +<li>done
  150 +: <a class="el" href="structHttpRequest.html#a3cda82352767cf9f1c2a665ec2638a70">HttpRequest</a>
  151 +</li>
  152 +<li>dtor
  153 +: <a class="el" href="structi__Class.html#aced52ce163499af9cc7de1ae979e0ee2">i_Class</a>
  154 +</li>
  155 +</ul>
  156 +
  157 +
  158 +<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
  159 +<li>handle
  160 +: <a class="el" href="structSock.html#a1b5945aef923a906501d7abac82449c3">Sock</a>
  161 +</li>
  162 +<li>header
  163 +: <a class="el" href="structHttpRequest.html#ab0abc660d76e3b9a169bddd4a92ffd52">HttpRequest</a>
  164 +</li>
  165 +<li>http_version
  166 +: <a class="el" href="structHttpRequest.html#ab9bfe4f569e5cbcbf49d4b8377d254a2">HttpRequest</a>
  167 +</li>
  168 +</ul>
  169 +
  170 +
  171 +<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
  172 +<li>impl
  173 +: <a class="el" href="structiface__impl.html#a4f3e0d7f7bbd7e3f98472a140c37c1ea">iface_impl</a>
  174 +</li>
  175 +<li>init
  176 +: <a class="el" href="structclass.html#a744967ad02b74a9464c1224c7fa05b23">class</a>
  177 +</li>
  178 +</ul>
  179 +
  180 +
  181 +<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
  182 +<li>log
  183 +: <a class="el" href="structi__Logger.html#ac8380d02d5fb624d46df64e0c8a4e236">i_Logger</a>
  184 +, <a class="el" href="structSock.html#a7441b6368f3e778b5da7554a4f5a7eb6">Sock</a>
  185 +</li>
  186 +<li>logger
  187 +: <a class="el" href="structServer.html#ab50b5b20130564ba7e9a12032070882f">Server</a>
  188 +</li>
  189 +</ul>
  190 +
  191 +
  192 +<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
  193 +<li>magic
  194 +: <a class="el" href="structclass.html#a395a6874758c92188945df7c070f5ff1">class</a>
  195 +</li>
  196 +<li>method
  197 +: <a class="el" href="structHttpRequest.html#a266c616e67dea85335c9fcfca6e5c0cb">HttpRequest</a>
  198 +</li>
  199 +<li>min_level
  200 +: <a class="el" href="structLogger.html#ae0e2ee030c14c5ef01dc0d1568c6fd3f">Logger</a>
  201 +</li>
  202 +</ul>
  203 +
  204 +
  205 +<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
  206 +<li>name
  207 +: <a class="el" href="structHttpRequest.html#a6b66dcc28e31a61cc2f9f0b462f6ea18">HttpRequest</a>
  208 +, <a class="el" href="structinterface.html#aee0f8e8ed8b404d358a6da91196da0d9">interface</a>
  209 +</li>
  210 +<li>ndel
  211 +: <a class="el" href="structServer.html#a88eb6b108b1d22967076fc1d9e21c4d4">Server</a>
  212 +</li>
  213 +<li>nfds
  214 +: <a class="el" href="structServer.html#a156e386a6d4c73e6233531706a091fb3">Server</a>
  215 +</li>
  216 +<li>nimpl
  217 +: <a class="el" href="structiface__impl.html#af2eaa008e863bdef373ed0c6fa26722b">iface_impl</a>
  218 +</li>
  219 +<li>nmethods
  220 +: <a class="el" href="structinterface.html#a7efc08a40bdff0c29b10594c7148168f">interface</a>
  221 +</li>
  222 +<li>nrequests
  223 +: <a class="el" href="structHttpRequestQueue.html#a2bd08c36442f90e82b29b09f54a08682">HttpRequestQueue</a>
  224 +</li>
  225 +</ul>
  226 +
  227 +
  228 +<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
  229 +<li>object_size
  230 +: <a class="el" href="structclass.html#a31f0b35f94229885e948d55bac214c0d">class</a>
  231 +</li>
  232 +</ul>
  233 +
  234 +
  235 +<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
  236 +<li>parent
  237 +: <a class="el" href="structclass.html#a97f697cb86be7a39d4477e971074ae6e">class</a>
  238 +</li>
  239 +<li>port
  240 +: <a class="el" href="structSock.html#a29ba0820a4596f40009a514d7cb82f39">Sock</a>
  241 +</li>
  242 +</ul>
  243 +
  244 +
  245 +<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
  246 +<li>rbuf
  247 +: <a class="el" href="structServer.html#a898e067058a6db3a8d5cf3968fc79c8a">Server</a>
  248 +</li>
  249 +<li>read
  250 +: <a class="el" href="structi__StreamReader.html#ae27c6977fb19bd1199316d8724b1c693">i_StreamReader</a>
  251 +</li>
  252 +<li>reader
  253 +: <a class="el" href="structServer.html#a241c1cbc117f318453934fa10c2c4a23">Server</a>
  254 +</li>
  255 +<li>request_queue
  256 +: <a class="el" href="structHttpRequestParser.html#a5106282e74d88ab2238d5a1e11e1877a">HttpRequestParser</a>
  257 +</li>
  258 +<li>requests
  259 +: <a class="el" href="structHttpRequestQueue.html#a9413ed3fe003274c47618adde5335164">HttpRequestQueue</a>
  260 +</li>
  261 +<li>rpos
  262 +: <a class="el" href="structServer.html#af39a8d40450b5c6a947be2c1a95c0943">Server</a>
  263 +</li>
  264 +</ul>
  265 +
  266 +
  267 +<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
  268 +<li>simpl
  269 +: <a class="el" href="structiface__impl.html#a9ee4589aed892fb213117b692e63e302">iface_impl</a>
  270 +</li>
  271 +<li>sock
  272 +: <a class="el" href="structServer.html#a4cdc9c048a3a1846683fdedc2269c0f8">Server</a>
  273 +</li>
  274 +<li>state
  275 +: <a class="el" href="structHttpRequestParser.html#a8b0173db304820355cc8764e57cc5b63">HttpRequestParser</a>
  276 +</li>
  277 +</ul>
  278 +
  279 +
  280 +<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
  281 +<li>uri
  282 +: <a class="el" href="structHttpRequest.html#a3f880540d72ba70d88f8a312b256b7c9">HttpRequest</a>
  283 +</li>
  284 +</ul>
  285 +
  286 +
  287 +<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
  288 +<li>value
  289 +: <a class="el" href="structHttpRequest.html#a333e4fbf77305e59196c2ebd59cf6b65">HttpRequest</a>
  290 +</li>
  291 +</ul>
  292 +
  293 +
  294 +<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
  295 +<li>wbuf
  296 +: <a class="el" href="structServer.html#a8914561393eb8d570a2cfb5348b6aeb7">Server</a>
  297 +</li>
  298 +<li>wpos
  299 +: <a class="el" href="structServer.html#a95e4cdf2ef584a6709f794d58d9190b3">Server</a>
  300 +</li>
  301 +</ul>
  302 +</div>
  303 +</div>
  304 + <div id="nav-path" class="navpath">
  305 + <ul>
  306 + <li class="footer">Generated on Wed Feb 8 2012 13:04:40 for server by&#160;
  307 +<a href="http://www.doxygen.org/index.html">
  308 +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
  309 + </ul>
  310 + </div>
  311 +<!--- window showing the filter options -->
  312 +<div id="MSearchSelectWindow"
  313 + onmouseover="return searchBox.OnSearchSelectShow()"
  314 + onmouseout="return searchBox.OnSearchSelectHide()"
  315 + onkeydown="return searchBox.OnSearchSelectKey(event)">
  316 +<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>
  317 +
  318 +<!-- iframe showing the search results (closed by default) -->
  319 +<div id="MSearchResultsWindow">
  320 +<iframe src="" frameborder="0"
  321 + name="MSearchResults" id="MSearchResults">
  322 +</iframe>
  323 +</div>
  324 +
  325 +
  326 +</body>
  327 +</html>
Please register or login to post a comment