⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timeseries_8h-source.html

📁 嵌入式数据库软件 嵌入式数据库软件 嵌入式数据库软件
💻 HTML
📖 第 1 页 / 共 3 页
字号:
00489                  }00490                  u[r] = data;00491                  blocks.update();00492                  <span class="keywordflow">return</span>;00493              }00494              blocks-&gt;elements.resize(n + minElementsInBlock &lt; maxElementsInBlock ? n + minElementsInBlock : maxElementsInBlock);00495          }00496          T* u = blocks-&gt;elements.update();00497          <span class="keywordflow">for</span> (i = n; i &gt; r; i--) { 00498              u[i] = u[i-1];00499          }00500          u[r] = data;00501          blocks-&gt;used += 1;00502          blocks.update();00503      }00504 00505      <a class="code" href="classdbDatabase.html">dbDatabase</a>&amp; db;00506      <span class="keywordtype">int</span>         maxElementsInBlock;00507      <span class="keywordtype">int</span>         minElementsInBlock;00508      time_t      maxBlockTimeInterval;     00509      <a class="code" href="classdbQuery.html">dbQuery</a>     selectBlock;00510      <a class="code" href="classdbQuery.html">dbQuery</a>     selectBlockReverse; 00511 };00512     00513 00517 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;<a name="l00518"></a><a class="code" href="classdbTimeSeriesIterator.html">00518</a> <span class="keyword">class </span><a class="code" href="classdbTimeSeriesIterator.html">dbTimeSeriesIterator</a> { 00519   <span class="keyword">public</span>:<a name="l00527"></a><a class="code" href="classdbTimeSeriesIterator.html#dbTimeSeriesIteratora0">00527</a>     <span class="keywordtype">void</span> <a class="code" href="classdbTimeSeriesIterator.html#dbTimeSeriesIteratora0">start</a>(<a class="code" href="classdbTimeSeriesProcessor.html">dbTimeSeriesProcessor&lt;T&gt;</a>* processor, oid_t oid, time_t from, time_t till) { 00528         first = pos = -1;00529         this-&gt;till = till;00530         <span class="keywordflow">if</span> (processor-&gt;<a class="code" href="classdbTimeSeriesProcessor.html#dbTimeSeriesProcessora14">_openIteratorCursor</a>(blocks, oid, from, till)) { 00531             <span class="keywordflow">do</span> { 00532                 <span class="keywordtype">int</span> n = blocks-&gt;used;00533                 T <span class="keyword">const</span>* e =  blocks-&gt;elements.get();00534                 <span class="keywordtype">int</span> l = 0, r = n;00535                 <span class="keywordflow">while</span> (l &lt; r)  {00536                     <span class="keywordtype">int</span> i = (l+r) &gt;&gt; 1;00537                     <span class="keywordflow">if</span> (from &gt; e[i].time()) { 00538                         l = i+1;00539                     } <span class="keywordflow">else</span> { 00540                         r = i;00541                     }00542                 }00543                 assert(l == r &amp;&amp; (l == n || e[l].time() &gt;= from)); 00544                 <span class="keywordflow">if</span> (l &lt; n) { 00545                     <span class="keywordflow">if</span> (e[l].time() &lt;= till) {00546                         first = pos = l;00547                     }00548                     <span class="keywordflow">return</span>;00549                 }00550             } <span class="keywordflow">while</span> (blocks.next());00551         }        00552     }00553             <a name="l00558"></a><a class="code" href="classdbTimeSeriesIterator.html#dbTimeSeriesIteratora1">00558</a>     <span class="keywordtype">bool</span> <a class="code" href="classdbTimeSeriesIterator.html#dbTimeSeriesIteratora1">current</a>(T&amp; elem) { 00559         <span class="keywordflow">if</span> (pos &gt;= 0) { 00560             elem = blocks-&gt;elements[pos];00561             <span class="keywordflow">return</span> <span class="keyword">true</span>;00562         }00563         <span class="keywordflow">return</span> <span class="keyword">false</span>;00564     }00565     <a name="l00570"></a><a class="code" href="classdbTimeSeriesIterator.html#dbTimeSeriesIteratora2">00570</a>     <span class="keywordtype">bool</span> <a class="code" href="classdbTimeSeriesIterator.html#dbTimeSeriesIteratora2">next</a>() { 00571         <span class="keywordflow">if</span> (pos &gt;= 0) { 00572             <span class="keywordflow">if</span> (++pos == blocks-&gt;used) { 00573                 <span class="keywordflow">if</span> (!blocks.next()) { 00574                     pos = -1;00575                     <span class="keywordflow">return</span> <span class="keyword">false</span>;00576                 }00577                 pos = 0;00578             }00579             <span class="keywordflow">if</span> (blocks-&gt;elements[pos].time() &lt;= till) {00580                 <span class="keywordflow">return</span> <span class="keyword">true</span>;00581             }00582             pos = -1;00583         }00584         <span class="keywordflow">return</span> <span class="keyword">false</span>;00585     }00586 <a name="l00590"></a><a class="code" href="classdbTimeSeriesIterator.html#dbTimeSeriesIteratora3">00590</a>     <span class="keywordtype">void</span> <a class="code" href="classdbTimeSeriesIterator.html#dbTimeSeriesIteratora3">reset</a>() { 00591         blocks.first();00592         pos = first;00593     }00594     <a name="l00599"></a><a class="code" href="classdbTimeSeriesIterator.html#dbTimeSeriesIteratora4">00599</a>     <a class="code" href="classdbTimeSeriesIterator.html#dbTimeSeriesIteratora4">dbTimeSeriesIterator</a>() {00600         first = pos = -1;00601     }00602   <span class="keyword">private</span>:00603     <a class="code" href="classdbCursor.html">dbCursor&lt; dbTimeSeriesBlock&lt;T&gt;</a> &gt; blocks;00604     <span class="keywordtype">int</span>                              pos;00605     <span class="keywordtype">int</span>                              first;00606     time_t                           till;00607 };00608     00612 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;<a name="l00613"></a><a class="code" href="classdbTimeSeriesReverseIterator.html">00613</a> <span class="keyword">class </span><a class="code" href="classdbTimeSeriesReverseIterator.html">dbTimeSeriesReverseIterator</a> { 00614   <span class="keyword">public</span>:<a name="l00622"></a><a class="code" href="classdbTimeSeriesReverseIterator.html#dbTimeSeriesReverseIteratora0">00622</a>     <span class="keywordtype">void</span> <a class="code" href="classdbTimeSeriesReverseIterator.html#dbTimeSeriesReverseIteratora0">start</a>(<a class="code" href="classdbTimeSeriesProcessor.html">dbTimeSeriesProcessor&lt;T&gt;</a>* processor, oid_t oid, time_t from, time_t till) { 00623         last = pos = -1;00624         this-&gt;from = from;00625         <span class="keywordflow">if</span> (processor-&gt;<a class="code" href="classdbTimeSeriesProcessor.html#dbTimeSeriesProcessora14">_openIteratorCursor</a>(blocks, oid, from, till)) { 00626             <span class="keywordflow">do</span> { 00627                 <span class="keywordtype">int</span> n = blocks-&gt;used;00628                 blocks.last();00629                 T <span class="keyword">const</span>* e =  blocks-&gt;elements.get();00630                 <span class="keywordtype">int</span> l = 0, r = n;00631                 <span class="keywordflow">while</span> (l &lt; r)  {00632                     <span class="keywordtype">int</span> i = (l+r) &gt;&gt; 1;00633                     <span class="keywordflow">if</span> (till &gt;= e[i].time()) { 00634                         l = i+1;00635                     } <span class="keywordflow">else</span> { 00636                         r = i;00637                     }00638                 }00639                 assert(l == r &amp;&amp; (l == n || e[l].time() &gt; till)); 00640                 <span class="keywordflow">if</span> (l &gt; 0) {00641                     <span class="keywordflow">if</span> (e[l-1].time() &gt;= from) {00642                         last = pos = l-1;00643                     }00644                     <span class="keywordflow">return</span>;00645                 }00646             } <span class="keywordflow">while</span> (blocks.prev());00647         }        00648     }00649             <a name="l00654"></a><a class="code" href="classdbTimeSeriesReverseIterator.html#dbTimeSeriesReverseIteratora1">00654</a>     <span class="keywordtype">bool</span> <a class="code" href="classdbTimeSeriesReverseIterator.html#dbTimeSeriesReverseIteratora1">current</a>(T&amp; elem) { 00655         <span class="keywordflow">if</span> (pos &gt;= 0) { 00656             elem = blocks-&gt;elements[pos];00657             <span class="keywordflow">return</span> <span class="keyword">true</span>;00658         }00659         <span class="keywordflow">return</span> <span class="keyword">false</span>;00660     }00661     <a name="l00666"></a><a class="code" href="classdbTimeSeriesReverseIterator.html#dbTimeSeriesReverseIteratora2">00666</a>     <span class="keywordtype">bool</span> <a class="code" href="classdbTimeSeriesReverseIterator.html#dbTimeSeriesReverseIteratora2">next</a>() { 00667         <span class="keywordflow">if</span> (pos &gt;= 0) { 00668             <span class="keywordflow">if</span> (--pos &lt; 0) {00669                 <span class="keywordflow">if</span> (!blocks.prev()) { 00670                     <span class="keywordflow">return</span> <span class="keyword">false</span>;00671                 }00672                 pos = blocks-&gt;used-1;00673             }00674             <span class="keywordflow">if</span> (blocks-&gt;elements[pos].time() &gt;= from) {00675                 <span class="keywordflow">return</span> <span class="keyword">true</span>;00676             }00677             pos = -1;00678         }00679         <span class="keywordflow">return</span> <span class="keyword">false</span>;00680     }00681 <a name="l00685"></a><a class="code" href="classdbTimeSeriesReverseIterator.html#dbTimeSeriesReverseIteratora3">00685</a>     <span class="keywordtype">void</span> <a class="code" href="classdbTimeSeriesReverseIterator.html#dbTimeSeriesReverseIteratora3">reset</a>() { 00686         blocks.last();00687         pos = last;00688     }00689     <a name="l00694"></a><a class="code" href="classdbTimeSeriesReverseIterator.html#dbTimeSeriesReverseIteratora4">00694</a>     <a class="code" href="classdbTimeSeriesReverseIterator.html#dbTimeSeriesReverseIteratora4">dbTimeSeriesReverseIterator</a>() {00695         last = pos = -1;00696     }00697   <span class="keyword">private</span>:00698     <a class="code" href="classdbCursor.html">dbCursor&lt; dbTimeSeriesBlock&lt;T&gt;</a> &gt; blocks;00699     <span class="keywordtype">int</span>                              pos;00700     <span class="keywordtype">int</span>                              last;00701     time_t                           from;00702 };00703     00704 <span class="preprocessor">#endif</span></pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Feb 12 13:04:48 2004 for FastDB by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.5 </small></address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -