structthread__args.html
12.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>Socket: Referencia de la Estructura thread_args</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">Socket
</div>
<div id="projectbrief">Librería para comunicar via TCP/IP</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generado por Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Buscar');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Página principal</span></a></li>
<li><a href="pages.html"><span>Páginas relacionadas</span></a></li>
<li class="current"><a href="annotated.html"><span>Clases</span></a></li>
<li><a href="files.html"><span>Archivos</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Buscar" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Lista de clases</span></a></li>
<li><a href="classes.html"><span>Índice de clases</span></a></li>
<li><a href="functions.html"><span>Miembros de las clases</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>Todo</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Clases</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Archivos</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Funciones</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>'defines'</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Páginas</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-attribs">Atributos públicos</a> |
<a href="structthread__args-members.html">Lista de todos los miembros</a> </div>
<div class="headertitle">
<div class="title">Referencia de la Estructura thread_args</div> </div>
</div><!--header-->
<div class="contents">
<p>Argumentos de los threads.
<a href="structthread__args.html#details">Más...</a></p>
<p><code>#include <<a class="el" href="server_8h_source.html">server.h</a>></code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Atributos públicos</h2></td></tr>
<tr class="memitem:ad5d64499f5f6e2df467c96b52a94c520"><td class="memItemLeft" align="right" valign="top">pthread_mutex_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structthread__args.html#ad5d64499f5f6e2df467c96b52a94c520">mutex</a></td></tr>
<tr class="memdesc:ad5d64499f5f6e2df467c96b52a94c520"><td class="mdescLeft"> </td><td class="mdescRight">Variable de control de la exclusión mútua entre threads. <a href="#ad5d64499f5f6e2df467c96b52a94c520">Más...</a><br/></td></tr>
<tr class="separator:ad5d64499f5f6e2df467c96b52a94c520"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a96ee28beaed4175257db3d8794245f25"><td class="memItemLeft" align="right" valign="top">pthread_cond_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structthread__args.html#a96ee28beaed4175257db3d8794245f25">condition</a></td></tr>
<tr class="memdesc:a96ee28beaed4175257db3d8794245f25"><td class="mdescLeft"> </td><td class="mdescRight">Variable de notificación a otros threads. <a href="#a96ee28beaed4175257db3d8794245f25">Más...</a><br/></td></tr>
<tr class="separator:a96ee28beaed4175257db3d8794245f25"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:acdcd2db4307e5e75d5110067e196a70e"><td class="memItemLeft" align="right" valign="top">pthread_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structthread__args.html#acdcd2db4307e5e75d5110067e196a70e">thread</a></td></tr>
<tr class="memdesc:acdcd2db4307e5e75d5110067e196a70e"><td class="mdescLeft"> </td><td class="mdescRight">Puntero al thread. <a href="#acdcd2db4307e5e75d5110067e196a70e">Más...</a><br/></td></tr>
<tr class="separator:acdcd2db4307e5e75d5110067e196a70e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aede3ef61778d02bdf25c368d1cf9d489"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_socket.html">Socket</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structthread__args.html#aede3ef61778d02bdf25c368d1cf9d489">s</a></td></tr>
<tr class="memdesc:aede3ef61778d02bdf25c368d1cf9d489"><td class="mdescLeft"> </td><td class="mdescRight">Puntero al socket. <a href="#aede3ef61778d02bdf25c368d1cf9d489">Más...</a><br/></td></tr>
<tr class="separator:aede3ef61778d02bdf25c368d1cf9d489"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab29508135b033282f374d0fb47028fbd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_server.html">Server</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structthread__args.html#ab29508135b033282f374d0fb47028fbd">serv</a></td></tr>
<tr class="memdesc:ab29508135b033282f374d0fb47028fbd"><td class="mdescLeft"> </td><td class="mdescRight">Puntero al servidor. <a href="#ab29508135b033282f374d0fb47028fbd">Más...</a><br/></td></tr>
<tr class="separator:ab29508135b033282f374d0fb47028fbd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a6322b3468fd88f8f49977a6439e9f352"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structthread__args.html#a6322b3468fd88f8f49977a6439e9f352">id</a></td></tr>
<tr class="memdesc:a6322b3468fd88f8f49977a6439e9f352"><td class="mdescLeft"> </td><td class="mdescRight">ID del thread. <a href="#a6322b3468fd88f8f49977a6439e9f352">Más...</a><br/></td></tr>
<tr class="separator:a6322b3468fd88f8f49977a6439e9f352"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Descripción detallada</h2>
<div class="textblock"><p>Argumentos de los threads. </p>
<p>Este struct define los argumentos que recibe un thread abierto por la aplicación servidor al recibir una conexión entrante </p>
<dl class="section author"><dt>Autor</dt><dd>Imanol Barba Sabariego </dd></dl>
<dl class="section date"><dt>Fecha</dt><dd>11/06/2013 </dd></dl>
</div><h2 class="groupheader">Documentación de los datos miembro</h2>
<a class="anchor" id="a96ee28beaed4175257db3d8794245f25"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">pthread_cond_t* thread_args::condition</td>
</tr>
</table>
</div><div class="memdoc">
<p>Variable de notificación a otros threads. </p>
<p>Esta variable se usa para notificar a otros threads cuando deben realizar otras acciones.</p>
<p>Actualmente se usa para notificar al thread principal cuando el thread que lo invoca ha terminado, en caso de que el principal haya quedado bloqueado y no admita más conexiones.* </p>
</div>
</div>
<a class="anchor" id="a6322b3468fd88f8f49977a6439e9f352"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int thread_args::id</td>
</tr>
</table>
</div><div class="memdoc">
<p>ID del thread. </p>
<p>Identifica al thread con un ID único </p>
</div>
</div>
<a class="anchor" id="ad5d64499f5f6e2df467c96b52a94c520"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">pthread_mutex_t* thread_args::mutex</td>
</tr>
</table>
</div><div class="memdoc">
<p>Variable de control de la exclusión mútua entre threads. </p>
<p>Esta variable se usa para bloquear otros threads en operaciones de exclusion mútua donde se modifican variables compartidas </p>
</div>
</div>
<a class="anchor" id="aede3ef61778d02bdf25c368d1cf9d489"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="class_socket.html">Socket</a>* thread_args::s</td>
</tr>
</table>
</div><div class="memdoc">
<p>Puntero al socket. </p>
<p>Esta variable representa el puntero al socket que proviene de la conexión entrante recibida por el servidor. Con este, el thread puede recibir y enviar los datos. </p>
</div>
</div>
<a class="anchor" id="ab29508135b033282f374d0fb47028fbd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="class_server.html">Server</a>* thread_args::serv</td>
</tr>
</table>
</div><div class="memdoc">
<p>Puntero al servidor. </p>
<p>Esta variable representa el puntero al servidor de la aplicación. Con este puntero, los threads se mueven a la pila de threads terminados una vez terminan la ejecución para que el thread principal (el propio servidor), vaya liberando la memoria asignada. </p>
</div>
</div>
<a class="anchor" id="acdcd2db4307e5e75d5110067e196a70e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">pthread_t* thread_args::thread</td>
</tr>
</table>
</div><div class="memdoc">
<p>Puntero al thread. </p>
<p>Esta variable representa el puntero del propio thread. Al finalizar, este enviará su puntero a la lista de threads terminados, donde la memoria asignada al thread se destruirá. </p>
</div>
</div>
<hr/>La documentación para esta estructura fue generada a partir del siguiente fichero:<ul>
<li>/home/imanol/devel/eclipse/PAD/JChatClient/src/include/<a class="el" href="server_8h_source.html">server.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generado el Sábado, 7 de Diciembre de 2013 03:17:07 para Socket por  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.4
</small></address>
</body>
</html>