<!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::SyncProject 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_sync_project.html">SyncProject</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pub-static-attribs">Static Public Attributes</a> | <a href="classhws_1_1_sync_project-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">hws::SyncProject Class Reference</div> </div> </div><!--header--> <div class="contents"> <p>High-level <a class="el" href="classhws_1_1_project.html" title="This is the generic project model for Perforce projects. ">Project</a> model for Helix Sync that wraps the base <a class="el" href="classhws_1_1_project.html" title="This is the generic project model for Perforce projects. ">Project</a>. <a href="classhws_1_1_sync_project.html#details">More...</a></p> <p><code>#include <<a class="el" href="_sync_project_8h_source.html">SyncProject.h</a>></code></p> <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:af5aa9182dd03be2b08bd80e1f3dcacae"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af5aa9182dd03be2b08bd80e1f3dcacae"></a>  </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_sync_project.html#af5aa9182dd03be2b08bd80e1f3dcacae">SyncProject</a> (const <a class="el" href="classhws_1_1_project.html">Project</a> &<a class="el" href="classhws_1_1_sync_project.html#af0343da2719dc861ba999bc9b72c87fd">project</a>)</td></tr> <tr class="memdesc:af5aa9182dd03be2b08bd80e1f3dcacae"><td class="mdescLeft"> </td><td class="mdescRight">SyncProjects mostly just adapt the core project model. <br /></td></tr> <tr class="separator:af5aa9182dd03be2b08bd80e1f3dcacae"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5e51a0776d83f3177c61b74b82450530"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e51a0776d83f3177c61b74b82450530"></a>  </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_sync_project.html#a5e51a0776d83f3177c61b74b82450530">SyncProject</a> ()</td></tr> <tr class="memdesc:a5e51a0776d83f3177c61b74b82450530"><td class="mdescLeft"> </td><td class="mdescRight">Note that this will create an empty or new project. <br /></td></tr> <tr class="separator:a5e51a0776d83f3177c61b74b82450530"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a98d6d985340e5626a0c3b12851da2a2f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a98d6d985340e5626a0c3b12851da2a2f"></a>  </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_sync_project.html#a98d6d985340e5626a0c3b12851da2a2f">SyncProject</a> (const <a class="el" href="classhws_1_1_sync_project.html">SyncProject</a> &p)</td></tr> <tr class="memdesc:a98d6d985340e5626a0c3b12851da2a2f"><td class="mdescLeft"> </td><td class="mdescRight">Start a new <a class="el" href="classhws_1_1_sync_project.html" title="High-level Project model for Helix Sync that wraps the base Project. ">SyncProject</a> instance via a copy constructor. <br /></td></tr> <tr class="separator:a98d6d985340e5626a0c3b12851da2a2f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab06f04b0165c77b843e598946adf3f2e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab06f04b0165c77b843e598946adf3f2e"></a> <a class="el" href="classhws_1_1_sync_project.html">SyncProject</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_sync_project.html#ab06f04b0165c77b843e598946adf3f2e">operator=</a> (const <a class="el" href="classhws_1_1_sync_project.html">SyncProject</a> &p)</td></tr> <tr class="memdesc:ab06f04b0165c77b843e598946adf3f2e"><td class="mdescLeft"> </td><td class="mdescRight">Allow assignment, which mostly copies the state of the other project. <br /></td></tr> <tr class="separator:ab06f04b0165c77b843e598946adf3f2e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af0343da2719dc861ba999bc9b72c87fd"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classhws_1_1_project.html">Project</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_sync_project.html#af0343da2719dc861ba999bc9b72c87fd">project</a> () const </td></tr> <tr class="separator:af0343da2719dc861ba999bc9b72c87fd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afca78eb3133a240222b6e66a477a02fc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classhws_1_1_project.html">Project</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_sync_project.html#afca78eb3133a240222b6e66a477a02fc">project</a> ()</td></tr> <tr class="separator:afca78eb3133a240222b6e66a477a02fc"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac60dd2b5d094976ac48c6ce23d5f7655"><td class="memItemLeft" align="right" valign="top">QString </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_sync_project.html#ac60dd2b5d094976ac48c6ce23d5f7655">id</a> () const </td></tr> <tr class="separator:ac60dd2b5d094976ac48c6ce23d5f7655"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa6dea75665ffbc54a96ffe0d62187e1c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_sync_project.html#aa6dea75665ffbc54a96ffe0d62187e1c">setId</a> (const QString &<a class="el" href="classhws_1_1_sync_project.html#ac60dd2b5d094976ac48c6ce23d5f7655">id</a>)</td></tr> <tr class="separator:aa6dea75665ffbc54a96ffe0d62187e1c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0a96a23a1990f33b6faa0905b488bc1f"><td class="memItemLeft" align="right" valign="top">QString </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_sync_project.html#a0a96a23a1990f33b6faa0905b488bc1f">name</a> () const </td></tr> <tr class="separator:a0a96a23a1990f33b6faa0905b488bc1f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ade66d286306bb608e7f9c756b20080a4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_sync_project.html#ade66d286306bb608e7f9c756b20080a4">setName</a> (const QString &<a class="el" href="classhws_1_1_sync_project.html#a0a96a23a1990f33b6faa0905b488bc1f">name</a>)</td></tr> <tr class="separator:ade66d286306bb608e7f9c756b20080a4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac844c792da702ec28e3d8e315a498012"><td class="memItemLeft" align="right" valign="top">QUrl </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_sync_project.html#ac844c792da702ec28e3d8e315a498012">p4</a> () const </td></tr> <tr class="separator:ac844c792da702ec28e3d8e315a498012"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a24584026ef09e5ee4e1a6992ff01f49b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_sync_project.html#a24584026ef09e5ee4e1a6992ff01f49b">setP4</a> (const QUrl &<a class="el" href="classhws_1_1_sync_project.html#ac844c792da702ec28e3d8e315a498012">p4</a>)</td></tr> <tr class="separator:a24584026ef09e5ee4e1a6992ff01f49b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2065c852b902eea554101b97abe72867"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_sync_project.html#a2065c852b902eea554101b97abe72867">change</a> () const </td></tr> <tr class="separator:a2065c852b902eea554101b97abe72867"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac0b0cb81b9095ca527e1351c3e319ea0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac0b0cb81b9095ca527e1351c3e319ea0"></a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_sync_project.html#ac0b0cb81b9095ca527e1351c3e319ea0">setChange</a> (int <a class="el" href="classhws_1_1_sync_project.html#a2065c852b902eea554101b97abe72867">change</a>)</td></tr> <tr class="memdesc:ac0b0cb81b9095ca527e1351c3e319ea0"><td class="mdescLeft"> </td><td class="mdescRight">Update the latest changelist number. <br /></td></tr> <tr class="separator:ac0b0cb81b9095ca527e1351c3e319ea0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5ec2d9caf5cdf0ce771e54f4413a15e9"><td class="memItemLeft" align="right" valign="top">QString </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_sync_project.html#a5ec2d9caf5cdf0ce771e54f4413a15e9">stream</a> () const </td></tr> <tr class="separator:a5ec2d9caf5cdf0ce771e54f4413a15e9"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a> Static Public Attributes</h2></td></tr> <tr class="memitem:a884182434301c5e07fdadc74f07026cd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a884182434301c5e07fdadc74f07026cd"></a> static const QString </td><td class="memItemRight" valign="bottom"><a class="el" href="classhws_1_1_sync_project.html#a884182434301c5e07fdadc74f07026cd">CONTENT_TYPE</a> = "application/vnd.perforce.project.phoenix.v1+json"</td></tr> <tr class="memdesc:a884182434301c5e07fdadc74f07026cd"><td class="mdescLeft"> </td><td class="mdescRight">The mime type of the extensions supported by the Phoenix project. <br /></td></tr> <tr class="separator:a884182434301c5e07fdadc74f07026cd"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>High-level <a class="el" href="classhws_1_1_project.html" title="This is the generic project model for Perforce projects. ">Project</a> model for Helix Sync that wraps the base <a class="el" href="classhws_1_1_project.html" title="This is the generic project model for Perforce projects. ">Project</a>. </p> <p>The core <a class="el" href="classhws_1_1_project.html" title="This is the generic project model for Perforce projects. ">Project</a> class provides more flexibility and features than is typically needed by Helix Sync, so this class provides the simpler API, by maintaining a handle to the core <a class="el" href="classhws_1_1_project.html" title="This is the generic project model for Perforce projects. ">Project</a>.</p> <p>It is <em>not</em> anticipated that you will subclass the <a class="el" href="classhws_1_1_sync_project.html" title="High-level Project model for Helix Sync that wraps the base Project. ">SyncProject</a>. You shouldn't need to. </p> </div><h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="a2065c852b902eea554101b97abe72867"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int hws::SyncProject::change </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div><div class="memdoc"> <p>The latest changelist number indicated by the current state of the project. </p> </div> </div> <a class="anchor" id="ac60dd2b5d094976ac48c6ce23d5f7655"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">QString hws::SyncProject::id </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div><div class="memdoc"> <p>The ID of a project is a unique string that should only contain lowercase ASCII letters, numbers, and underscores.</p> <p>We'd like to be able to safely use this ID as folders in a URI path, or a Perforce view specification, without much hassle. </p> </div> </div> <a class="anchor" id="a0a96a23a1990f33b6faa0905b488bc1f"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">QString hws::SyncProject::name </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div><div class="memdoc"> <p>The project name is the basic 'display name' we've stored.</p> <p>Keep in mind this value may be slightly different then the mounted directory name on the local filesystem. It may be possible for projects with the same name to be mounted by a user. </p> </div> </div> <a class="anchor" id="ac844c792da702ec28e3d8e315a498012"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">QUrl hws::SyncProject::p4 </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div><div class="memdoc"> <p>A <code>p4://...</code> URL to obtain host and port connection information.</p> <p>Note that the UserInfo part of the URL can be encoded to include P4 environment variable information. </p> </div> </div> <a class="anchor" id="af0343da2719dc861ba999bc9b72c87fd"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="classhws_1_1_project.html">Project</a> & hws::SyncProject::project </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div><div class="memdoc"> <p>Returns a reference to the underlying project structure. This can allow for someone mostly utilizing the Phoenix services to, say, query extensions for other products. </p> </div> </div> <a class="anchor" id="afca78eb3133a240222b6e66a477a02fc"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classhws_1_1_project.html">Project</a> & hws::SyncProject::project </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Returns a reference to the underlying project structure. This can allow for someone mostly utilizing the Phoenix services to, say, query extensions for other products. </p> </div> </div> <a class="anchor" id="aa6dea75665ffbc54a96ffe0d62187e1c"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void hws::SyncProject::setId </td> <td>(</td> <td class="paramtype">const QString & </td> <td class="paramname"><em>id</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Set the ID of the project.</p> <p>IDs will be automatically generated if they do not exist. </p> </div> </div> <a class="anchor" id="ade66d286306bb608e7f9c756b20080a4"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void hws::SyncProject::setName </td> <td>(</td> <td class="paramtype">const QString & </td> <td class="paramname"><em>name</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Update the project name.</p> <p>For Helix Web Services, this is really just a display name. Very little validation currently occurs. </p> </div> </div> <a class="anchor" id="a24584026ef09e5ee4e1a6992ff01f49b"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void hws::SyncProject::setP4 </td> <td>(</td> <td class="paramtype">const QUrl & </td> <td class="paramname"><em>p4</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Set a <code>p4://...</code> URL to indicate how to connect to the Perforce server. This is typically set by the Helix Web Services instance. </p> </div> </div> <a class="anchor" id="a5ec2d9caf5cdf0ce771e54f4413a15e9"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">QString hws::SyncProject::stream </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div><div class="memdoc"> <p>This is the primary stream in use by the project.</p> <p>Each phoenix project is probably represented by a base <a class="el" href="classhws_1_1_project.html" title="This is the generic project model for Perforce projects. ">Project</a> that only has one branch indicating a single mainline stream. This is the stream specifier, e.g., <code>//phoenix/a_project_id</code>. </p> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li>hws/<a class="el" href="_sync_project_8h_source.html">SyncProject.h</a></li> <li>hws/SyncProject.cpp</li> </ul> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Fri Jun 19 2015 16:38:20 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 | |
---|---|---|---|---|---|
#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. |