aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a02833.html
diff options
context:
space:
mode:
authorneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
committerneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
commit0ea5fc66924303d1bf73ba283a383e2aadee02f2 (patch)
tree2568e71a7ccc44ec23b8bb3f0ff97fb6bf2ed709 /docs/doxygen/nel/a02833.html
downloadnevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz
nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip
Initial commit
Diffstat (limited to 'docs/doxygen/nel/a02833.html')
-rw-r--r--docs/doxygen/nel/a02833.html189
1 files changed, 189 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02833.html b/docs/doxygen/nel/a02833.html
new file mode 100644
index 00000000..a8886a62
--- /dev/null
+++ b/docs/doxygen/nel/a02833.html
@@ -0,0 +1,189 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>NeL: TemplateSTRING_MANAGER::CMakeDiff&lt; ItemType, Context, GetIdentifier, GetHashValue, TestItem &gt; class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.6 -->
+<div class="qindex"> <form class="search" action="search.php" method="get">
+<a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
+<h1>STRING_MANAGER::CMakeDiff&lt; ItemType, Context, GetIdentifier, GetHashValue, TestItem &gt; Class Template Reference</h1><code>#include &lt;<a class="el" href="a05635.html">diff_tool.h</a>&gt;</code>
+<p>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template&lt;class ItemType, class Context, class GetIdentifier = TGetIdentifier&lt;ItemType&gt;, class GetHashValue = TGetHashValue&lt;ItemType&gt;, class TestItem = TTestItem&lt;ItemType&gt;&gt;<br>
+ class STRING_MANAGER::CMakeDiff&lt; ItemType, Context, GetIdentifier, GetHashValue, TestItem &gt;</h3>
+
+ItemType must have a property named Identifier that uniquely identify each item. ItemType must have a property named HashValue that is used to determine the change between context.Addition and context.Reference vector.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05635.html#l00374">374</a> of file <a class="el" href="a05635.html">diff_tool.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02833.html#STRING__MANAGER_1_1CMakeDiffa0">makeDiff</a> (<a class="el" href="a02834.html">IDiffCallback</a> *callback, Context &amp;context, bool skipFirstRecord=false)</td></tr>
+
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="STRING__MANAGER_1_1CMakeDiffa0" doxytag="STRING_MANAGER::CMakeDiff::makeDiff" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class ItemType, class Context, class GetIdentifier = TGetIdentifier&lt;ItemType&gt;, class GetHashValue = TGetHashValue&lt;ItemType&gt;, class TestItem = TTestItem&lt;ItemType&gt;&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void <a class="el" href="a02833.html">STRING_MANAGER::CMakeDiff</a>&lt; ItemType, Context, GetIdentifier, GetHashValue, TestItem &gt;::makeDiff </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02834.html">IDiffCallback</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>callback</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>Context &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>context</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>skipFirstRecord</em> = false</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05635.html#l00387">387</a> of file <a class="el" href="a05635.html">diff_tool.h</a>.
+<p>
+References <a class="el" href="a05646.html#l00225">index</a>, <a class="el" href="a02834.html#STRING__MANAGER_1_1CMakeDiff_1_1IDiffCallbacka0">STRING_MANAGER::CMakeDiff&lt; ItemType, Context, GetIdentifier, GetHashValue, TestItem &gt;::IDiffCallback::onAdd()</a>, <a class="el" href="a02834.html#STRING__MANAGER_1_1CMakeDiff_1_1IDiffCallbacka1">STRING_MANAGER::CMakeDiff&lt; ItemType, Context, GetIdentifier, GetHashValue, TestItem &gt;::IDiffCallback::onChanged()</a>, <a class="el" href="a02834.html#STRING__MANAGER_1_1CMakeDiff_1_1IDiffCallbacka2">STRING_MANAGER::CMakeDiff&lt; ItemType, Context, GetIdentifier, GetHashValue, TestItem &gt;::IDiffCallback::onEquivalent()</a>, <a class="el" href="a02834.html#STRING__MANAGER_1_1CMakeDiff_1_1IDiffCallbacka3">STRING_MANAGER::CMakeDiff&lt; ItemType, Context, GetIdentifier, GetHashValue, TestItem &gt;::IDiffCallback::onRemove()</a>, <a class="el" href="a02834.html#STRING__MANAGER_1_1CMakeDiff_1_1IDiffCallbacka4">STRING_MANAGER::CMakeDiff&lt; ItemType, Context, GetIdentifier, GetHashValue, TestItem &gt;::IDiffCallback::onSwap()</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00388 {
+00389 <span class="preprocessor">#ifdef NL_DEBUG</span>
+00390 <span class="preprocessor"></span> <span class="comment">// compile time checking</span>
+00391 <span class="comment">// Context::iterator testIt;</span>
+00392 <span class="preprocessor">#endif</span>
+00393 <span class="preprocessor"></span> GetIdentifier getIdentifier;
+00394 GetHashValue getHashValue;
+00395 <span class="comment">// compare the context.Reference an context.Addition file, remove any equivalent strings.</span>
+00396 <a class="code" href="a04558.html#a15">uint</a> addCount, refCount;
+00397 <span class="keywordflow">if</span> (skipFirstRecord)
+00398 {
+00399 addCount = 1;
+00400 refCount = 1;
+00401 }
+00402 <span class="keywordflow">else</span>
+00403 {
+00404 addCount = 0;
+00405 refCount=0;
+00406 }
+00407
+00408 <span class="keywordflow">while</span> (addCount &lt; context.Addition.size() || refCount &lt; context.Reference.size())
+00409 {
+00410 <span class="keywordtype">bool</span> equal = <span class="keyword">true</span>;
+00411 <span class="keywordflow">if</span> (addCount != context.Addition.size() &amp;&amp; refCount != context.Reference.size())
+00412 {
+00413 equal = getHashValue(context.Addition, addCount) == getHashValue(context.Reference, refCount);
+00414 }
+00415
+00416 <span class="comment">// vector&lt;ItemType&gt;::iterator it;</span>
+00417
+00418 <span class="keywordflow">if</span> (addCount == context.Addition.size()
+00419 ||
+00420 (
+00421 !equal
+00422 &amp;&amp; find_if(context.Addition.begin(), context.Addition.end(), TestItem(getIdentifier(context.Reference, refCount))) == context.Addition.end()
+00423 )
+00424 )
+00425 {
+00426 <span class="comment">// this can only be removal</span>
+00427 callback-&gt;onRemove(addCount, refCount, context);
+00428 context.Reference.erase(context.Reference.begin()+refCount);
+00429 <span class="comment">// ++refCount;</span>
+00430 }
+00431 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (refCount == context.Reference.size()
+00432 ||
+00433 (
+00434 !equal
+00435 &amp;&amp; find_if(context.Reference.begin(), context.Reference.end(), TestItem(getIdentifier(context.Addition, addCount))) == context.Reference.end()
+00436 )
+00437 )
+00438 {
+00439 <span class="comment">// this can only be context.Addition</span>
+00440 callback-&gt;onAdd(addCount, refCount, context);
+00441 context.Reference.insert(context.Reference.begin()+refCount, context.Addition[addCount]);
+00442 ++refCount;
+00443 ++addCount;
+00444 }
+00445 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (getIdentifier(context.Addition, addCount) != getIdentifier(context.Reference, refCount))
+00446 {
+00447 <span class="comment">// swap two element.</span>
+00448 <span class="comment">// Context::iterator it = find_if(context.Reference.begin(), context.Reference.end(), TestItem(getIdentifier(context.Addition, addCount)));</span>
+00449 <span class="comment">// if (it == context.Reference.end())</span>
+00450
+00451 <span class="keywordflow">if</span> (find_if(
+00452 context.Reference.begin(),
+00453 context.Reference.end(),
+00454 TestItem(getIdentifier(context.Addition, addCount)))
+00455 == context.Reference.end())
+00456 {
+00457 <span class="comment">// context.Addition</span>
+00458 callback-&gt;onAdd(addCount, refCount, context);
+00459 context.Reference.insert(context.Reference.begin()+refCount, context.Addition[addCount]);
+00460 ++refCount;
+00461 ++addCount;
+00462 }
+00463 <span class="keywordflow">else</span>
+00464 {
+00465 <span class="comment">// nlassert(it != context.Reference.begin()+refCount);</span>
+00466 <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a566">index</a> = find_if(context.Reference.begin(), context.Reference.end(), TestItem(getIdentifier(context.Addition, addCount))) - context.Reference.begin();
+00467
+00468 <span class="comment">// callback-&gt;onSwap(it - context.Reference.begin(), refCount, context);</span>
+00469 callback-&gt;onSwap(index, refCount, context);
+00470 <span class="comment">// swap(*it, context.Reference[refCount]);</span>
+00471 swap(context.Reference[index], context.Reference[refCount]);
+00472 }
+00473 }
+00474 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (getHashValue(context.Addition, addCount) != getHashValue(context.Reference, refCount))
+00475 {
+00476 <span class="comment">// changed element</span>
+00477 callback-&gt;onChanged(addCount, refCount, context);
+00478 ++refCount;
+00479 ++addCount;
+00480 }
+00481 <span class="keywordflow">else</span>
+00482 {
+00483 <span class="comment">// same entry</span>
+00484 callback-&gt;onEquivalent(addCount, refCount, context);
+00485 addCount++;
+00486 refCount++;
+00487 }
+00488 }
+00489 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="a05635.html">diff_tool.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 14:54:13 2004 for NeL by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0 >
+</a>1.3.6 </small></address>
+</body>
+</html>