classDataStructures_1_1Table.html 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  6. <title>RakNet: DataStructures::Table Class Reference</title>
  7. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  8. <script type="text/javascript" src="jquery.js"></script>
  9. <script type="text/javascript" src="dynsections.js"></script>
  10. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  11. </head>
  12. <body>
  13. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  14. <div id="titlearea">
  15. <table cellspacing="0" cellpadding="0">
  16. <tbody>
  17. <tr style="height: 56px;">
  18. <td style="padding-left: 0.5em;">
  19. <div id="projectname">RakNet
  20. &#160;<span id="projectnumber">4.0</span>
  21. </div>
  22. </td>
  23. </tr>
  24. </tbody>
  25. </table>
  26. </div>
  27. <!-- end header part -->
  28. <!-- Generated by Doxygen 1.8.2 -->
  29. <div id="navrow1" class="tabs">
  30. <ul class="tablist">
  31. <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  32. <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
  33. <li><a href="modules.html"><span>Modules</span></a></li>
  34. <li><a href="namespaces.html"><span>Namespaces</span></a></li>
  35. <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
  36. <li><a href="files.html"><span>Files</span></a></li>
  37. </ul>
  38. </div>
  39. <div id="navrow2" class="tabs2">
  40. <ul class="tablist">
  41. <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
  42. <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
  43. <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
  44. <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
  45. </ul>
  46. </div>
  47. <div id="nav-path" class="navpath">
  48. <ul>
  49. <li class="navelem"><a class="el" href="namespaceDataStructures.html">DataStructures</a></li><li class="navelem"><a class="el" href="classDataStructures_1_1Table.html">Table</a></li> </ul>
  50. </div>
  51. </div><!-- top -->
  52. <div class="header">
  53. <div class="summary">
  54. <a href="#nested-classes">Classes</a> &#124;
  55. <a href="#pub-types">Public Types</a> &#124;
  56. <a href="#pub-methods">Public Member Functions</a> &#124;
  57. <a href="classDataStructures_1_1Table-members.html">List of all members</a> </div>
  58. <div class="headertitle">
  59. <div class="title">DataStructures::Table Class Reference</div> </div>
  60. </div><!--header-->
  61. <div class="contents">
  62. <p>Holds a set of columns, a set of rows, and rows times columns cells.
  63. <a href="classDataStructures_1_1Table.html#details">More...</a></p>
  64. <p><code>#include &lt;DS_Table.h&gt;</code></p>
  65. <table class="memberdecls">
  66. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
  67. Classes</h2></td></tr>
  68. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDataStructures_1_1Table_1_1Cell.html">Cell</a></td></tr>
  69. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Holds the actual data in the table. <a href="structDataStructures_1_1Table_1_1Cell.html#details">More...</a><br/></td></tr>
  70. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  71. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDataStructures_1_1Table_1_1ColumnDescriptor.html">ColumnDescriptor</a></td></tr>
  72. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  73. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDataStructures_1_1Table_1_1Row.html">Row</a></td></tr>
  74. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the list of cells for this row, and a special flag used for internal sorting. <a href="structDataStructures_1_1Table_1_1Row.html#details">More...</a><br/></td></tr>
  75. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  76. </table><table class="memberdecls">
  77. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
  78. Public Types</h2></td></tr>
  79. <tr class="memitem:a736b2ab44bd8d4159bad88d4ae04665d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDataStructures_1_1Table.html#a736b2ab44bd8d4159bad88d4ae04665d">SortQueryType</a> </td></tr>
  80. <tr class="memdesc:a736b2ab44bd8d4159bad88d4ae04665d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Increasing or decreasing sort order. <br/></td></tr>
  81. <tr class="separator:a736b2ab44bd8d4159bad88d4ae04665d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  82. </table><table class="memberdecls">
  83. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
  84. Public Member Functions</h2></td></tr>
  85. <tr class="memitem:a12424b1f823e7ad2c6b1bd0ad99342da"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDataStructures_1_1Table.html#a12424b1f823e7ad2c6b1bd0ad99342da">AddColumn</a> (const char columnName[_TABLE_MAX_COLUMN_NAME_LENGTH], ColumnType columnType)</td></tr>
  86. <tr class="memdesc:a12424b1f823e7ad2c6b1bd0ad99342da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a column to the table. <a href="#a12424b1f823e7ad2c6b1bd0ad99342da"></a><br/></td></tr>
  87. <tr class="separator:a12424b1f823e7ad2c6b1bd0ad99342da"><td class="memSeparator" colspan="2">&#160;</td></tr>
  88. <tr class="memitem:a3b3b27505c500a4f1927ff32e5332fbb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDataStructures_1_1Table.html#a3b3b27505c500a4f1927ff32e5332fbb">RemoveColumn</a> (unsigned columnIndex)</td></tr>
  89. <tr class="memdesc:a3b3b27505c500a4f1927ff32e5332fbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes a column by index. <a href="#a3b3b27505c500a4f1927ff32e5332fbb"></a><br/></td></tr>
  90. <tr class="separator:a3b3b27505c500a4f1927ff32e5332fbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  91. <tr class="memitem:afa78235f4dea81b5150cffc50de32c81"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDataStructures_1_1Table.html#afa78235f4dea81b5150cffc50de32c81">ColumnIndex</a> (char columnName[_TABLE_MAX_COLUMN_NAME_LENGTH]) const </td></tr>
  92. <tr class="memdesc:afa78235f4dea81b5150cffc50de32c81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the index of a column by name. <a href="#afa78235f4dea81b5150cffc50de32c81"></a><br/></td></tr>
  93. <tr class="separator:afa78235f4dea81b5150cffc50de32c81"><td class="memSeparator" colspan="2">&#160;</td></tr>
  94. <tr class="memitem:a2897ef154b3fe20874cd9d5b92abafac"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDataStructures_1_1Table.html#a2897ef154b3fe20874cd9d5b92abafac">ColumnName</a> (unsigned index) const </td></tr>
  95. <tr class="memdesc:a2897ef154b3fe20874cd9d5b92abafac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gives the string name of the column at a certain index. <a href="#a2897ef154b3fe20874cd9d5b92abafac"></a><br/></td></tr>
  96. <tr class="separator:a2897ef154b3fe20874cd9d5b92abafac"><td class="memSeparator" colspan="2">&#160;</td></tr>
  97. <tr class="memitem:a47127c91ec827f714793a7adfd73f3e8"><td class="memItemLeft" align="right" valign="top">ColumnType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDataStructures_1_1Table.html#a47127c91ec827f714793a7adfd73f3e8">GetColumnType</a> (unsigned index) const </td></tr>
  98. <tr class="memdesc:a47127c91ec827f714793a7adfd73f3e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the type of a column, referenced by index. <a href="#a47127c91ec827f714793a7adfd73f3e8"></a><br/></td></tr>
  99. <tr class="separator:a47127c91ec827f714793a7adfd73f3e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  100. <tr class="memitem:a27d8e485daec7a9e9800de08f86828d1"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDataStructures_1_1Table.html#a27d8e485daec7a9e9800de08f86828d1">GetColumnCount</a> (void) const </td></tr>
  101. <tr class="separator:a27d8e485daec7a9e9800de08f86828d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  102. <tr class="memitem:a17ca98f3efdcab9be32839dc4b31a908"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDataStructures_1_1Table.html#a17ca98f3efdcab9be32839dc4b31a908">GetRowCount</a> (void) const </td></tr>
  103. <tr class="separator:a17ca98f3efdcab9be32839dc4b31a908"><td class="memSeparator" colspan="2">&#160;</td></tr>
  104. <tr class="memitem:af8b0a6069841f2d12b7f5df7c073adc7"><td class="memItemLeft" align="right" valign="top">Table::Row *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDataStructures_1_1Table.html#af8b0a6069841f2d12b7f5df7c073adc7">AddRow</a> (unsigned rowId)</td></tr>
  105. <tr class="memdesc:af8b0a6069841f2d12b7f5df7c073adc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a row to the table. <a href="#af8b0a6069841f2d12b7f5df7c073adc7"></a><br/></td></tr>
  106. <tr class="separator:af8b0a6069841f2d12b7f5df7c073adc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  107. <tr class="memitem:a077db0ae39434486f93d652fdd7b8dcc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDataStructures_1_1Table.html#a077db0ae39434486f93d652fdd7b8dcc">RemoveRow</a> (unsigned rowId)</td></tr>
  108. <tr class="memdesc:a077db0ae39434486f93d652fdd7b8dcc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes a row specified by rowId. <a href="#a077db0ae39434486f93d652fdd7b8dcc"></a><br/></td></tr>
  109. <tr class="separator:a077db0ae39434486f93d652fdd7b8dcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
  110. <tr class="memitem:adfdf8f33215a3ef5e990350c429fe902"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDataStructures_1_1Table.html#adfdf8f33215a3ef5e990350c429fe902">RemoveRows</a> (<a class="el" href="classDataStructures_1_1Table.html">Table</a> *tableContainingRowIDs)</td></tr>
  111. <tr class="memdesc:adfdf8f33215a3ef5e990350c429fe902"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes all the rows with IDs that the specified table also has. <a href="#adfdf8f33215a3ef5e990350c429fe902"></a><br/></td></tr>
  112. <tr class="separator:adfdf8f33215a3ef5e990350c429fe902"><td class="memSeparator" colspan="2">&#160;</td></tr>
  113. <tr class="memitem:a0a4b90bc65f1673e8af54b2d190cb35b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDataStructures_1_1Table.html#a0a4b90bc65f1673e8af54b2d190cb35b">UpdateCell</a> (unsigned rowId, unsigned columnIndex, int value)</td></tr>
  114. <tr class="memdesc:a0a4b90bc65f1673e8af54b2d190cb35b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates a particular cell in the table. <a href="#a0a4b90bc65f1673e8af54b2d190cb35b"></a><br/></td></tr>
  115. <tr class="separator:a0a4b90bc65f1673e8af54b2d190cb35b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  116. <tr class="memitem:a8700ceea2b9d81d3a4a3ef8e2034b762"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8700ceea2b9d81d3a4a3ef8e2034b762"></a>
  117. void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDataStructures_1_1Table.html#a8700ceea2b9d81d3a4a3ef8e2034b762">GetCellValueByIndex</a> (unsigned rowIndex, unsigned columnIndex, int *output)</td></tr>
  118. <tr class="memdesc:a8700ceea2b9d81d3a4a3ef8e2034b762"><td class="mdescLeft">&#160;</td><td class="mdescRight">Note this is much less efficient to call than GetRow, then working with the cells directly. Numeric, string, binary. <br/></td></tr>
  119. <tr class="separator:a8700ceea2b9d81d3a4a3ef8e2034b762"><td class="memSeparator" colspan="2">&#160;</td></tr>
  120. <tr class="memitem:afb41a20bcf3a3d3af431944d8fede211"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDataStructures_1_1Table_1_1Row.html">Row</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDataStructures_1_1Table.html#afb41a20bcf3a3d3af431944d8fede211">GetRowByID</a> (unsigned rowId) const </td></tr>
  121. <tr class="memdesc:afb41a20bcf3a3d3af431944d8fede211"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a row. More efficient to do this and access Row::cells than to repeatedly call GetCell. You can also update cells in rows from this function. <a href="#afb41a20bcf3a3d3af431944d8fede211"></a><br/></td></tr>
  122. <tr class="separator:afb41a20bcf3a3d3af431944d8fede211"><td class="memSeparator" colspan="2">&#160;</td></tr>
  123. <tr class="memitem:aa1e5c3881ba2622651ae978b38d462b5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDataStructures_1_1Table_1_1Row.html">Row</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDataStructures_1_1Table.html#aa1e5c3881ba2622651ae978b38d462b5">GetRowByIndex</a> (unsigned rowIndex, unsigned *key) const </td></tr>
  124. <tr class="memdesc:aa1e5c3881ba2622651ae978b38d462b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a row at a specific index. rowIndex should be less than <a class="el" href="classDataStructures_1_1Table.html#a17ca98f3efdcab9be32839dc4b31a908">GetRowCount()</a> <a href="#aa1e5c3881ba2622651ae978b38d462b5"></a><br/></td></tr>
  125. <tr class="separator:aa1e5c3881ba2622651ae978b38d462b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  126. <tr class="memitem:acb577f868d66e588ec14f6bc896bd214"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDataStructures_1_1Table.html#acb577f868d66e588ec14f6bc896bd214">QueryTable</a> (unsigned *columnIndicesSubset, unsigned numColumnSubset, FilterQuery *inclusionFilters, unsigned numInclusionFilters, unsigned *rowIds, unsigned numRowIDs, <a class="el" href="classDataStructures_1_1Table.html">Table</a> *result)</td></tr>
  127. <tr class="memdesc:acb577f868d66e588ec14f6bc896bd214"><td class="mdescLeft">&#160;</td><td class="mdescRight">Queries the table, optionally returning only a subset of columns and rows. <a href="#acb577f868d66e588ec14f6bc896bd214"></a><br/></td></tr>
  128. <tr class="separator:acb577f868d66e588ec14f6bc896bd214"><td class="memSeparator" colspan="2">&#160;</td></tr>
  129. <tr class="memitem:af29ddcd506b4752cd3904d4a808f9b24"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDataStructures_1_1Table.html#af29ddcd506b4752cd3904d4a808f9b24">SortTable</a> (Table::SortQuery *sortQueries, unsigned numSortQueries, Table::Row **out)</td></tr>
  130. <tr class="memdesc:af29ddcd506b4752cd3904d4a808f9b24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sorts the table by rows. <a href="#af29ddcd506b4752cd3904d4a808f9b24"></a><br/></td></tr>
  131. <tr class="separator:af29ddcd506b4752cd3904d4a808f9b24"><td class="memSeparator" colspan="2">&#160;</td></tr>
  132. <tr class="memitem:a636d2add07f010ec42117e69bbc92f9b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a636d2add07f010ec42117e69bbc92f9b"></a>
  133. void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDataStructures_1_1Table.html#a636d2add07f010ec42117e69bbc92f9b">Clear</a> (void)</td></tr>
  134. <tr class="memdesc:a636d2add07f010ec42117e69bbc92f9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees all memory in the table. <br/></td></tr>
  135. <tr class="separator:a636d2add07f010ec42117e69bbc92f9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  136. <tr class="memitem:ad5f587492c6580c62623dde2cead1bd7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDataStructures_1_1Table.html#ad5f587492c6580c62623dde2cead1bd7">PrintColumnHeaders</a> (char *out, int outLength, char columnDelineator) const </td></tr>
  137. <tr class="memdesc:ad5f587492c6580c62623dde2cead1bd7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints out the names of all the columns. <a href="#ad5f587492c6580c62623dde2cead1bd7"></a><br/></td></tr>
  138. <tr class="separator:ad5f587492c6580c62623dde2cead1bd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  139. <tr class="memitem:a83e4bccb2150bb954719fcccdeeea947"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDataStructures_1_1Table.html#a83e4bccb2150bb954719fcccdeeea947">PrintRow</a> (char *out, int outLength, char columnDelineator, bool printDelineatorForBinary, Table::Row *inputRow) const </td></tr>
  140. <tr class="memdesc:a83e4bccb2150bb954719fcccdeeea947"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a text representation of the row to <em>out</em>. <a href="#a83e4bccb2150bb954719fcccdeeea947"></a><br/></td></tr>
  141. <tr class="separator:a83e4bccb2150bb954719fcccdeeea947"><td class="memSeparator" colspan="2">&#160;</td></tr>
  142. <tr class="memitem:afed108893d6386de885d6851fdf9ec64"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afed108893d6386de885d6851fdf9ec64"></a>
  143. const <a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a><br class="typebreak"/>
  144. &lt; <a class="el" href="structDataStructures_1_1Table_1_1ColumnDescriptor.html">ColumnDescriptor</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDataStructures_1_1Table.html#afed108893d6386de885d6851fdf9ec64">GetColumns</a> (void) const </td></tr>
  145. <tr class="memdesc:afed108893d6386de885d6851fdf9ec64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direct access to make things easier. <br/></td></tr>
  146. <tr class="separator:afed108893d6386de885d6851fdf9ec64"><td class="memSeparator" colspan="2">&#160;</td></tr>
  147. <tr class="memitem:af80dba550b9df6ec50e242bec0edcd04"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af80dba550b9df6ec50e242bec0edcd04"></a>
  148. const <br class="typebreak"/>
  149. <a class="el" href="classDataStructures_1_1BPlusTree.html">DataStructures::BPlusTree</a><br class="typebreak"/>
  150. &lt; unsigned, <a class="el" href="structDataStructures_1_1Table_1_1Row.html">Row</a> <br class="typebreak"/>
  151. *, _TABLE_BPLUS_TREE_ORDER &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDataStructures_1_1Table.html#af80dba550b9df6ec50e242bec0edcd04">GetRows</a> (void) const </td></tr>
  152. <tr class="memdesc:af80dba550b9df6ec50e242bec0edcd04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direct access to make things easier. <br/></td></tr>
  153. <tr class="separator:af80dba550b9df6ec50e242bec0edcd04"><td class="memSeparator" colspan="2">&#160;</td></tr>
  154. <tr class="memitem:aa3680c65795f9b6f5fafde5bacd95d06"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa3680c65795f9b6f5fafde5bacd95d06"></a>
  155. <a class="el" href="structDataStructures_1_1Page.html">DataStructures::Page</a>&lt; unsigned, <br class="typebreak"/>
  156. <a class="el" href="structDataStructures_1_1Table_1_1Row.html">Row</a> *, _TABLE_BPLUS_TREE_ORDER &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDataStructures_1_1Table.html#aa3680c65795f9b6f5fafde5bacd95d06">GetListHead</a> (void)</td></tr>
  157. <tr class="memdesc:aa3680c65795f9b6f5fafde5bacd95d06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the head of a linked list containing all the row data. <br/></td></tr>
  158. <tr class="separator:aa3680c65795f9b6f5fafde5bacd95d06"><td class="memSeparator" colspan="2">&#160;</td></tr>
  159. <tr class="memitem:ad39be87bf219159db7110878c97d36f3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad39be87bf219159db7110878c97d36f3"></a>
  160. unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDataStructures_1_1Table.html#ad39be87bf219159db7110878c97d36f3">GetAvailableRowId</a> (void) const </td></tr>
  161. <tr class="memdesc:ad39be87bf219159db7110878c97d36f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the first free row id. This could be made more efficient. <br/></td></tr>
  162. <tr class="separator:ad39be87bf219159db7110878c97d36f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  163. </table>
  164. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  165. <div class="textblock"><p>Holds a set of columns, a set of rows, and rows times columns cells. </p>
  166. <p>The table data structure is useful if you want to store a set of structures and perform queries on those structures.<br/>
  167. This is a relatively simple and fast implementation of the types of tables commonly used in databases.<br/>
  168. See TableSerializer to serialize data members of the table.<br/>
  169. See LightweightDatabaseClient and LightweightDatabaseServer to transmit the table over the network. </p>
  170. </div><h2 class="groupheader">Member Function Documentation</h2>
  171. <a class="anchor" id="a12424b1f823e7ad2c6b1bd0ad99342da"></a>
  172. <div class="memitem">
  173. <div class="memproto">
  174. <table class="memname">
  175. <tr>
  176. <td class="memname">unsigned DataStructures::Table::AddColumn </td>
  177. <td>(</td>
  178. <td class="paramtype">const char&#160;</td>
  179. <td class="paramname"><em>columnName</em>[_TABLE_MAX_COLUMN_NAME_LENGTH], </td>
  180. </tr>
  181. <tr>
  182. <td class="paramkey"></td>
  183. <td></td>
  184. <td class="paramtype">ColumnType&#160;</td>
  185. <td class="paramname"><em>columnType</em>&#160;</td>
  186. </tr>
  187. <tr>
  188. <td></td>
  189. <td>)</td>
  190. <td></td><td></td>
  191. </tr>
  192. </table>
  193. </div><div class="memdoc">
  194. <p>Adds a column to the table. </p>
  195. <dl class="params"><dt>Parameters</dt><dd>
  196. <table class="params">
  197. <tr><td class="paramdir">[in]</td><td class="paramname">columnName</td><td>The name of the column </td></tr>
  198. <tr><td class="paramdir">[in]</td><td class="paramname">columnType</td><td>What type of data this column will hold </td></tr>
  199. </table>
  200. </dd>
  201. </dl>
  202. <dl class="section return"><dt>Returns</dt><dd>The index of the new column </dd></dl>
  203. </div>
  204. </div>
  205. <a class="anchor" id="af8b0a6069841f2d12b7f5df7c073adc7"></a>
  206. <div class="memitem">
  207. <div class="memproto">
  208. <table class="memname">
  209. <tr>
  210. <td class="memname">Table::Row* DataStructures::Table::AddRow </td>
  211. <td>(</td>
  212. <td class="paramtype">unsigned&#160;</td>
  213. <td class="paramname"><em>rowId</em></td><td>)</td>
  214. <td></td>
  215. </tr>
  216. </table>
  217. </div><div class="memdoc">
  218. <p>Adds a row to the table. </p>
  219. <p>New rows are added with empty values for all cells. However, if you specify initialCelLValues you can specify initial values It's up to you to ensure that the values in the specific cells match the type of data used by that row rowId can be considered the primary key for the row. It is much faster to lookup a row by its rowId than by searching keys. rowId must be unique Rows are stored in sorted order in the table, using rowId as the sort key </p>
  220. <dl class="params"><dt>Parameters</dt><dd>
  221. <table class="params">
  222. <tr><td class="paramdir">[in]</td><td class="paramname">rowId</td><td>The UNIQUE primary key for the row. This can never be changed. </td></tr>
  223. <tr><td class="paramdir">[in]</td><td class="paramname">initialCellValues</td><td>Initial values to give the row (optional) </td></tr>
  224. </table>
  225. </dd>
  226. </dl>
  227. <dl class="section return"><dt>Returns</dt><dd>The newly added row </dd></dl>
  228. </div>
  229. </div>
  230. <a class="anchor" id="afa78235f4dea81b5150cffc50de32c81"></a>
  231. <div class="memitem">
  232. <div class="memproto">
  233. <table class="memname">
  234. <tr>
  235. <td class="memname">unsigned DataStructures::Table::ColumnIndex </td>
  236. <td>(</td>
  237. <td class="paramtype">char&#160;</td>
  238. <td class="paramname"><em>columnName</em>[_TABLE_MAX_COLUMN_NAME_LENGTH]</td><td>)</td>
  239. <td> const</td>
  240. </tr>
  241. </table>
  242. </div><div class="memdoc">
  243. <p>Gets the index of a column by name. </p>
  244. <p>Column indices are stored in the order they are added. </p>
  245. <dl class="params"><dt>Parameters</dt><dd>
  246. <table class="params">
  247. <tr><td class="paramdir">[in]</td><td class="paramname">columnName</td><td>The name of the column </td></tr>
  248. </table>
  249. </dd>
  250. </dl>
  251. <dl class="section return"><dt>Returns</dt><dd>The index of the column, or (unsigned)-1 if no such column </dd></dl>
  252. </div>
  253. </div>
  254. <a class="anchor" id="a2897ef154b3fe20874cd9d5b92abafac"></a>
  255. <div class="memitem">
  256. <div class="memproto">
  257. <table class="memname">
  258. <tr>
  259. <td class="memname">char* DataStructures::Table::ColumnName </td>
  260. <td>(</td>
  261. <td class="paramtype">unsigned&#160;</td>
  262. <td class="paramname"><em>index</em></td><td>)</td>
  263. <td> const</td>
  264. </tr>
  265. </table>
  266. </div><div class="memdoc">
  267. <p>Gives the string name of the column at a certain index. </p>
  268. <dl class="params"><dt>Parameters</dt><dd>
  269. <table class="params">
  270. <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>The index of the column </td></tr>
  271. </table>
  272. </dd>
  273. </dl>
  274. <dl class="section return"><dt>Returns</dt><dd>The name of the column, or 0 if an invalid index </dd></dl>
  275. </div>
  276. </div>
  277. <a class="anchor" id="a27d8e485daec7a9e9800de08f86828d1"></a>
  278. <div class="memitem">
  279. <div class="memproto">
  280. <table class="memname">
  281. <tr>
  282. <td class="memname">unsigned DataStructures::Table::GetColumnCount </td>
  283. <td>(</td>
  284. <td class="paramtype">void&#160;</td>
  285. <td class="paramname"></td><td>)</td>
  286. <td> const</td>
  287. </tr>
  288. </table>
  289. </div><div class="memdoc">
  290. <p>Returns the number of columns </p>
  291. <dl class="section return"><dt>Returns</dt><dd>The number of columns in the table </dd></dl>
  292. </div>
  293. </div>
  294. <a class="anchor" id="a47127c91ec827f714793a7adfd73f3e8"></a>
  295. <div class="memitem">
  296. <div class="memproto">
  297. <table class="memname">
  298. <tr>
  299. <td class="memname">ColumnType DataStructures::Table::GetColumnType </td>
  300. <td>(</td>
  301. <td class="paramtype">unsigned&#160;</td>
  302. <td class="paramname"><em>index</em></td><td>)</td>
  303. <td> const</td>
  304. </tr>
  305. </table>
  306. </div><div class="memdoc">
  307. <p>Returns the type of a column, referenced by index. </p>
  308. <dl class="params"><dt>Parameters</dt><dd>
  309. <table class="params">
  310. <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>The index of the column </td></tr>
  311. </table>
  312. </dd>
  313. </dl>
  314. <dl class="section return"><dt>Returns</dt><dd>The type of the column </dd></dl>
  315. </div>
  316. </div>
  317. <a class="anchor" id="afb41a20bcf3a3d3af431944d8fede211"></a>
  318. <div class="memitem">
  319. <div class="memproto">
  320. <table class="memname">
  321. <tr>
  322. <td class="memname"><a class="el" href="structDataStructures_1_1Table_1_1Row.html">Row</a>* DataStructures::Table::GetRowByID </td>
  323. <td>(</td>
  324. <td class="paramtype">unsigned&#160;</td>
  325. <td class="paramname"><em>rowId</em></td><td>)</td>
  326. <td> const</td>
  327. </tr>
  328. </table>
  329. </div><div class="memdoc">
  330. <p>Gets a row. More efficient to do this and access Row::cells than to repeatedly call GetCell. You can also update cells in rows from this function. </p>
  331. <dl class="params"><dt>Parameters</dt><dd>
  332. <table class="params">
  333. <tr><td class="paramdir">[in]</td><td class="paramname">rowId</td><td>The ID of the row </td></tr>
  334. </table>
  335. </dd>
  336. </dl>
  337. <dl class="section return"><dt>Returns</dt><dd>The desired row, or 0 if no such row. </dd></dl>
  338. </div>
  339. </div>
  340. <a class="anchor" id="aa1e5c3881ba2622651ae978b38d462b5"></a>
  341. <div class="memitem">
  342. <div class="memproto">
  343. <table class="memname">
  344. <tr>
  345. <td class="memname"><a class="el" href="structDataStructures_1_1Table_1_1Row.html">Row</a>* DataStructures::Table::GetRowByIndex </td>
  346. <td>(</td>
  347. <td class="paramtype">unsigned&#160;</td>
  348. <td class="paramname"><em>rowIndex</em>, </td>
  349. </tr>
  350. <tr>
  351. <td class="paramkey"></td>
  352. <td></td>
  353. <td class="paramtype">unsigned *&#160;</td>
  354. <td class="paramname"><em>key</em>&#160;</td>
  355. </tr>
  356. <tr>
  357. <td></td>
  358. <td>)</td>
  359. <td></td><td> const</td>
  360. </tr>
  361. </table>
  362. </div><div class="memdoc">
  363. <p>Gets a row at a specific index. rowIndex should be less than <a class="el" href="classDataStructures_1_1Table.html#a17ca98f3efdcab9be32839dc4b31a908">GetRowCount()</a> </p>
  364. <dl class="params"><dt>Parameters</dt><dd>
  365. <table class="params">
  366. <tr><td class="paramdir">[in]</td><td class="paramname">rowIndex</td><td>The index of the row </td></tr>
  367. <tr><td class="paramdir">[out]</td><td class="paramname">key</td><td>The ID of the row returned </td></tr>
  368. </table>
  369. </dd>
  370. </dl>
  371. <dl class="section return"><dt>Returns</dt><dd>The desired row, or 0 if no such row. </dd></dl>
  372. </div>
  373. </div>
  374. <a class="anchor" id="a17ca98f3efdcab9be32839dc4b31a908"></a>
  375. <div class="memitem">
  376. <div class="memproto">
  377. <table class="memname">
  378. <tr>
  379. <td class="memname">unsigned DataStructures::Table::GetRowCount </td>
  380. <td>(</td>
  381. <td class="paramtype">void&#160;</td>
  382. <td class="paramname"></td><td>)</td>
  383. <td> const</td>
  384. </tr>
  385. </table>
  386. </div><div class="memdoc">
  387. <p>Returns the number of rows </p>
  388. <dl class="section return"><dt>Returns</dt><dd>The number of rows in the table </dd></dl>
  389. </div>
  390. </div>
  391. <a class="anchor" id="ad5f587492c6580c62623dde2cead1bd7"></a>
  392. <div class="memitem">
  393. <div class="memproto">
  394. <table class="memname">
  395. <tr>
  396. <td class="memname">void DataStructures::Table::PrintColumnHeaders </td>
  397. <td>(</td>
  398. <td class="paramtype">char *&#160;</td>
  399. <td class="paramname"><em>out</em>, </td>
  400. </tr>
  401. <tr>
  402. <td class="paramkey"></td>
  403. <td></td>
  404. <td class="paramtype">int&#160;</td>
  405. <td class="paramname"><em>outLength</em>, </td>
  406. </tr>
  407. <tr>
  408. <td class="paramkey"></td>
  409. <td></td>
  410. <td class="paramtype">char&#160;</td>
  411. <td class="paramname"><em>columnDelineator</em>&#160;</td>
  412. </tr>
  413. <tr>
  414. <td></td>
  415. <td>)</td>
  416. <td></td><td> const</td>
  417. </tr>
  418. </table>
  419. </div><div class="memdoc">
  420. <p>Prints out the names of all the columns. </p>
  421. <dl class="params"><dt>Parameters</dt><dd>
  422. <table class="params">
  423. <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>A pointer to an array of bytes which will hold the output. </td></tr>
  424. <tr><td class="paramdir">[in]</td><td class="paramname">outLength</td><td>The size of the <em>out</em> array </td></tr>
  425. <tr><td class="paramdir">[in]</td><td class="paramname">columnDelineator</td><td>What character to print to delineate columns </td></tr>
  426. </table>
  427. </dd>
  428. </dl>
  429. </div>
  430. </div>
  431. <a class="anchor" id="a83e4bccb2150bb954719fcccdeeea947"></a>
  432. <div class="memitem">
  433. <div class="memproto">
  434. <table class="memname">
  435. <tr>
  436. <td class="memname">void DataStructures::Table::PrintRow </td>
  437. <td>(</td>
  438. <td class="paramtype">char *&#160;</td>
  439. <td class="paramname"><em>out</em>, </td>
  440. </tr>
  441. <tr>
  442. <td class="paramkey"></td>
  443. <td></td>
  444. <td class="paramtype">int&#160;</td>
  445. <td class="paramname"><em>outLength</em>, </td>
  446. </tr>
  447. <tr>
  448. <td class="paramkey"></td>
  449. <td></td>
  450. <td class="paramtype">char&#160;</td>
  451. <td class="paramname"><em>columnDelineator</em>, </td>
  452. </tr>
  453. <tr>
  454. <td class="paramkey"></td>
  455. <td></td>
  456. <td class="paramtype">bool&#160;</td>
  457. <td class="paramname"><em>printDelineatorForBinary</em>, </td>
  458. </tr>
  459. <tr>
  460. <td class="paramkey"></td>
  461. <td></td>
  462. <td class="paramtype">Table::Row *&#160;</td>
  463. <td class="paramname"><em>inputRow</em>&#160;</td>
  464. </tr>
  465. <tr>
  466. <td></td>
  467. <td>)</td>
  468. <td></td><td> const</td>
  469. </tr>
  470. </table>
  471. </div><div class="memdoc">
  472. <p>Writes a text representation of the row to <em>out</em>. </p>
  473. <dl class="params"><dt>Parameters</dt><dd>
  474. <table class="params">
  475. <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>A pointer to an array of bytes which will hold the output. </td></tr>
  476. <tr><td class="paramdir">[in]</td><td class="paramname">outLength</td><td>The size of the <em>out</em> array </td></tr>
  477. <tr><td class="paramdir">[in]</td><td class="paramname">columnDelineator</td><td>What character to print to delineate columns </td></tr>
  478. <tr><td class="paramdir">[in]</td><td class="paramname">printDelineatorForBinary</td><td>Binary output is not printed. True to still print the delineator. </td></tr>
  479. <tr><td class="paramdir">[in]</td><td class="paramname">inputRow</td><td>The row to print </td></tr>
  480. </table>
  481. </dd>
  482. </dl>
  483. </div>
  484. </div>
  485. <a class="anchor" id="acb577f868d66e588ec14f6bc896bd214"></a>
  486. <div class="memitem">
  487. <div class="memproto">
  488. <table class="memname">
  489. <tr>
  490. <td class="memname">void DataStructures::Table::QueryTable </td>
  491. <td>(</td>
  492. <td class="paramtype">unsigned *&#160;</td>
  493. <td class="paramname"><em>columnIndicesSubset</em>, </td>
  494. </tr>
  495. <tr>
  496. <td class="paramkey"></td>
  497. <td></td>
  498. <td class="paramtype">unsigned&#160;</td>
  499. <td class="paramname"><em>numColumnSubset</em>, </td>
  500. </tr>
  501. <tr>
  502. <td class="paramkey"></td>
  503. <td></td>
  504. <td class="paramtype">FilterQuery *&#160;</td>
  505. <td class="paramname"><em>inclusionFilters</em>, </td>
  506. </tr>
  507. <tr>
  508. <td class="paramkey"></td>
  509. <td></td>
  510. <td class="paramtype">unsigned&#160;</td>
  511. <td class="paramname"><em>numInclusionFilters</em>, </td>
  512. </tr>
  513. <tr>
  514. <td class="paramkey"></td>
  515. <td></td>
  516. <td class="paramtype">unsigned *&#160;</td>
  517. <td class="paramname"><em>rowIds</em>, </td>
  518. </tr>
  519. <tr>
  520. <td class="paramkey"></td>
  521. <td></td>
  522. <td class="paramtype">unsigned&#160;</td>
  523. <td class="paramname"><em>numRowIDs</em>, </td>
  524. </tr>
  525. <tr>
  526. <td class="paramkey"></td>
  527. <td></td>
  528. <td class="paramtype"><a class="el" href="classDataStructures_1_1Table.html">Table</a> *&#160;</td>
  529. <td class="paramname"><em>result</em>&#160;</td>
  530. </tr>
  531. <tr>
  532. <td></td>
  533. <td>)</td>
  534. <td></td><td></td>
  535. </tr>
  536. </table>
  537. </div><div class="memdoc">
  538. <p>Queries the table, optionally returning only a subset of columns and rows. </p>
  539. <dl class="params"><dt>Parameters</dt><dd>
  540. <table class="params">
  541. <tr><td class="paramdir">[in]</td><td class="paramname">columnSubset</td><td>An array of column indices. Only columns in this array are returned. Pass 0 for all columns </td></tr>
  542. <tr><td class="paramdir">[in]</td><td class="paramname">numColumnSubset</td><td>The number of elements in <em>columnSubset</em> </td></tr>
  543. <tr><td class="paramdir">[in]</td><td class="paramname">inclusionFilters</td><td>An array of FilterQuery. All filters must pass for the row to be returned. </td></tr>
  544. <tr><td class="paramdir">[in]</td><td class="paramname">numInclusionFilters</td><td>The number of elements in <em>inclusionFilters</em> </td></tr>
  545. <tr><td class="paramdir">[in]</td><td class="paramname">rowIds</td><td>An arrow of row IDs. Only these rows with these IDs are returned. Pass 0 for all rows. </td></tr>
  546. <tr><td class="paramdir">[in]</td><td class="paramname">numRowIDs</td><td>The number of elements in <em>rowIds</em> </td></tr>
  547. <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>The result of the query. If no rows are returned, the table will only have columns. </td></tr>
  548. </table>
  549. </dd>
  550. </dl>
  551. </div>
  552. </div>
  553. <a class="anchor" id="a3b3b27505c500a4f1927ff32e5332fbb"></a>
  554. <div class="memitem">
  555. <div class="memproto">
  556. <table class="memname">
  557. <tr>
  558. <td class="memname">void DataStructures::Table::RemoveColumn </td>
  559. <td>(</td>
  560. <td class="paramtype">unsigned&#160;</td>
  561. <td class="paramname"><em>columnIndex</em></td><td>)</td>
  562. <td></td>
  563. </tr>
  564. </table>
  565. </div><div class="memdoc">
  566. <p>Removes a column by index. </p>
  567. <dl class="params"><dt>Parameters</dt><dd>
  568. <table class="params">
  569. <tr><td class="paramdir">[in]</td><td class="paramname">columnIndex</td><td>The index of the column to remove </td></tr>
  570. </table>
  571. </dd>
  572. </dl>
  573. </div>
  574. </div>
  575. <a class="anchor" id="a077db0ae39434486f93d652fdd7b8dcc"></a>
  576. <div class="memitem">
  577. <div class="memproto">
  578. <table class="memname">
  579. <tr>
  580. <td class="memname">bool DataStructures::Table::RemoveRow </td>
  581. <td>(</td>
  582. <td class="paramtype">unsigned&#160;</td>
  583. <td class="paramname"><em>rowId</em></td><td>)</td>
  584. <td></td>
  585. </tr>
  586. </table>
  587. </div><div class="memdoc">
  588. <p>Removes a row specified by rowId. </p>
  589. <dl class="params"><dt>Parameters</dt><dd>
  590. <table class="params">
  591. <tr><td class="paramdir">[in]</td><td class="paramname">rowId</td><td>The ID of the row </td></tr>
  592. </table>
  593. </dd>
  594. </dl>
  595. <dl class="section return"><dt>Returns</dt><dd>true if the row was deleted. False if not. </dd></dl>
  596. </div>
  597. </div>
  598. <a class="anchor" id="adfdf8f33215a3ef5e990350c429fe902"></a>
  599. <div class="memitem">
  600. <div class="memproto">
  601. <table class="memname">
  602. <tr>
  603. <td class="memname">void DataStructures::Table::RemoveRows </td>
  604. <td>(</td>
  605. <td class="paramtype"><a class="el" href="classDataStructures_1_1Table.html">Table</a> *&#160;</td>
  606. <td class="paramname"><em>tableContainingRowIDs</em></td><td>)</td>
  607. <td></td>
  608. </tr>
  609. </table>
  610. </div><div class="memdoc">
  611. <p>Removes all the rows with IDs that the specified table also has. </p>
  612. <dl class="params"><dt>Parameters</dt><dd>
  613. <table class="params">
  614. <tr><td class="paramdir">[in]</td><td class="paramname">tableContainingRowIDs</td><td>The IDs of the rows </td></tr>
  615. </table>
  616. </dd>
  617. </dl>
  618. </div>
  619. </div>
  620. <a class="anchor" id="af29ddcd506b4752cd3904d4a808f9b24"></a>
  621. <div class="memitem">
  622. <div class="memproto">
  623. <table class="memname">
  624. <tr>
  625. <td class="memname">void DataStructures::Table::SortTable </td>
  626. <td>(</td>
  627. <td class="paramtype">Table::SortQuery *&#160;</td>
  628. <td class="paramname"><em>sortQueries</em>, </td>
  629. </tr>
  630. <tr>
  631. <td class="paramkey"></td>
  632. <td></td>
  633. <td class="paramtype">unsigned&#160;</td>
  634. <td class="paramname"><em>numSortQueries</em>, </td>
  635. </tr>
  636. <tr>
  637. <td class="paramkey"></td>
  638. <td></td>
  639. <td class="paramtype">Table::Row **&#160;</td>
  640. <td class="paramname"><em>out</em>&#160;</td>
  641. </tr>
  642. <tr>
  643. <td></td>
  644. <td>)</td>
  645. <td></td><td></td>
  646. </tr>
  647. </table>
  648. </div><div class="memdoc">
  649. <p>Sorts the table by rows. </p>
  650. <p>You can sort the table in ascending or descending order on one or more columns Columns have precedence in the order they appear in the <em>sortQueries</em> array If a row cell on column n has the same value as a a different row on column n, then the row will be compared on column n+1 </p>
  651. <dl class="params"><dt>Parameters</dt><dd>
  652. <table class="params">
  653. <tr><td class="paramdir">[in]</td><td class="paramname">sortQueries</td><td>A list of SortQuery structures, defining the sorts to perform on the table </td></tr>
  654. <tr><td class="paramdir">[in]</td><td class="paramname">numColumnSubset</td><td>The number of elements in <em>numSortQueries</em> </td></tr>
  655. <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>The address of an array of Rows, which will receive the sorted output. The array must be long enough to contain all returned rows, up to <a class="el" href="classDataStructures_1_1Table.html#a17ca98f3efdcab9be32839dc4b31a908">GetRowCount()</a> </td></tr>
  656. </table>
  657. </dd>
  658. </dl>
  659. </div>
  660. </div>
  661. <a class="anchor" id="a0a4b90bc65f1673e8af54b2d190cb35b"></a>
  662. <div class="memitem">
  663. <div class="memproto">
  664. <table class="memname">
  665. <tr>
  666. <td class="memname">bool DataStructures::Table::UpdateCell </td>
  667. <td>(</td>
  668. <td class="paramtype">unsigned&#160;</td>
  669. <td class="paramname"><em>rowId</em>, </td>
  670. </tr>
  671. <tr>
  672. <td class="paramkey"></td>
  673. <td></td>
  674. <td class="paramtype">unsigned&#160;</td>
  675. <td class="paramname"><em>columnIndex</em>, </td>
  676. </tr>
  677. <tr>
  678. <td class="paramkey"></td>
  679. <td></td>
  680. <td class="paramtype">int&#160;</td>
  681. <td class="paramname"><em>value</em>&#160;</td>
  682. </tr>
  683. <tr>
  684. <td></td>
  685. <td>)</td>
  686. <td></td><td></td>
  687. </tr>
  688. </table>
  689. </div><div class="memdoc">
  690. <p>Updates a particular cell in the table. </p>
  691. <dl class="section note"><dt>Note</dt><dd>If you are going to update many cells of a particular row, it is more efficient to call GetRow and perform the operations on the row directly. </dd>
  692. <dd>
  693. <a class="el" href="structDataStructures_1_1Table_1_1Row.html" title="Stores the list of cells for this row, and a special flag used for internal sorting.">Row</a> pointers do not change, so you can also write directly to the rows for more efficiency. </dd></dl>
  694. <dl class="params"><dt>Parameters</dt><dd>
  695. <table class="params">
  696. <tr><td class="paramdir">[in]</td><td class="paramname">rowId</td><td>The ID of the row </td></tr>
  697. <tr><td class="paramdir">[in]</td><td class="paramname">columnIndex</td><td>The column of the cell </td></tr>
  698. <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>The data to set </td></tr>
  699. </table>
  700. </dd>
  701. </dl>
  702. </div>
  703. </div>
  704. <hr/>The documentation for this class was generated from the following file:<ul>
  705. <li>D:/temp/RakNet_PC/Source/<a class="el" href="DS__Table_8h.html">DS_Table.h</a></li>
  706. </ul>
  707. </div><!-- contents -->
  708. <!-- start footer part -->
  709. <hr class="footer"/><address class="footer"><small>
  710. Generated on Mon Jun 2 2014 20:10:28 for RakNet by &#160;<a href="http://www.doxygen.org/index.html">
  711. <img class="footer" src="doxygen.png" alt="doxygen"/>
  712. </a> 1.8.2
  713. </small></address>
  714. </body>
  715. </html>
粤ICP备19079148号