1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3 <title>InspIRCd: Request Class Reference</title>
4 <link href="inspircd.doxygen.css" rel="stylesheet" type="text/css">
6 <!-- Generated by Doxygen 1.4.4-20050815 -->
7 <div class="qindex"><a class="qindex" href="main.html">Main Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a></div>
8 <h1>Request Class Reference</h1><!-- doxytag: class="Request" --><!-- doxytag: inherits="ModuleMessage" -->The Request class is a unicast message directed at a given module.
9 <a href="#_details">More...</a>
11 <code>#include <<a class="el" href="modules_8h-source.html">modules.h</a>></code>
13 Inheritance diagram for Request:<p><center><img src="classRequest__inherit__graph.gif" border="0" usemap="#Request__inherit__map" alt="Inheritance graph"></center>
14 <map name="Request__inherit__map">
15 <area href="classModuleMessage.html" shape="rect" coords="7,81,127,108" alt="">
16 <area href="classclassbase.html" shape="rect" coords="27,7,107,33" alt="">
18 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for Request:<p><center><img src="classRequest__coll__graph.gif" border="0" usemap="#Request__coll__map" alt="Collaboration graph"></center>
19 <map name="Request__coll__map">
20 <area href="classModuleMessage.html" shape="rect" coords="7,175,127,202" alt="">
21 <area href="classclassbase.html" shape="rect" coords="95,98,175,124" alt="">
22 <area href="classModule.html" shape="rect" coords="151,175,217,202" alt="">
24 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center><a href="classRequest-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
26 <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
27 <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRequest.html#Request_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20Module_20_2Adst_29">Request</a> (char *anydata, <a class="el" href="classModule.html">Module</a> *src, <a class="el" href="classModule.html">Module</a> *dst)</td></tr>
29 <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a new Request. <a href="#Request_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20Module_20_2Adst_29"></a><br></td></tr>
30 <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="classRequest.html#GetData_28_29">GetData</a> ()</td></tr>
32 <tr><td class="mdescLeft"> </td><td class="mdescRight">Fetch the Request data. <a href="#GetData_28_29"></a><br></td></tr>
33 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classModule.html">Module</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classRequest.html#GetSource_28_29">GetSource</a> ()</td></tr>
35 <tr><td class="mdescLeft"> </td><td class="mdescRight">Fetch the request source. <a href="#GetSource_28_29"></a><br></td></tr>
36 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classModule.html">Module</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classRequest.html#GetDest_28_29">GetDest</a> ()</td></tr>
38 <tr><td class="mdescLeft"> </td><td class="mdescRight">Fetch the request destination (should be 'this' in the receiving module). <a href="#GetDest_28_29"></a><br></td></tr>
39 <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="classRequest.html#Send_28_29">Send</a> ()</td></tr>
41 <tr><td class="mdescLeft"> </td><td class="mdescRight">Send the Request. <a href="#Send_28_29"></a><br></td></tr>
42 <tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
43 <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="classRequest.html#data">data</a></td></tr>
45 <tr><td class="mdescLeft"> </td><td class="mdescRight">This member holds a pointer to arbitary data set by the emitter of the message. <a href="#data"></a><br></td></tr>
46 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classModule.html">Module</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classRequest.html#source">source</a></td></tr>
48 <tr><td class="mdescLeft"> </td><td class="mdescRight">This is a pointer to the sender of the message, which can be used to directly trigger events, or to create a reply. <a href="#source"></a><br></td></tr>
49 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classModule.html">Module</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classRequest.html#dest">dest</a></td></tr>
51 <tr><td class="mdescLeft"> </td><td class="mdescRight">The single destination of the Request. <a href="#dest"></a><br></td></tr>
53 <hr><a name="_details"></a><h2>Detailed Description</h2>
54 The Request class is a unicast message directed at a given module.
56 When this class is properly instantiated it may be sent to a module using the <a class="el" href="classRequest.html#Send_28_29">Send()</a> method, which will call the given module's OnRequest method with this class as its parameter.
60 Definition at line <a class="el" href="modules_8h-source.html#l00175">175</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor & Destructor Documentation</h2>
61 <a class="anchor" name="Request_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20Module_20_2Adst_29"></a><!-- doxytag: member="Request::Request" ref="Request_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20Module_20_2Adst_29" args="(char *anydata, Module *src, Module *dst)" --><p>
62 <table class="mdTable" cellpadding="2" cellspacing="0">
65 <table cellpadding="0" cellspacing="0" border="0">
67 <td class="md" nowrap valign="top">Request::Request </td>
68 <td class="md" valign="top">( </td>
69 <td class="md" nowrap valign="top">char * </td>
70 <td class="mdname" nowrap> <em>anydata</em>, </td>
73 <td class="md" nowrap align="right"></td>
75 <td class="md" nowrap><a class="el" href="classModule.html">Module</a> * </td>
76 <td class="mdname" nowrap> <em>src</em>, </td>
79 <td class="md" nowrap align="right"></td>
81 <td class="md" nowrap><a class="el" href="classModule.html">Module</a> * </td>
82 <td class="mdname" nowrap> <em>dst</em></td>
86 <td class="md">) </td>
87 <td class="md" colspan="2"></td>
93 <table cellspacing="5" cellpadding="0" border="0">
101 Create a new Request.
105 Definition at line <a class="el" href="modules_8cpp-source.html#l00164">164</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00164"></a>00164 : <a class="code" href="classRequest.html#data">data</a>(anydata), <a class="code" href="classRequest.html#source">source</a>(src), <a class="code" href="classRequest.html#dest">dest</a>(dst) { };
111 <hr><h2>Member Function Documentation</h2>
112 <a class="anchor" name="GetData_28_29"></a><!-- doxytag: member="Request::GetData" ref="GetData_28_29" args="()" --><p>
113 <table class="mdTable" cellpadding="2" cellspacing="0">
116 <table cellpadding="0" cellspacing="0" border="0">
118 <td class="md" nowrap valign="top">char * Request::GetData </td>
119 <td class="md" valign="top">( </td>
120 <td class="mdname1" valign="top" nowrap> </td>
121 <td class="md" valign="top"> ) </td>
122 <td class="md" nowrap></td>
128 <table cellspacing="5" cellpadding="0" border="0">
136 Fetch the Request data.
140 Definition at line <a class="el" href="modules_8cpp-source.html#l00166">166</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
142 References <a class="el" href="modules_8h-source.html#l00180">data</a>.<div class="fragment"><pre class="fragment"><a name="l00167"></a>00167 {
143 <a name="l00168"></a>00168 <span class="keywordflow">return</span> this-><a class="code" href="classRequest.html#data">data</a>;
144 <a name="l00169"></a>00169 }
150 <a class="anchor" name="GetDest_28_29"></a><!-- doxytag: member="Request::GetDest" ref="GetDest_28_29" args="()" --><p>
151 <table class="mdTable" cellpadding="2" cellspacing="0">
154 <table cellpadding="0" cellspacing="0" border="0">
156 <td class="md" nowrap valign="top"><a class="el" href="classModule.html">Module</a> * Request::GetDest </td>
157 <td class="md" valign="top">( </td>
158 <td class="mdname1" valign="top" nowrap> </td>
159 <td class="md" valign="top"> ) </td>
160 <td class="md" nowrap></td>
166 <table cellspacing="5" cellpadding="0" border="0">
174 Fetch the request destination (should be 'this' in the receiving module).
178 Definition at line <a class="el" href="modules_8cpp-source.html#l00176">176</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
180 References <a class="el" href="modules_8h-source.html#l00187">dest</a>.<div class="fragment"><pre class="fragment"><a name="l00177"></a>00177 {
181 <a name="l00178"></a>00178 <span class="keywordflow">return</span> this-><a class="code" href="classRequest.html#dest">dest</a>;
182 <a name="l00179"></a>00179 }
188 <a class="anchor" name="GetSource_28_29"></a><!-- doxytag: member="Request::GetSource" ref="GetSource_28_29" args="()" --><p>
189 <table class="mdTable" cellpadding="2" cellspacing="0">
192 <table cellpadding="0" cellspacing="0" border="0">
194 <td class="md" nowrap valign="top"><a class="el" href="classModule.html">Module</a> * Request::GetSource </td>
195 <td class="md" valign="top">( </td>
196 <td class="mdname1" valign="top" nowrap> </td>
197 <td class="md" valign="top"> ) </td>
198 <td class="md" nowrap></td>
204 <table cellspacing="5" cellpadding="0" border="0">
212 Fetch the request source.
216 Definition at line <a class="el" href="modules_8cpp-source.html#l00171">171</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
218 References <a class="el" href="modules_8h-source.html#l00184">source</a>.<div class="fragment"><pre class="fragment"><a name="l00172"></a>00172 {
219 <a name="l00173"></a>00173 <span class="keywordflow">return</span> this-><a class="code" href="classRequest.html#source">source</a>;
220 <a name="l00174"></a>00174 }
226 <a class="anchor" name="Send_28_29"></a><!-- doxytag: member="Request::Send" ref="Send_28_29" args="()" --><p>
227 <table class="mdTable" cellpadding="2" cellspacing="0">
230 <table cellpadding="0" cellspacing="0" border="0">
232 <td class="md" nowrap valign="top">char * Request::Send </td>
233 <td class="md" valign="top">( </td>
234 <td class="mdname1" valign="top" nowrap> </td>
235 <td class="md" valign="top"> ) </td>
236 <td class="md" nowrap><code> [virtual]</code></td>
242 <table cellspacing="5" cellpadding="0" border="0">
252 Upon returning the result will be arbitary data returned by the module you sent the request to. It is up to your module to know what this data is and how to deal with it.
254 Implements <a class="el" href="classModuleMessage.html#Send_28_29_3D_30">ModuleMessage</a>.
256 Definition at line <a class="el" href="modules_8cpp-source.html#l00181">181</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
258 References <a class="el" href="modules_8h-source.html#l00187">dest</a>, and <a class="el" href="modules_8cpp-source.html#l00262">Module::OnRequest()</a>.<div class="fragment"><pre class="fragment"><a name="l00182"></a>00182 {
259 <a name="l00183"></a>00183 <span class="keywordflow">if</span> (this->dest)
260 <a name="l00184"></a>00184 {
261 <a name="l00185"></a>00185 <span class="keywordflow">return</span> <a class="code" href="classRequest.html#dest">dest</a>-><a class="code" href="classModule.html#OnRequest_28Request_20_2Arequest_29">OnRequest</a>(<span class="keyword">this</span>);
262 <a name="l00186"></a>00186 }
263 <a name="l00187"></a>00187 <span class="keywordflow">else</span>
264 <a name="l00188"></a>00188 {
265 <a name="l00189"></a>00189 <span class="keywordflow">return</span> NULL;
266 <a name="l00190"></a>00190 }
267 <a name="l00191"></a>00191 }
273 <hr><h2>Member Data Documentation</h2>
274 <a class="anchor" name="data"></a><!-- doxytag: member="Request::data" ref="data" args="" --><p>
275 <table class="mdTable" cellpadding="2" cellspacing="0">
278 <table cellpadding="0" cellspacing="0" border="0">
280 <td class="md" nowrap valign="top">char* <a class="el" href="classRequest.html#data">Request::data</a><code> [protected]</code> </td>
286 <table cellspacing="5" cellpadding="0" border="0">
294 This member holds a pointer to arbitary data set by the emitter of the message.
298 Definition at line <a class="el" href="modules_8h-source.html#l00180">180</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
300 Referenced by <a class="el" href="modules_8cpp-source.html#l00166">GetData()</a>. </td>
303 <a class="anchor" name="dest"></a><!-- doxytag: member="Request::dest" ref="dest" args="" --><p>
304 <table class="mdTable" cellpadding="2" cellspacing="0">
307 <table cellpadding="0" cellspacing="0" border="0">
309 <td class="md" nowrap valign="top"><a class="el" href="classModule.html">Module</a>* <a class="el" href="classRequest.html#dest">Request::dest</a><code> [protected]</code> </td>
315 <table cellspacing="5" cellpadding="0" border="0">
323 The single destination of the Request.
327 Definition at line <a class="el" href="modules_8h-source.html#l00187">187</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
329 Referenced by <a class="el" href="modules_8cpp-source.html#l00176">GetDest()</a>, and <a class="el" href="modules_8cpp-source.html#l00181">Send()</a>. </td>
332 <a class="anchor" name="source"></a><!-- doxytag: member="Request::source" ref="source" args="" --><p>
333 <table class="mdTable" cellpadding="2" cellspacing="0">
336 <table cellpadding="0" cellspacing="0" border="0">
338 <td class="md" nowrap valign="top"><a class="el" href="classModule.html">Module</a>* <a class="el" href="classRequest.html#source">Request::source</a><code> [protected]</code> </td>
344 <table cellspacing="5" cellpadding="0" border="0">
352 This is a pointer to the sender of the message, which can be used to directly trigger events, or to create a reply.
356 Definition at line <a class="el" href="modules_8h-source.html#l00184">184</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
358 Referenced by <a class="el" href="modules_8cpp-source.html#l00171">GetSource()</a>. </td>
361 <hr>The documentation for this class was generated from the following files:<ul>
362 <li><a class="el" href="modules_8h-source.html">modules.h</a><li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
363 <hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by
364 <a href="http://www.doxygen.org/index.html">
365 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>