| <!-- HTML header for doxygen 1.9.8--> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> |
| <meta http-equiv="X-UA-Compatible" content="IE=11"/> |
| <meta name="generator" content="Doxygen 1.9.8"/> |
| <meta name="viewport" content="width=device-width, initial-scale=1"/> |
| <title>ResilientDB SDK: Connection 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="navtree.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="resize.js"></script> |
| <script type="text/javascript" src="navtreedata.js"></script> |
| <script type="text/javascript" src="navtree.js"></script> |
| <link href="search/search.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="search/searchdata.js"></script> |
| <script type="text/javascript" src="search/search.js"></script> |
| <link href="doxygen.css" rel="stylesheet" type="text/css" /> |
| <link href="doxygen_html_style.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 id="projectrow"> |
| <td id="projectlogo"><img alt="Logo" src="logo.png"/></td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <!-- end header part --> |
| <!-- Generated by Doxygen 1.9.8 --> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ |
| var searchBox = new SearchBox("searchBox", "search/",'.html'); |
| /* @license-end */ |
| </script> |
| <script type="text/javascript" src="menudata.js"></script> |
| <script type="text/javascript" src="menu.js"></script> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ |
| $(function() { |
| initMenu('',true,false,'search.php','Search'); |
| $(document).ready(function() { init_search(); }); |
| }); |
| /* @license-end */ |
| </script> |
| <div id="main-nav"></div> |
| </div><!-- top --> |
| <div id="side-nav" class="ui-resizable side-nav-resizable"> |
| <div id="nav-tree"> |
| <div id="nav-tree-contents"> |
| <div id="nav-sync" class="sync"></div> |
| </div> |
| </div> |
| <div id="splitbar" style="-moz-user-select:none;" |
| class="ui-resizable-handle"> |
| </div> |
| </div> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ |
| $(document).ready(function(){initNavTree('classresdb__driver_1_1connection_1_1Connection.html',''); initResizable(); }); |
| /* @license-end */ |
| </script> |
| <div id="doc-content"> |
| <!-- window showing the filter options --> |
| <div id="MSearchSelectWindow" |
| onmouseover="return searchBox.OnSearchSelectShow()" |
| onmouseout="return searchBox.OnSearchSelectHide()" |
| onkeydown="return searchBox.OnSearchSelectKey(event)"> |
| </div> |
| |
| <!-- iframe showing the search results (closed by default) --> |
| <div id="MSearchResultsWindow"> |
| <div id="MSearchResults"> |
| <div class="SRPage"> |
| <div id="SRIndex"> |
| <div id="SRResults"></div> |
| <div class="SRStatus" id="Loading">Loading...</div> |
| <div class="SRStatus" id="Searching">Searching...</div> |
| <div class="SRStatus" id="NoMatches">No Matches</div> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| <div class="header"> |
| <div class="summary"> |
| <a href="#pub-methods">Public Member Functions</a> | |
| <a href="#pub-attribs">Public Attributes</a> | |
| <a href="#pro-methods">Protected Member Functions</a> | |
| <a href="#pro-attribs">Protected Attributes</a> | |
| <a href="classresdb__driver_1_1connection_1_1Connection-members.html">List of all members</a> </div> |
| <div class="headertitle"><div class="title">Connection Class Reference</div></div> |
| </div><!--header--> |
| <div class="contents"> |
| |
| <p>A Connection object to make HTTP requests to a particular node. |
| <a href="classresdb__driver_1_1connection_1_1Connection.html#details">More...</a></p> |
| <table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a> |
| Public Member Functions</h2></td></tr> |
| <tr class="memitem:aa7ab6de915fb6e8eaf91c49c1b950433" id="r_aa7ab6de915fb6e8eaf91c49c1b950433"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__driver_1_1connection_1_1Connection.html#aa7ab6de915fb6e8eaf91c49c1b950433">__init__</a> (self, *str <a class="el" href="classresdb__driver_1_1connection_1_1Connection.html#ab90428b2be3cf348c02614ae919e5de6">node_url</a>, dict headers=None)</td></tr> |
| <tr class="memdesc:aa7ab6de915fb6e8eaf91c49c1b950433"><td class="mdescLeft"> </td><td class="mdescRight">Initializes a :class:<code>~resdb_driver.connection.Connection</code> instance. <br /></td></tr> |
| <tr class="separator:aa7ab6de915fb6e8eaf91c49c1b950433"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ad69df57baeb0c349dc72e7e38d997fc4" id="r_ad69df57baeb0c349dc72e7e38d997fc4"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__driver_1_1connection_1_1Connection.html#ad69df57baeb0c349dc72e7e38d997fc4">get_backoff_timedelta</a> (self)</td></tr> |
| <tr class="separator:ad69df57baeb0c349dc72e7e38d997fc4"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a19266ed871cd2ded25922bb8b06d730c" id="r_a19266ed871cd2ded25922bb8b06d730c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceresdb__driver_1_1connection.html#a12c40bac41268d36628cdd8c43da10dd">HttpResponse</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__driver_1_1connection_1_1Connection.html#a19266ed871cd2ded25922bb8b06d730c">request</a> (self, str method, *str path=None, dict json=None, dict params=None, dict headers=None, int timeout=None, int backoff_cap=None, **kwargs)</td></tr> |
| <tr class="memdesc:a19266ed871cd2ded25922bb8b06d730c"><td class="mdescLeft"> </td><td class="mdescRight">Performs an HTTP request with the given parameters. <br /></td></tr> |
| <tr class="separator:a19266ed871cd2ded25922bb8b06d730c"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a152c1a059cb4e90467ddef606b729479" id="r_a152c1a059cb4e90467ddef606b729479"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__driver_1_1connection_1_1Connection.html#a152c1a059cb4e90467ddef606b729479">update_backoff_time</a> (self, success, backoff_cap=None)</td></tr> |
| <tr class="separator:a152c1a059cb4e90467ddef606b729479"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a> |
| Public Attributes</h2></td></tr> |
| <tr class="memitem:a33faaacc83097623f41e27a1d3b24f6a" id="r_a33faaacc83097623f41e27a1d3b24f6a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__driver_1_1connection_1_1Connection.html#a33faaacc83097623f41e27a1d3b24f6a">backoff_time</a></td></tr> |
| <tr class="separator:a33faaacc83097623f41e27a1d3b24f6a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ab90428b2be3cf348c02614ae919e5de6" id="r_ab90428b2be3cf348c02614ae919e5de6"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__driver_1_1connection_1_1Connection.html#ab90428b2be3cf348c02614ae919e5de6">node_url</a></td></tr> |
| <tr class="separator:ab90428b2be3cf348c02614ae919e5de6"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aa0823e1ff851f7526e7fc5487718a051" id="r_aa0823e1ff851f7526e7fc5487718a051"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__driver_1_1connection_1_1Connection.html#aa0823e1ff851f7526e7fc5487718a051">session</a></td></tr> |
| <tr class="separator:aa0823e1ff851f7526e7fc5487718a051"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a> |
| Protected Member Functions</h2></td></tr> |
| <tr class="memitem:abfe81cc22af1fe94d4622592a843923d" id="r_abfe81cc22af1fe94d4622592a843923d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceresdb__driver_1_1connection.html#a12c40bac41268d36628cdd8c43da10dd">HttpResponse</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__driver_1_1connection_1_1Connection.html#abfe81cc22af1fe94d4622592a843923d">_request</a> (self, **kwargs)</td></tr> |
| <tr class="separator:abfe81cc22af1fe94d4622592a843923d"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a> |
| Protected Attributes</h2></td></tr> |
| <tr class="memitem:acd4f8f8b9da6cf02ec4d4715cfce8b59" id="r_acd4f8f8b9da6cf02ec4d4715cfce8b59"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__driver_1_1connection_1_1Connection.html#acd4f8f8b9da6cf02ec4d4715cfce8b59">_retries</a></td></tr> |
| <tr class="separator:acd4f8f8b9da6cf02ec4d4715cfce8b59"><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 Connection object to make HTTP requests to a particular node. </p> |
| </div><h2 class="groupheader">Constructor & Destructor Documentation</h2> |
| <a id="aa7ab6de915fb6e8eaf91c49c1b950433" name="aa7ab6de915fb6e8eaf91c49c1b950433"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#aa7ab6de915fb6e8eaf91c49c1b950433">◆ </a></span>__init__()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">__init__ </td> |
| <td>(</td> |
| <td class="paramtype"> </td> |
| <td class="paramname"><em>self</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">*str </td> |
| <td class="paramname"><em>node_url</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">dict  </td> |
| <td class="paramname"><em>headers</em> = <code>None</code> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Initializes a :class:<code>~resdb_driver.connection.Connection</code> instance. </p> |
| <pre class="fragment">@param node_url (str): Url of the node to connect to. |
| @param headers (dict): Optional headers to send with each request. |
| |
| @return An instance of the Connection class |
| </pre> |
| </div> |
| </div> |
| <h2 class="groupheader">Member Function Documentation</h2> |
| <a id="abfe81cc22af1fe94d4622592a843923d" name="abfe81cc22af1fe94d4622592a843923d"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#abfe81cc22af1fe94d4622592a843923d">◆ </a></span>_request()</h2> |
| |
| <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="namespaceresdb__driver_1_1connection.html#a12c40bac41268d36628cdd8c43da10dd">HttpResponse</a> _request </td> |
| <td>(</td> |
| <td class="paramtype"> </td> |
| <td class="paramname"><em>self</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">** </td> |
| <td class="paramname"><em>kwargs</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">protected</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a id="ad69df57baeb0c349dc72e7e38d997fc4" name="ad69df57baeb0c349dc72e7e38d997fc4"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ad69df57baeb0c349dc72e7e38d997fc4">◆ </a></span>get_backoff_timedelta()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"> float get_backoff_timedelta </td> |
| <td>(</td> |
| <td class="paramtype"> </td> |
| <td class="paramname"><em>self</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a id="a19266ed871cd2ded25922bb8b06d730c" name="a19266ed871cd2ded25922bb8b06d730c"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a19266ed871cd2ded25922bb8b06d730c">◆ </a></span>request()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"> <a class="el" href="namespaceresdb__driver_1_1connection.html#a12c40bac41268d36628cdd8c43da10dd">HttpResponse</a> request </td> |
| <td>(</td> |
| <td class="paramtype"> </td> |
| <td class="paramname"><em>self</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">str </td> |
| <td class="paramname"><em>method</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">*str  </td> |
| <td class="paramname"><em>path</em> = <code>None</code>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">dict  </td> |
| <td class="paramname"><em>json</em> = <code>None</code>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">dict  </td> |
| <td class="paramname"><em>params</em> = <code>None</code>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">dict  </td> |
| <td class="paramname"><em>headers</em> = <code>None</code>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int  </td> |
| <td class="paramname"><em>timeout</em> = <code>None</code>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int  </td> |
| <td class="paramname"><em>backoff_cap</em> = <code>None</code>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">** </td> |
| <td class="paramname"><em>kwargs</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Performs an HTTP request with the given parameters. </p> |
| <p>Implements exponential backoff.</p> |
| <p>If <code>ConnectionError</code> occurs, a timestamp equal to now + the default delay (<code>BACKOFF_DELAY</code>) is assigned to the object. The timestamp is in UTC. Next time the function is called, it either waits till the timestamp is passed or raises <code>TimeoutError</code>.</p> |
| <p>If <code>ConnectionError</code> occurs two or more times in a row, the retry count is incremented and the new timestamp is calculated as now + the default delay multiplied by two to the power of the number of retries.</p> |
| <p>If a request is successful, the backoff timestamp is removed, the retry count is back to zero.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">method</td><td>(str): HTTP method (e.g.: <code>'GET'</code>). </td></tr> |
| <tr><td class="paramname">path</td><td>(str): API endpoint path (e.g.: <code>'/transactions'</code>). </td></tr> |
| <tr><td class="paramname">json</td><td>(dict): JSON data to send along with the request. </td></tr> |
| <tr><td class="paramname">params</td><td>(dict): Dictionary of URL (query) parameters. </td></tr> |
| <tr><td class="paramname">headers</td><td>(dict): Optional headers to pass to the request. </td></tr> |
| <tr><td class="paramname">timeout</td><td>(int): Optional timeout in seconds. </td></tr> |
| <tr><td class="paramname">backoff_cap</td><td>(int): The maximal allowed backoff delay in seconds to be assigned to a node. </td></tr> |
| <tr><td class="paramname">kwargs</td><td>Optional keyword arguments.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Response of the HTTP request. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a152c1a059cb4e90467ddef606b729479" name="a152c1a059cb4e90467ddef606b729479"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a152c1a059cb4e90467ddef606b729479">◆ </a></span>update_backoff_time()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">update_backoff_time </td> |
| <td>(</td> |
| <td class="paramtype"> </td> |
| <td class="paramname"><em>self</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"> </td> |
| <td class="paramname"><em>success</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"> </td> |
| <td class="paramname"><em>backoff_cap</em> = <code>None</code> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <h2 class="groupheader">Member Data Documentation</h2> |
| <a id="acd4f8f8b9da6cf02ec4d4715cfce8b59" name="acd4f8f8b9da6cf02ec4d4715cfce8b59"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#acd4f8f8b9da6cf02ec4d4715cfce8b59">◆ </a></span>_retries</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">_retries</td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">protected</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a id="a33faaacc83097623f41e27a1d3b24f6a" name="a33faaacc83097623f41e27a1d3b24f6a"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a33faaacc83097623f41e27a1d3b24f6a">◆ </a></span>backoff_time</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">backoff_time</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a id="ab90428b2be3cf348c02614ae919e5de6" name="ab90428b2be3cf348c02614ae919e5de6"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ab90428b2be3cf348c02614ae919e5de6">◆ </a></span>node_url</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">node_url</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a id="aa0823e1ff851f7526e7fc5487718a051" name="aa0823e1ff851f7526e7fc5487718a051"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#aa0823e1ff851f7526e7fc5487718a051">◆ </a></span>session</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">session</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <hr/>The documentation for this class was generated from the following file:<ul> |
| <li>/github/workspace/resdb_driver/<a class="el" href="connection_8py.html">connection.py</a></li> |
| </ul> |
| </div><!-- contents --> |
| </div><!-- doc-content --> |
| <!-- start footer part --> |
| <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> |
| <ul> |
| <li class="navelem"><a class="el" href="namespaceresdb__driver.html">resdb_driver</a></li><li class="navelem"><a class="el" href="namespaceresdb__driver_1_1connection.html">connection</a></li><li class="navelem"><a class="el" href="classresdb__driver_1_1connection_1_1Connection.html">Connection</a></li> |
| <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li> |
| </ul> |
| </div> |
| </body> |
| </html> |