<!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.9.1"/> <title>Helix Web Services Client: hws::Client 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="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> <script type="text/javascript"> $(document).ready(function() { init_search(); }); </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">Helix Web Services Client  <span id="projectnumber">1</span> </div> <div id="projectbrief">Helix Web Services Client SDK for Qt Applications</div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.9.1 --> <script type="text/javascript"> var searchBox = new SearchBox("searchBox", "search",false,'Search'); </script> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</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> <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="Search" 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>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</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)"> </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 id="nav-path" class="navpath"> <ul> <li class="navelem"><b>hws</b></li><li class="navelem"><a class="el" href="classhws_1_1_client.html">Client</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#pub-types">Public Types</a> | <a href="#pub-slots">Public Slots</a> | <a href="#signals">Signals</a> | <a href="#pub-methods">Public Member Functions</a> | <a href="classhws_1_1_client-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">hws::Client Class Reference</div> </div> </div><!--header--> <div class="contents"> <p>Front end to making requests against the Phoenix web services API. <a href="classhws_1_1_client.html#details">More...</a></p> <p><code>#include <<a class="el" href="_client_8h_source.html">Client.h</a>></code></p> <div class="dynheader"> Inheritance diagram for hws::Client:</div> <div class="dyncontent"> <div class="center"> <img src="classhws_1_1_client.png" usemap="#hws::Client_map" alt=""/> <map id="hws::Client_map" name="hws::Client_map"> </map> </div></div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> Classes</h2></td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client_1_1_execute_method_finished.html">ExecuteMethodFinished</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client_1_1_impl.html">Impl</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client_1_1_log_in_finished.html">LogInFinished</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a> Public Types</h2></td></tr> <tr class="memitem:a64a2bcf1e1189bb8df035838b55e86b4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a64a2bcf1e1189bb8df035838b55e86b4"></a> typedef QList< QVariantMap > </td><td class="memItemRight" valign="bottom"><b>QVariantMapList</b></td></tr> <tr class="separator:a64a2bcf1e1189bb8df035838b55e86b4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa1b04297b87c82548237e6f4db9dc8bd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa1b04297b87c82548237e6f4db9dc8bd"></a> typedef QHash< QString, QString > </td><td class="memItemRight" valign="bottom"><b>QStringHash</b></td></tr> <tr class="separator:aa1b04297b87c82548237e6f4db9dc8bd"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-slots"></a> Public Slots</h2></td></tr> <tr class="memitem:a948cd4e143d62034afd493c18099c4b7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client.html#a948cd4e143d62034afd493c18099c4b7">validateSession</a> ()</td></tr> <tr class="separator:a948cd4e143d62034afd493c18099c4b7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac87a65bae065cbd0b1e1f6abc2c06242"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client.html#ac87a65bae065cbd0b1e1f6abc2c06242">logIn</a> (const QString &user, const QString &password)</td></tr> <tr class="separator:ac87a65bae065cbd0b1e1f6abc2c06242"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa08a1c9b59d6de53e38e22c22714402a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client.html#aa08a1c9b59d6de53e38e22c22714402a">executeMethod</a> (const QString &method, const QString &path, const QSharedPointer< QStringHash > params=QSharedPointer< QStringHash >(), const QSharedPointer< QByteArray > body=QSharedPointer< QByteArray >())</td></tr> <tr class="separator:aa08a1c9b59d6de53e38e22c22714402a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abd7dcf8cee7241172a4ccb2e7420d521"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client.html#abd7dcf8cee7241172a4ccb2e7420d521">executeMethod</a> (const QString &method, const QString &path, const QSharedPointer< QStringHash > params, const QVariantMap &body)</td></tr> <tr class="separator:abd7dcf8cee7241172a4ccb2e7420d521"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a081e07132e59b5da4fcfd6d400076bde"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client.html#a081e07132e59b5da4fcfd6d400076bde">executeMethod</a> (const QString &method, const QString &path, const QSharedPointer< QStringHash > params, const QVariantMapList &body)</td></tr> <tr class="separator:a081e07132e59b5da4fcfd6d400076bde"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="signals"></a> Signals</h2></td></tr> <tr class="memitem:a6a866b9ad11dedb70f2908da60a68a32"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client.html#a6a866b9ad11dedb70f2908da60a68a32">validateSessionDone</a> (RequestErrorPtr error)</td></tr> <tr class="separator:a6a866b9ad11dedb70f2908da60a68a32"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8020be14b02290e325e2addb4cd205ad"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client.html#a8020be14b02290e325e2addb4cd205ad">logInDone</a> (RequestErrorPtr error, SessionPtr <a class="el" href="classhws_1_1_client.html#a7f71e48853bfa39f72c512a146265b78">session</a>)</td></tr> <tr class="separator:a8020be14b02290e325e2addb4cd205ad"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a80c0f9f416a31e17fe3280016397e96b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client.html#a80c0f9f416a31e17fe3280016397e96b">executeMethodDone</a> (RequestErrorPtr error, const QString &method, const QString &path, const QSharedPointer< QVariantMapList > body)</td></tr> <tr class="separator:a80c0f9f416a31e17fe3280016397e96b"><td class="memSeparator" colspan="2"> </td></tr> </table><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:a2582df682de7b81d4601b469c1e0198e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2582df682de7b81d4601b469c1e0198e"></a>  </td><td class="memItemRight" valign="bottom"><b>Client</b> (QObject *parent, QUrl <a class="el" href="classhws_1_1_client.html#a25eb8861db7a617ec9e197105da32e59">url</a>)</td></tr> <tr class="separator:a2582df682de7b81d4601b469c1e0198e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad55b0bb6781367118fb47325f3e749e4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad55b0bb6781367118fb47325f3e749e4"></a>  </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client.html#ad55b0bb6781367118fb47325f3e749e4">Client</a> (QObject *parent)</td></tr> <tr class="memdesc:ad55b0bb6781367118fb47325f3e749e4"><td class="mdescLeft"> </td><td class="mdescRight">A basic empty client that should be updated. <br /></td></tr> <tr class="separator:ad55b0bb6781367118fb47325f3e749e4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7e29becd0de1df4fb76c02c2b0ada0aa"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client.html#a7e29becd0de1df4fb76c02c2b0ada0aa">~Client</a> ()</td></tr> <tr class="separator:a7e29becd0de1df4fb76c02c2b0ada0aa"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a25eb8861db7a617ec9e197105da32e59"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a25eb8861db7a617ec9e197105da32e59"></a> const QUrl & </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client.html#a25eb8861db7a617ec9e197105da32e59">url</a> () const </td></tr> <tr class="memdesc:a25eb8861db7a617ec9e197105da32e59"><td class="mdescLeft"> </td><td class="mdescRight">The Helix Web Services URL. <br /></td></tr> <tr class="separator:a25eb8861db7a617ec9e197105da32e59"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a457086d9086e7ffe12e8250f40531725"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a457086d9086e7ffe12e8250f40531725"></a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client.html#a457086d9086e7ffe12e8250f40531725">setUrl</a> (const QUrl &<a class="el" href="classhws_1_1_client.html#a25eb8861db7a617ec9e197105da32e59">url</a>)</td></tr> <tr class="memdesc:a457086d9086e7ffe12e8250f40531725"><td class="mdescLeft"> </td><td class="mdescRight">The Helix Web Services URL. <br /></td></tr> <tr class="separator:a457086d9086e7ffe12e8250f40531725"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5edcfa7a2672bd5fd7c1bd43d05ada11"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client.html#a5edcfa7a2672bd5fd7c1bd43d05ada11">hasSession</a> () const </td></tr> <tr class="separator:a5edcfa7a2672bd5fd7c1bd43d05ada11"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7f71e48853bfa39f72c512a146265b78"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7f71e48853bfa39f72c512a146265b78"></a> const <a class="el" href="classhws_1_1_session.html">Session</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client.html#a7f71e48853bfa39f72c512a146265b78">session</a> () const </td></tr> <tr class="memdesc:a7f71e48853bfa39f72c512a146265b78"><td class="mdescLeft"> </td><td class="mdescRight">The session instance is required before making any remote call. <br /></td></tr> <tr class="separator:a7f71e48853bfa39f72c512a146265b78"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6efcd5fd29ed6a73b94fb3f27bf75b84"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client.html#a6efcd5fd29ed6a73b94fb3f27bf75b84">setSession</a> (const <a class="el" href="classhws_1_1_session.html">Session</a> &<a class="el" href="classhws_1_1_client.html#a7f71e48853bfa39f72c512a146265b78">session</a>)</td></tr> <tr class="separator:a6efcd5fd29ed6a73b94fb3f27bf75b84"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad11b170cf905b0a73b8e55df14c3c923"><td class="memItemLeft" align="right" valign="top">const QString & </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client.html#ad11b170cf905b0a73b8e55df14c3c923">hwsPrefixPath</a> () const </td></tr> <tr class="separator:ad11b170cf905b0a73b8e55df14c3c923"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6f108e176a3e656bbcc923e08cd19b59"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client.html#a6f108e176a3e656bbcc923e08cd19b59">setHWSPrefixPath</a> (const QString &path)</td></tr> <tr class="separator:a6f108e176a3e656bbcc923e08cd19b59"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abb504cddae9ae34ec3b51bd18fe570d2"><td class="memItemLeft" align="right" valign="top">const QString & </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client.html#abb504cddae9ae34ec3b51bd18fe570d2">settingsKey</a> () const </td></tr> <tr class="separator:abb504cddae9ae34ec3b51bd18fe570d2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3876d0cdb16e97c2a179c200b9057eb0"><td class="memItemLeft" align="right" valign="top">const QSharedPointer< QSettings > </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client.html#a3876d0cdb16e97c2a179c200b9057eb0">settings</a> () const </td></tr> <tr class="separator:a3876d0cdb16e97c2a179c200b9057eb0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab3c5204b9cb7f42f81b80bc1e541e14e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab3c5204b9cb7f42f81b80bc1e541e14e"></a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client.html#ab3c5204b9cb7f42f81b80bc1e541e14e">setSettings</a> (QSharedPointer< QSettings > <a class="el" href="classhws_1_1_client.html#a3876d0cdb16e97c2a179c200b9057eb0">settings</a>)</td></tr> <tr class="memdesc:ab3c5204b9cb7f42f81b80bc1e541e14e"><td class="mdescLeft"> </td><td class="mdescRight">The current settings handle for the client. <br /></td></tr> <tr class="separator:ab3c5204b9cb7f42f81b80bc1e541e14e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a58046690b16052bc32345909dec44647"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client.html#a58046690b16052bc32345909dec44647">addRequestConfig</a> (QString key, QString value)</td></tr> <tr class="separator:a58046690b16052bc32345909dec44647"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a65a2fb65081217264a96daef101708eb"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_client.html#a65a2fb65081217264a96daef101708eb">ignoreSslErrors</a> (bool ignore)</td></tr> <tr class="separator:a65a2fb65081217264a96daef101708eb"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>Front end to making requests against the Phoenix web services API. </p> </div><h2 class="groupheader">Constructor & Destructor Documentation</h2> <a class="anchor" id="a7e29becd0de1df4fb76c02c2b0ada0aa"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">hws::Client::~Client </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Destroy the client. Any open connections for updates will get automatically disconnected. </p> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="a58046690b16052bc32345909dec44647"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void hws::Client::addRequestConfig </td> <td>(</td> <td class="paramtype">QString </td> <td class="paramname"><em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">QString </td> <td class="paramname"><em>value</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Creates a per-request configuration setting.</p> <p>See the documentation for details, but this will apply the correct prefix to the key, and leave the value untouched.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">key</td><td>The configuration key, e.g., P4PORT </td></tr> <tr><td class="paramname">value</td><td>The 'raw' header value </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="aa08a1c9b59d6de53e38e22c22714402a"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void hws::Client::executeMethod </td> <td>(</td> <td class="paramtype">const QString & </td> <td class="paramname"><em>method</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const QString & </td> <td class="paramname"><em>path</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const QSharedPointer< QStringHash > </td> <td class="paramname"><em>params</em> = <code>QSharedPointer<QStringHash>()</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const QSharedPointer< QByteArray > </td> <td class="paramname"><em>body</em> = <code>QSharedPointer<QByteArray>()</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">slot</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Execute a method of Helix Web Services.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">method</td><td>An HTTP verb, e.g., "POST" </td></tr> <tr><td class="paramname">path</td><td>The method path to use, e.g., '/helix_versioning_engine/v78/changes' </td></tr> <tr><td class="paramname">params</td><td>Optional URL parameters to set </td></tr> <tr><td class="paramname">body</td><td>Optional request body to use </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="abd7dcf8cee7241172a4ccb2e7420d521"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void hws::Client::executeMethod </td> <td>(</td> <td class="paramtype">const QString & </td> <td class="paramname"><em>method</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const QString & </td> <td class="paramname"><em>path</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const QSharedPointer< QStringHash > </td> <td class="paramname"><em>params</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const QVariantMap & </td> <td class="paramname"><em>body</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">slot</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Execute a method of Helix Web Services.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">method</td><td>An HTTP verb, e.g., "POST" </td></tr> <tr><td class="paramname">path</td><td>The method path to use, e.g., '/helix_versioning_engine/v78/changes' </td></tr> <tr><td class="paramname">params</td><td>URL parameters to set (for no parameters, set to empty pointer) </td></tr> <tr><td class="paramname">body</td><td>Request body set as a QVariantMap, will be serialized as JSON </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a081e07132e59b5da4fcfd6d400076bde"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void hws::Client::executeMethod </td> <td>(</td> <td class="paramtype">const QString & </td> <td class="paramname"><em>method</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const QString & </td> <td class="paramname"><em>path</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const QSharedPointer< QStringHash > </td> <td class="paramname"><em>params</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const QVariantMapList & </td> <td class="paramname"><em>body</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">slot</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Execute a method of Helix Web Services.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">method</td><td>An HTTP verb, e.g., "POST" </td></tr> <tr><td class="paramname">path</td><td>The method path to use, e.g., '/helix_versioning_engine/v78/changes' </td></tr> <tr><td class="paramname">params</td><td>URL parameters to set (for no parameters, set to empty pointer) </td></tr> <tr><td class="paramname">body</td><td>Request body set as a list of QVariantMaps, will be serialized as JSON </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a80c0f9f416a31e17fe3280016397e96b"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void hws::Client::executeMethodDone </td> <td>(</td> <td class="paramtype">RequestErrorPtr </td> <td class="paramname"><em>error</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const QString & </td> <td class="paramname"><em>method</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const QString & </td> <td class="paramname"><em>path</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const QSharedPointer< QVariantMapList > </td> <td class="paramname"><em>body</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">signal</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Main callback for most method calls to Helix Web Services.</p> <p>If the error is set, the body is definitely null.</p> <p>If no error occurred, you may have one or more values, depending on the method called.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">error</td><td>If set, details on the problem. </td></tr> <tr><td class="paramname">method</td><td>HTTP verb of the method run </td></tr> <tr><td class="paramname">path</td><td>Subpath (without the prefix) of the method </td></tr> <tr><td class="paramname">body</td><td>If the response included a body, we convert it from JSON to a list of hashes. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a5edcfa7a2672bd5fd7c1bd43d05ada11"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool hws::Client::hasSession </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div><div class="memdoc"> <p>When true, this should have a session instance that was known to work at some point. </p> </div> </div> <a class="anchor" id="ad11b170cf905b0a73b8e55df14c3c923"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const QString & hws::Client::hwsPrefixPath </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div><div class="memdoc"> <p>This is a leading path to almost every request in the system. It's configurable since some development environment setups don't have a nice way to handle creating DNS entries, which leads to services sometimes getting mounted locally under subpaths. </p> </div> </div> <a class="anchor" id="a65a2fb65081217264a96daef101708eb"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void hws::Client::ignoreSslErrors </td> <td>(</td> <td class="paramtype">bool </td> <td class="paramname"><em>ignore</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Ignore SSL certificate errors in the connection.</p> <p>This is required in situations where your certificate is self-signed or otherwise not valid. </p> </div> </div> <a class="anchor" id="ac87a65bae065cbd0b1e1f6abc2c06242"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void hws::Client::logIn </td> <td>(</td> <td class="paramtype">const QString & </td> <td class="paramname"><em>user</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const QString & </td> <td class="paramname"><em>password</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">slot</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>This should attempt a login as the user and password to the url that's been configured on this client.</p> <p>IMPORTANT: this will attempt to resolve the hostname of the client itself, which we'll use to generate a host locked ticket. </p> </div> </div> <a class="anchor" id="a8020be14b02290e325e2addb4cd205ad"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void hws::Client::logInDone </td> <td>(</td> <td class="paramtype">RequestErrorPtr </td> <td class="paramname"><em>error</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">SessionPtr </td> <td class="paramname"><em>session</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">signal</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>When the login request has resolved this is called.</p> <p>Authentication errors will result in no session being created. </p> </div> </div> <a class="anchor" id="a6f108e176a3e656bbcc923e08cd19b59"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void hws::Client::setHWSPrefixPath </td> <td>(</td> <td class="paramtype">const QString & </td> <td class="paramname"><em>path</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>This is a leading path to almost every request in the system. It's configurable since some development environment setups don't have a nice way to handle creating DNS entries, which leads to services sometimes getting mounted locally under subpaths. </p> </div> </div> <a class="anchor" id="a6efcd5fd29ed6a73b94fb3f27bf75b84"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void hws::Client::setSession </td> <td>(</td> <td class="paramtype">const <a class="el" href="classhws_1_1_session.html">Session</a> & </td> <td class="paramname"><em>session</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>If you have stored a previously used session, you can just assign it to this client instance. </p> </div> </div> <a class="anchor" id="a3876d0cdb16e97c2a179c200b9057eb0"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const QSharedPointer<QSettings> hws::Client::settings </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div><div class="memdoc"> <p>Returns the current settings handle for the client. If it exists, The settings will store the session data by URL under a particular key. </p> </div> </div> <a class="anchor" id="abb504cddae9ae34ec3b51bd18fe570d2"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const QString& hws::Client::settingsKey </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div><div class="memdoc"> <p>All stored sessions are saved as a JSON object under this settings key, which is defaulted to "HelixWebServicesSettings".</p> <p>This should be set on construction only. </p> </div> </div> <a class="anchor" id="a948cd4e143d62034afd493c18099c4b7"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void hws::Client::validateSession </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">slot</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Trigger a remote call to the web services instance to validate that the session (and ticket) is still valid.</p> <p>Even if this client has no session, we'll still double check that we can call back to the server. </p> </div> </div> <a class="anchor" id="a6a866b9ad11dedb70f2908da60a68a32"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void hws::Client::validateSessionDone </td> <td>(</td> <td class="paramtype">RequestErrorPtr </td> <td class="paramname"><em>error</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">signal</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Callback after validating a session.</p> <p>The error value indicates a networking or remote system problem.</p> <p>If the session is invalid, the error will not be set. Instead, you should double check the output of <code>client.hasSession()</code>. If that is false, you'll need to sign in again.</p> <p>At this point, if the session is invalid, it will be cleared from any QSettings cachce as well, if the client was initialized with a settings handle. </p> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li>hws/<a class="el" href="_client_8h_source.html">Client.h</a></li> <li>hws/Client.cpp</li> </ul> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Mon Aug 31 2015 09:11:40 for Helix Web Services Client by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.9.1 </small></address> </body> </html>
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 15741 | ptomiak | Branch HWS for my use. | ||
//guest/perforce_software/helix-web-services/main/build/doc/helix_web_services_client_qt/html/classhws_1_1_client.html | |||||
#8 | 15578 | tjuricek |
Removing QSettings* usage from hws::Client. The way QSettings was being used only is relevant for one connection at a time, and, it didn't seem to work on windows nicely anyway. |
||
#7 | 15544 | tjuricek | Explain that the QSettings handle for hws::Client should only be used on connections you don't specify a P4PORT for. | ||
#6 | 15447 | tjuricek |
Add simple Example application to list "projects" in a HVE instance. Qt's a little weird to follow, so I may have to find a different kind of example to write. It does work, however. |
||
#5 | 15423 | tjuricek |
Revised HWS Qt API. This is a major revision of the API, which removes most of the "typed" data, replacing it with a more generic "executeMethodDone" callback. The main benefit here is to allow the API to interop with different versions of p4d, and not restrict the methods it can call. We may add more helpers in the future. |
||
#4 | 14054 | tjuricek |
Allowing the Qt client to select 'all' vs 'my' projects. Right now, it should default to using "my" projects as a rule. |
||
#3 | 14049 | tjuricek |
Add methods to generate client workspaces for a user. The Qt SDK was updated based on immediate need. Also, add Ruby client SDK documentation to the docs site. Everything is early, but there's *some* reference available at least. |
||
#2 | 14026 | tjuricek | Revise example code on main page of Qt SDK | ||
#1 | 14025 | tjuricek |
Revise Qt SDK to a single 'helix_web_services_client' project. Most references to "Phoenix" have now been removed. Additionally, this is more similar to the other platform client SDKs in Ruby and JavaScript. Documentation via Doxygen is now available, and will be how much of the SDK reference should occur. |