<!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.3.1"/> <title>xrootd: XrdCl::PostMaster Class Reference</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="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">xrootd </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.3.1 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="namespaceXrdCl.html">XrdCl</a></li><li class="navelem"><a class="el" href="classXrdCl_1_1PostMaster.html">PostMaster</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pri-types">Private Types</a> | <a href="#pri-methods">Private Member Functions</a> | <a href="#pri-attribs">Private Attributes</a> | <a href="classXrdCl_1_1PostMaster-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">XrdCl::PostMaster Class Reference</div> </div> </div><!--header--> <div class="contents"> <p>A hub for dispatching and receiving messages. <a href="classXrdCl_1_1PostMaster.html#details">More...</a></p> <p><code>#include <<a class="el" href="XrdClPostMaster_8hh_source.html">XrdClPostMaster.hh</a>></code></p> <div class="dynheader"> Collaboration diagram for XrdCl::PostMaster:</div> <div class="dyncontent"> <div class="center"><img src="classXrdCl_1_1PostMaster__coll__graph.png" border="0" usemap="#XrdCl_1_1PostMaster_coll__map" alt="Collaboration graph"/></div> <map name="XrdCl_1_1PostMaster_coll__map" id="XrdCl_1_1PostMaster_coll__map"> <area shape="rect" id="node2" href="classXrdSysMutex.html" title="XrdSysMutex" alt="" coords="20,5,121,32"/></map> <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:a9f077449e9e891d392c301c86999224b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1PostMaster.html#a9f077449e9e891d392c301c86999224b">PostMaster</a> ()</td></tr> <tr class="memdesc:a9f077449e9e891d392c301c86999224b"><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a9f077449e9e891d392c301c86999224b">More...</a><br/></td></tr> <tr class="separator:a9f077449e9e891d392c301c86999224b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a743f81c405cc25e5614dc0e6d58cb3e9"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1PostMaster.html#a743f81c405cc25e5614dc0e6d58cb3e9">~PostMaster</a> ()</td></tr> <tr class="memdesc:a743f81c405cc25e5614dc0e6d58cb3e9"><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="#a743f81c405cc25e5614dc0e6d58cb3e9">More...</a><br/></td></tr> <tr class="separator:a743f81c405cc25e5614dc0e6d58cb3e9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:affa7a2c911bb0281dd78570202d41d02"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1PostMaster.html#affa7a2c911bb0281dd78570202d41d02">Initialize</a> ()</td></tr> <tr class="memdesc:affa7a2c911bb0281dd78570202d41d02"><td class="mdescLeft"> </td><td class="mdescRight">Initializer. <a href="#affa7a2c911bb0281dd78570202d41d02">More...</a><br/></td></tr> <tr class="separator:affa7a2c911bb0281dd78570202d41d02"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4fe40812cad601f82068410f2a6294a9"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1PostMaster.html#a4fe40812cad601f82068410f2a6294a9">Finalize</a> ()</td></tr> <tr class="memdesc:a4fe40812cad601f82068410f2a6294a9"><td class="mdescLeft"> </td><td class="mdescRight">Finalizer. <a href="#a4fe40812cad601f82068410f2a6294a9">More...</a><br/></td></tr> <tr class="separator:a4fe40812cad601f82068410f2a6294a9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4a63db4411ea857f94213b21198f386c"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1PostMaster.html#a4a63db4411ea857f94213b21198f386c">Start</a> ()</td></tr> <tr class="memdesc:a4a63db4411ea857f94213b21198f386c"><td class="mdescLeft"> </td><td class="mdescRight">Start the post master. <a href="#a4a63db4411ea857f94213b21198f386c">More...</a><br/></td></tr> <tr class="separator:a4a63db4411ea857f94213b21198f386c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a58c68526f35ea2f5de16e22071960f8d"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1PostMaster.html#a58c68526f35ea2f5de16e22071960f8d">Stop</a> ()</td></tr> <tr class="memdesc:a58c68526f35ea2f5de16e22071960f8d"><td class="mdescLeft"> </td><td class="mdescRight">Stop the postmaster. <a href="#a58c68526f35ea2f5de16e22071960f8d">More...</a><br/></td></tr> <tr class="separator:a58c68526f35ea2f5de16e22071960f8d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5f8a3733ed408e3fc8196d980cd5d72f"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1PostMaster.html#a5f8a3733ed408e3fc8196d980cd5d72f">Reinitialize</a> ()</td></tr> <tr class="memdesc:a5f8a3733ed408e3fc8196d980cd5d72f"><td class="mdescLeft"> </td><td class="mdescRight">Reinitialize after fork. <a href="#a5f8a3733ed408e3fc8196d980cd5d72f">More...</a><br/></td></tr> <tr class="separator:a5f8a3733ed408e3fc8196d980cd5d72f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af4017e53331ccc19416111d97d051605"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structXrdCl_1_1Status.html">Status</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1PostMaster.html#af4017e53331ccc19416111d97d051605">Send</a> (const <a class="el" href="classXrdCl_1_1URL.html">URL</a> &url, <a class="el" href="classXrdCl_1_1Message.html">Message</a> *msg, bool stateful, time_t expires)</td></tr> <tr class="separator:af4017e53331ccc19416111d97d051605"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a84adbbbad53c684a41b58301de7e904b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structXrdCl_1_1Status.html">Status</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1PostMaster.html#a84adbbbad53c684a41b58301de7e904b">Send</a> (const <a class="el" href="classXrdCl_1_1URL.html">URL</a> &url, <a class="el" href="classXrdCl_1_1Message.html">Message</a> *msg, <a class="el" href="classXrdCl_1_1OutgoingMsgHandler.html">OutgoingMsgHandler</a> *handler, bool stateful, time_t expires)</td></tr> <tr class="separator:a84adbbbad53c684a41b58301de7e904b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3219bbdf2e3a6a9392280070c79b551c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structXrdCl_1_1Status.html">Status</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1PostMaster.html#a3219bbdf2e3a6a9392280070c79b551c">Receive</a> (const <a class="el" href="classXrdCl_1_1URL.html">URL</a> &url, <a class="el" href="classXrdCl_1_1Message.html">Message</a> *&msg, <a class="el" href="classXrdCl_1_1MessageFilter.html">MessageFilter</a> *filter, time_t expires)</td></tr> <tr class="separator:a3219bbdf2e3a6a9392280070c79b551c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abf074c7fa1d23edd3a250c8df21e9495"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structXrdCl_1_1Status.html">Status</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1PostMaster.html#abf074c7fa1d23edd3a250c8df21e9495">Receive</a> (const <a class="el" href="classXrdCl_1_1URL.html">URL</a> &url, <a class="el" href="classXrdCl_1_1IncomingMsgHandler.html">IncomingMsgHandler</a> *handler, time_t expires)</td></tr> <tr class="separator:abf074c7fa1d23edd3a250c8df21e9495"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abffde9dd042330078d71a326f8ce84ac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structXrdCl_1_1Status.html">Status</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1PostMaster.html#abffde9dd042330078d71a326f8ce84ac">QueryTransport</a> (const <a class="el" href="classXrdCl_1_1URL.html">URL</a> &url, uint16_t query, <a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &result)</td></tr> <tr class="separator:abffde9dd042330078d71a326f8ce84ac"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad3f41d938a61bc4e513a97daa97bd439"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structXrdCl_1_1Status.html">Status</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1PostMaster.html#ad3f41d938a61bc4e513a97daa97bd439">RegisterEventHandler</a> (const <a class="el" href="classXrdCl_1_1URL.html">URL</a> &url, <a class="el" href="classXrdCl_1_1ChannelEventHandler.html">ChannelEventHandler</a> *handler)</td></tr> <tr class="memdesc:ad3f41d938a61bc4e513a97daa97bd439"><td class="mdescLeft"> </td><td class="mdescRight">Register channel event handler. <a href="#ad3f41d938a61bc4e513a97daa97bd439">More...</a><br/></td></tr> <tr class="separator:ad3f41d938a61bc4e513a97daa97bd439"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a934055676c06b5a0e642b8bdd9ed51d0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structXrdCl_1_1Status.html">Status</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1PostMaster.html#a934055676c06b5a0e642b8bdd9ed51d0">RemoveEventHandler</a> (const <a class="el" href="classXrdCl_1_1URL.html">URL</a> &url, <a class="el" href="classXrdCl_1_1ChannelEventHandler.html">ChannelEventHandler</a> *handler)</td></tr> <tr class="memdesc:a934055676c06b5a0e642b8bdd9ed51d0"><td class="mdescLeft"> </td><td class="mdescRight">Remove a channel event handler. <a href="#a934055676c06b5a0e642b8bdd9ed51d0">More...</a><br/></td></tr> <tr class="separator:a934055676c06b5a0e642b8bdd9ed51d0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aacf8bbf29e008d619b62a523d1637331"><td class="memItemLeft" align="right" valign="top">TaskManager * </td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1PostMaster.html#aacf8bbf29e008d619b62a523d1637331">GetTaskManager</a> ()</td></tr> <tr class="memdesc:aacf8bbf29e008d619b62a523d1637331"><td class="mdescLeft"> </td><td class="mdescRight">Get the task manager object user by the post master. <a href="#aacf8bbf29e008d619b62a523d1637331">More...</a><br/></td></tr> <tr class="separator:aacf8bbf29e008d619b62a523d1637331"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3d4272dd17e4cd26a8434a00608d7167"><td class="memItemLeft" align="right" valign="top">JobManager * </td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1PostMaster.html#a3d4272dd17e4cd26a8434a00608d7167">GetJobManager</a> ()</td></tr> <tr class="memdesc:a3d4272dd17e4cd26a8434a00608d7167"><td class="mdescLeft"> </td><td class="mdescRight">Get the job manager object user by the post master. <a href="#a3d4272dd17e4cd26a8434a00608d7167">More...</a><br/></td></tr> <tr class="separator:a3d4272dd17e4cd26a8434a00608d7167"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-types"></a> Private Types</h2></td></tr> <tr class="memitem:a758f52eeee6d68eca9d72bb174eb4bae"><td class="memItemLeft" align="right" valign="top">typedef std::map< std::string, <br class="typebreak"/> Channel * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1PostMaster.html#a758f52eeee6d68eca9d72bb174eb4bae">ChannelMap</a></td></tr> <tr class="separator:a758f52eeee6d68eca9d72bb174eb4bae"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a> Private Member Functions</h2></td></tr> <tr class="memitem:a67ae577adb5daaab0c3da186c27264d0"><td class="memItemLeft" align="right" valign="top">Channel * </td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1PostMaster.html#a67ae577adb5daaab0c3da186c27264d0">GetChannel</a> (const <a class="el" href="classXrdCl_1_1URL.html">URL</a> &url)</td></tr> <tr class="separator:a67ae577adb5daaab0c3da186c27264d0"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a> Private Attributes</h2></td></tr> <tr class="memitem:ae10a326cabb16ee3403f435398e82548"><td class="memItemLeft" align="right" valign="top">Poller * </td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1PostMaster.html#ae10a326cabb16ee3403f435398e82548">pPoller</a></td></tr> <tr class="separator:ae10a326cabb16ee3403f435398e82548"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a37c3e57b93e13166dac713b7c55bdc72"><td class="memItemLeft" align="right" valign="top">TaskManager * </td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1PostMaster.html#a37c3e57b93e13166dac713b7c55bdc72">pTaskManager</a></td></tr> <tr class="separator:a37c3e57b93e13166dac713b7c55bdc72"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad2b175dd0d5ba03b0298074ce8b1b71a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classXrdCl_1_1PostMaster.html#a758f52eeee6d68eca9d72bb174eb4bae">ChannelMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1PostMaster.html#ad2b175dd0d5ba03b0298074ce8b1b71a">pChannelMap</a></td></tr> <tr class="separator:ad2b175dd0d5ba03b0298074ce8b1b71a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abc1651814716fd4316aa9165328f2b7b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classXrdSysMutex.html">XrdSysMutex</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1PostMaster.html#abc1651814716fd4316aa9165328f2b7b">pChannelMapMutex</a></td></tr> <tr class="separator:abc1651814716fd4316aa9165328f2b7b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abcd22a335f38d0e87233271dab266f1a"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1PostMaster.html#abcd22a335f38d0e87233271dab266f1a">pInitialized</a></td></tr> <tr class="separator:abcd22a335f38d0e87233271dab266f1a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9203acb41c225fd0d10c6d3449d4a87f"><td class="memItemLeft" align="right" valign="top">JobManager * </td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1PostMaster.html#a9203acb41c225fd0d10c6d3449d4a87f">pJobManager</a></td></tr> <tr class="separator:a9203acb41c225fd0d10c6d3449d4a87f"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>A hub for dispatching and receiving messages. </p> </div><h2 class="groupheader">Member Typedef Documentation</h2> <a class="anchor" id="a758f52eeee6d68eca9d72bb174eb4bae"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">typedef std::map<std::string, Channel*> <a class="el" href="classXrdCl_1_1PostMaster.html#a758f52eeee6d68eca9d72bb174eb4bae">XrdCl::PostMaster::ChannelMap</a></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <h2 class="groupheader">Constructor & Destructor Documentation</h2> <a class="anchor" id="a9f077449e9e891d392c301c86999224b"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">XrdCl::PostMaster::PostMaster </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Constructor. </p> </div> </div> <a class="anchor" id="a743f81c405cc25e5614dc0e6d58cb3e9"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual XrdCl::PostMaster::~PostMaster </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Destructor. </p> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="a4fe40812cad601f82068410f2a6294a9"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool XrdCl::PostMaster::Finalize </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Finalizer. </p> </div> </div> <a class="anchor" id="a67ae577adb5daaab0c3da186c27264d0"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">Channel* XrdCl::PostMaster::GetChannel </td> <td>(</td> <td class="paramtype">const <a class="el" href="classXrdCl_1_1URL.html">URL</a> & </td> <td class="paramname"><em>url</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a3d4272dd17e4cd26a8434a00608d7167"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">JobManager* XrdCl::PostMaster::GetJobManager </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Get the job manager object user by the post master. </p> <p>References <a class="el" href="classXrdCl_1_1PostMaster.html#a9203acb41c225fd0d10c6d3449d4a87f">pJobManager</a>.</p> </div> </div> <a class="anchor" id="aacf8bbf29e008d619b62a523d1637331"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">TaskManager* XrdCl::PostMaster::GetTaskManager </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Get the task manager object user by the post master. </p> <p>References <a class="el" href="classXrdCl_1_1PostMaster.html#a37c3e57b93e13166dac713b7c55bdc72">pTaskManager</a>.</p> </div> </div> <a class="anchor" id="affa7a2c911bb0281dd78570202d41d02"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool XrdCl::PostMaster::Initialize </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Initializer. </p> </div> </div> <a class="anchor" id="abffde9dd042330078d71a326f8ce84ac"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structXrdCl_1_1Status.html">Status</a> XrdCl::PostMaster::QueryTransport </td> <td>(</td> <td class="paramtype">const <a class="el" href="classXrdCl_1_1URL.html">URL</a> & </td> <td class="paramname"><em>url</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint16_t </td> <td class="paramname"><em>query</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> & </td> <td class="paramname"><em>result</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Query the transport handler for a given <a class="el" href="classXrdCl_1_1URL.html" title="URL representation.">URL</a></p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">url</td><td>the channel to be queried </td></tr> <tr><td class="paramname">query</td><td>the query as defined in the <a class="el" href="structXrdCl_1_1TransportQuery.html">TransportQuery</a> struct or others that may be recognized by the protocol transport </td></tr> <tr><td class="paramname">result</td><td>the result of the query </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>status of the query </dd></dl> </div> </div> <a class="anchor" id="a3219bbdf2e3a6a9392280070c79b551c"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structXrdCl_1_1Status.html">Status</a> XrdCl::PostMaster::Receive </td> <td>(</td> <td class="paramtype">const <a class="el" href="classXrdCl_1_1URL.html">URL</a> & </td> <td class="paramname"><em>url</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classXrdCl_1_1Message.html">Message</a> *& </td> <td class="paramname"><em>msg</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classXrdCl_1_1MessageFilter.html">MessageFilter</a> * </td> <td class="paramname"><em>filter</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">time_t </td> <td class="paramname"><em>expires</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Synchronously receive a message - blocks until a message matching a filter is found in the incoming queue or the timeout passes</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">url</td><td>sender of the message </td></tr> <tr><td class="paramname">msg</td><td>reference to a message pointer, the pointer will point to the received message </td></tr> <tr><td class="paramname">filter</td><td>filter object defining what to look for </td></tr> <tr><td class="paramname">expires</td><td>expiration timestamp </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>success when the message has been received successfully, failure otherwise </dd></dl> </div> </div> <a class="anchor" id="abf074c7fa1d23edd3a250c8df21e9495"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structXrdCl_1_1Status.html">Status</a> XrdCl::PostMaster::Receive </td> <td>(</td> <td class="paramtype">const <a class="el" href="classXrdCl_1_1URL.html">URL</a> & </td> <td class="paramname"><em>url</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classXrdCl_1_1IncomingMsgHandler.html">IncomingMsgHandler</a> * </td> <td class="paramname"><em>handler</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">time_t </td> <td class="paramname"><em>expires</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Listen to incoming messages, the listener is notified when a new message arrives and when the timeout passes</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">url</td><td>sender of the message </td></tr> <tr><td class="paramname">handler</td><td>handler to be notified about new messages </td></tr> <tr><td class="paramname">expires</td><td>expiration timestamp </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>success when the listener has been inserted correctly </dd></dl> </div> </div> <a class="anchor" id="ad3f41d938a61bc4e513a97daa97bd439"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structXrdCl_1_1Status.html">Status</a> XrdCl::PostMaster::RegisterEventHandler </td> <td>(</td> <td class="paramtype">const <a class="el" href="classXrdCl_1_1URL.html">URL</a> & </td> <td class="paramname"><em>url</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classXrdCl_1_1ChannelEventHandler.html">ChannelEventHandler</a> * </td> <td class="paramname"><em>handler</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Register channel event handler. </p> </div> </div> <a class="anchor" id="a5f8a3733ed408e3fc8196d980cd5d72f"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool XrdCl::PostMaster::Reinitialize </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Reinitialize after fork. </p> </div> </div> <a class="anchor" id="a934055676c06b5a0e642b8bdd9ed51d0"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structXrdCl_1_1Status.html">Status</a> XrdCl::PostMaster::RemoveEventHandler </td> <td>(</td> <td class="paramtype">const <a class="el" href="classXrdCl_1_1URL.html">URL</a> & </td> <td class="paramname"><em>url</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classXrdCl_1_1ChannelEventHandler.html">ChannelEventHandler</a> * </td> <td class="paramname"><em>handler</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Remove a channel event handler. </p> </div> </div> <a class="anchor" id="af4017e53331ccc19416111d97d051605"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structXrdCl_1_1Status.html">Status</a> XrdCl::PostMaster::Send </td> <td>(</td> <td class="paramtype">const <a class="el" href="classXrdCl_1_1URL.html">URL</a> & </td> <td class="paramname"><em>url</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classXrdCl_1_1Message.html">Message</a> * </td> <td class="paramname"><em>msg</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>stateful</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">time_t </td> <td class="paramname"><em>expires</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Send a message synchronously - synchronously means that it will block until the message is written to a socket</p> <p>DEADLOCK WARNING: no lock should be taken while calling this method that are used in the callback as well.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">url</td><td>recipient of the message </td></tr> <tr><td class="paramname">msg</td><td>message to be sent </td></tr> <tr><td class="paramname">statful</td><td>physical stream disconnection causes an error </td></tr> <tr><td class="paramname">expires</td><td>unix timestamp after which a failure should be reported if sending was unsuccessful </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>success if the message has been pushed through the wire, failure otherwise </dd></dl> </div> </div> <a class="anchor" id="a84adbbbad53c684a41b58301de7e904b"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structXrdCl_1_1Status.html">Status</a> XrdCl::PostMaster::Send </td> <td>(</td> <td class="paramtype">const <a class="el" href="classXrdCl_1_1URL.html">URL</a> & </td> <td class="paramname"><em>url</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classXrdCl_1_1Message.html">Message</a> * </td> <td class="paramname"><em>msg</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classXrdCl_1_1OutgoingMsgHandler.html">OutgoingMsgHandler</a> * </td> <td class="paramname"><em>handler</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>stateful</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">time_t </td> <td class="paramname"><em>expires</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Send the message asynchronously - the message is inserted into the send queue and a listener is called when the message is succesfsully pushed through the wire or when the timeout elapses</p> <p>DEADLOCK WARNING: no lock should be taken while calling this method that are used in the callback as well.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">url</td><td>recipient of the message </td></tr> <tr><td class="paramname">msg</td><td>message to be sent </td></tr> <tr><td class="paramname">expires</td><td>unix timestamp after which a failure is reported to the handler </td></tr> <tr><td class="paramname">handler</td><td>handler will be notified about the status </td></tr> <tr><td class="paramname">stateful</td><td>physical stream disconnection causes an error </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>success if the message was successfully inserted into the send queues, failure otherwise </dd></dl> </div> </div> <a class="anchor" id="a4a63db4411ea857f94213b21198f386c"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool XrdCl::PostMaster::Start </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Start the post master. </p> </div> </div> <a class="anchor" id="a58c68526f35ea2f5de16e22071960f8d"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool XrdCl::PostMaster::Stop </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Stop the postmaster. </p> </div> </div> <h2 class="groupheader">Member Data Documentation</h2> <a class="anchor" id="ad2b175dd0d5ba03b0298074ce8b1b71a"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classXrdCl_1_1PostMaster.html#a758f52eeee6d68eca9d72bb174eb4bae">ChannelMap</a> XrdCl::PostMaster::pChannelMap</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="abc1651814716fd4316aa9165328f2b7b"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classXrdSysMutex.html">XrdSysMutex</a> XrdCl::PostMaster::pChannelMapMutex</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="abcd22a335f38d0e87233271dab266f1a"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool XrdCl::PostMaster::pInitialized</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a9203acb41c225fd0d10c6d3449d4a87f"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">JobManager* XrdCl::PostMaster::pJobManager</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Referenced by <a class="el" href="classXrdCl_1_1PostMaster.html#a3d4272dd17e4cd26a8434a00608d7167">GetJobManager()</a>.</p> </div> </div> <a class="anchor" id="ae10a326cabb16ee3403f435398e82548"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">Poller* XrdCl::PostMaster::pPoller</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a37c3e57b93e13166dac713b7c55bdc72"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">TaskManager* XrdCl::PostMaster::pTaskManager</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Referenced by <a class="el" href="classXrdCl_1_1PostMaster.html#aacf8bbf29e008d619b62a523d1637331">GetTaskManager()</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="XrdClPostMaster_8hh_source.html">XrdClPostMaster.hh</a></li> </ul> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.3.1 </small></address> </body> </html>