Added: incubator/singa/site/trunk/doxygen/html/reader_8h_source.html URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/reader_8h_source.html?rev=1857944&view=auto ============================================================================== --- incubator/singa/site/trunk/doxygen/html/reader_8h_source.html (added) +++ incubator/singa/site/trunk/doxygen/html/reader_8h_source.html Mon Apr 22 10:37:18 2019 @@ -0,0 +1,90 @@ +<!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.13"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>Apache Singa: /home/moaz/incubator-singa/include/singa/io/reader.h Source File</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> +<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 id="projectalign" style="padding-left: 0.5em;"> + <div id="projectname">Apache Singa + </div> + <div id="projectbrief">A General Distributed Deep Learning Library</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.13 --> +<script type="text/javascript"> +var searchBox = new SearchBox("searchBox", "search",false,'Search'); +</script> +<script type="text/javascript" src="menudata.js"></script> +<script type="text/javascript" src="menu.js"></script> +<script type="text/javascript"> +$(function() { + initMenu('',true,false,'search.php','Search'); + $(document).ready(function() { init_search(); }); +}); +</script> +<div id="main-nav"></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"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_14a988756d30161f7e1f48b05d03905d.html">singa</a></li><li class="navelem"><a class="el" href="dir_953eafc3caccd34fc2601f376f19d1ef.html">io</a></li> </ul> +</div> +</div><!-- top --> +<div class="header"> + <div class="headertitle"> +<div class="title">reader.h</div> </div> +</div><!--header--> +<div class="contents"> +<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef SINGA_IO_READER_H_</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define SINGA_IO_READER_H_</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <cstring></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <fstream></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="pre processor">#include "singa/singa_config.h"</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#ifdef USE_LMDB</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <lmdb.h></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <sys/stat.h></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#endif // USE_LMDB</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</ span> <span class="keyword">namespace </span><a class="code" href="namespacesinga.html">singa</a> {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">namespace </span>io {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">using</span> std::string;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="classsinga_1_1io_1_1Reader.html"> 41</a></span> <span class="keyword">class </span><a class="code" href="classsinga_1_1io_1_1Reader.html">Reader</a> {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classsinga_1_ 1io_1_1Reader.html#a151239317e76d0db47e5e6d01ed5fca3"> 45</a></span>  <span class="keyword">virtual</span> <a class="code" href="classsinga_1_1io_1_1Reader.html#a151239317e76d0db47e5e6d01ed5fca3">~Reader</a>() {}</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classsinga_1_1io_1_1Reader.html#a6894610ce2560dbe7641fdf5a3abf909">Open</a>(<span class="keyword">const</span> std::string& path) = 0;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classsinga_1_1io_1_1Reader.html#ae9a44a2b4ae832493c04d9b540ef29e1">Close</a>() = 0;</div><div class="line "><a name="l00054"></a><span class="lineno"> 54</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classsinga_1_1io_1_1Reader.html#a8d45ee8b877e4344d776265af16e0c4b">Read</a>(std::string* key, std::string* value) = 0;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classsinga_1_1io_1_1Reader.html#a860fade6259818e89887aac059bb6277">Count</a>() = 0;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classsinga_1_1io_1 _1Reader.html#a82bb5bcb71d5abc58ffad4b698eb4965">SeekToFirst</a>() = 0;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> };</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classsinga_1_1io_1_1BinFileReader.html"> 70</a></span> <span class="keyword">class </span><a class="code" href="classsinga_1_1io_1_1BinFileReader.html">BinFileReader</a> : <span class="keyword">public</span> <a class="code" href="classsinga_1_1io_1_1Reader.html">Reader</a> {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  ~<a class="code" href="classsinga_1_1io_1_1BinFileReader.html">BinFileReader</a>() { <a class="code" href="classsinga_1_1io_1_1Reader.html#ae9a44a2b4ae832493c04d9b540ef29e1">Close </a>(); }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordtype">bool</span> <a class="code" href="classsinga_1_1io_1_1Reader.html#a6894610ce2560dbe7641fdf5a3abf909">Open</a>(<span class="keyword">const</span> std::string& path) <span class="keyword">override</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordtype">bool</span> <a class="code" href="classsinga_1_1io_1_1Reader.html#a6894610ce2560dbe7641fdf5a3abf909">Open</a>(<span class="keyword">const</span> std::string& path, <span class="keywordtype">int</span> capacity);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordtype">void</span> <a class="code" href="classsinga_1_1io_1_1Reader.html#ae9a44a2b4ae832493c04d9b540ef29e1">Close</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&# 160; <span class="keywordtype">bool</span> <a class="code" href="classsinga_1_1io_1_1Reader.html#a8d45ee8b877e4344d776265af16e0c4b">Read</a>(std::string* key, std::string* value) <span class="keyword">override</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordtype">int</span> <a class="code" href="classsinga_1_1io_1_1Reader.html#a860fade6259818e89887aac059bb6277">Count</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordtype">void</span> <a class="code" href="classsinga_1_1io_1_1Reader.html#a82bb5bcb71d5abc58ffad4b698eb4965">SeekToFirst</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classsinga_1_1io_1_1BinFileReader.html#a85039856483c4e16b9ca12cdec7d8bca"> 86</a></span>  <span class="keyword">inline</span> std::string <a class="code " href="classsinga_1_1io_1_1BinFileReader.html#a85039856483c4e16b9ca12cdec7d8bca">path</a>() { <span class="keywordflow">return</span> path_; }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keyword">protected</span>:</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordtype">bool</span> OpenFile();</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordtype">bool</span> ReadField(std::string* content);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordtype">bool</span> PrepareNextField(<span class="keywordtype">int</span> size);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <s pan class="keyword">private</span>:</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  std::string path_ = <span class="stringliteral">""</span>;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  std::ifstream fdat_;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordtype">char</span>* buf_ = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordtype">int</span> offset_ = 0;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordtype">int</span> capacity_ = 10485760;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordtype">int</span> bufsize_ = 0;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keyword">const</spa n> <span class="keywordtype">char</span> kMagicWord[2] = {<span class="charliteral">'s'</span>, <span class="charliteral">'g'</span>};</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> };</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classsinga_1_1io_1_1TextFileReader.html"> 116</a></span> <span class="keyword">class </span><a class="code" href="classsinga_1_1io_1_1TextFileReader.html">TextFileReader</a> : <span class="keyword">public</span> <a class="code" href="classsinga_1_1io_1_1Reader.html">Reader</a> {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  ~<a class="code" href="classsinga_1_1io_1_1TextFileReader.html">TextFileReader</a>() { <a class=" code" href="classsinga_1_1io_1_1Reader.html#ae9a44a2b4ae832493c04d9b540ef29e1">Close</a>(); }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordtype">bool</span> <a class="code" href="classsinga_1_1io_1_1Reader.html#a6894610ce2560dbe7641fdf5a3abf909">Open</a>(<span class="keyword">const</span> std::string& path) <span class="keyword">override</span>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordtype">void</span> <a class="code" href="classsinga_1_1io_1_1Reader.html#ae9a44a2b4ae832493c04d9b540ef29e1">Close</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordtype">bool</span> <a class="code" href="classsinga_1_1io_1_1Reader.html#a8d45ee8b877e4344d776265af16e0c4b">Read</a>(std::string* key, std::string* value) <span class="keyword">override</span>;</div><div class="line">< a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordtype">int</span> <a class="code" href="classsinga_1_1io_1_1Reader.html#a860fade6259818e89887aac059bb6277">Count</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordtype">void</span> <a class="code" href="classsinga_1_1io_1_1Reader.html#a82bb5bcb71d5abc58ffad4b698eb4965">SeekToFirst</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classsinga_1_1io_1_1TextFileReader.html#afcd2ac030ea35029696de960bc9f88ac"> 130</a></span>  <span class="keyword">inline</span> std::string <a class="code" href="classsinga_1_1io_1_1TextFileReader.html#afcd2ac030ea35029696de960bc9f88ac">path</a>() { <span class="keywordflow">return</span> path_; }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div cla ss="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  std::string path_ = <span class="stringliteral">""</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  std::ifstream fdat_;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordtype">int</span> lineNo_ = 0;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> };</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="preprocessor">#ifdef USE_LMDB</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">class </span>LMDBReader : <span class="keyword">public</span> <a class="code" href="c lasssinga_1_1io_1_1Reader.html">Reader</a> {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  ~LMDBReader() { <a class="code" href="classsinga_1_1io_1_1Reader.html#ae9a44a2b4ae832493c04d9b540ef29e1">Close</a>(); }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordtype">bool</span> <a class="code" href="classsinga_1_1io_1_1Reader.html#a6894610ce2560dbe7641fdf5a3abf909">Open</a>(<span class="keyword">const</span> std::string& path) <span class="keyword">override</span>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keywordtype">void</span> <a class="code" href="classsinga_1_1io_1_1Reader.html#ae9a44a2b4ae832493c04d9b540ef29e1">Close</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00151"></a>< span class="lineno"> 151</span>  <span class="keywordtype">bool</span> <a class="code" href="classsinga_1_1io_1_1Reader.html#a8d45ee8b877e4344d776265af16e0c4b">Read</a>(std::string* key, std::string* value) <span class="keyword">override</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordtype">int</span> <a class="code" href="classsinga_1_1io_1_1Reader.html#a860fade6259818e89887aac059bb6277">Count</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordtype">void</span> <a class="code" href="classsinga_1_1io_1_1Reader.html#a82bb5bcb71d5abc58ffad4b698eb4965">SeekToFirst</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keyword">inline</span> std::string path() { <span class="keywordflow">return</span> path_; }</div><div class="line" ><a name="l00159"></a><span class="lineno"> 159</span>  <span >class="keyword">inline</span> <span class="keywordtype">bool</span> valid() { ><span class="keywordflow">return</span> valid_; }</div><div class="line"><a >name="l00160"></a><span class="lineno"> 160</span> </div><div >class="line"><a name="l00161"></a><span class="lineno"> 161</span>  ><span class="keyword">protected</span>:</div><div class="line"><a >name="l00163"></a><span class="lineno"> 163</span>  <span >class="keywordtype">void</span> Seek(MDB_cursor_op op);</div><div >class="line"><a name="l00164"></a><span class="lineno"> 164</span>  ><span class="keyword">inline</span> <span class="keywordtype">void</span> >MDB_CHECK(<span class="keywordtype">int</span> mdb_status);</div><div >class="line"><a name="l00165"></a><span class="lineno"> >165</span> </div><div class="line"><a name="l00166"></a><span >class="lineno"> 166</span>  <span >class="keyword">private</span>:</div><div class="lin e"><a name="l00168"></a><span class="lineno"> 168</span>  std::string path_ = <span class="stringliteral">""</span>;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  MDB_env* mdb_env_ = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  MDB_dbi mdb_dbi_;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  MDB_txn* mdb_txn_ = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  MDB_cursor* mdb_cursor_ = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  MDB_val mdb_key_, mdb_value_;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keywordtype">bool</span> valid_;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&# 160; <span class="keywordtype">bool</span> first_;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> };</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="preprocessor">#endif // USE_LMDB</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> } <span class="comment">// namespace io</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> } <span class="comment">// namespace singa</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="preprocessor">#endif // SINGA_IO_READER_H_</span></div><div class="ttc" id="classsinga_1_1io_1_1Reader_html_a82bb5bcb71d5abc58ffad4b698eb4965"><div class="ttname"><a href="classsinga_1_1io_1_1Reader.html#a82bb5bcb71d5abc58ffad4b698eb4965">singa::io::Reader::SeekToFirst</a></d iv><div class="ttdeci">virtual void SeekToFirst()=0</div><div class="ttdoc">Seek to the first tuple when the cursor arrives to the end of the file. </div></div> +<div class="ttc" id="classsinga_1_1io_1_1BinFileReader_html_a85039856483c4e16b9ca12cdec7d8bca"><div class="ttname"><a href="classsinga_1_1io_1_1BinFileReader.html#a85039856483c4e16b9ca12cdec7d8bca">singa::io::BinFileReader::path</a></div><div class="ttdeci">std::string path()</div><div class="ttdoc">return path to binary file </div><div class="ttdef"><b>Definition:</b> reader.h:86</div></div> +<div class="ttc" id="classsinga_1_1io_1_1TextFileReader_html_afcd2ac030ea35029696de960bc9f88ac"><div class="ttname"><a href="classsinga_1_1io_1_1TextFileReader.html#afcd2ac030ea35029696de960bc9f88ac">singa::io::TextFileReader::path</a></div><div class="ttdeci">std::string path()</div><div class="ttdoc">return path to text file </div><div class="ttdef"><b>Definition:</b> reader.h:130</div></div> +<div class="ttc" id="classsinga_1_1io_1_1Reader_html"><div class="ttname"><a href="classsinga_1_1io_1_1Reader.html">singa::io::Reader</a></div><div class="ttdoc">General Reader that provides functions for reading tuples. </div><div class="ttdef"><b>Definition:</b> reader.h:41</div></div> +<div class="ttc" id="classsinga_1_1io_1_1BinFileReader_html"><div class="ttname"><a href="classsinga_1_1io_1_1BinFileReader.html">singa::io::BinFileReader</a></div><div class="ttdoc">Binfilereader reads tuples from binary file with key-value pairs. </div><div class="ttdef"><b>Definition:</b> reader.h:70</div></div> +<div class="ttc" id="classsinga_1_1io_1_1Reader_html_a151239317e76d0db47e5e6d01ed5fca3"><div class="ttname"><a href="classsinga_1_1io_1_1Reader.html#a151239317e76d0db47e5e6d01ed5fca3">singa::io::Reader::~Reader</a></div><div class="ttdeci">virtual ~Reader()</div><div class="ttdoc">In case that users forget to call Close() to release resources, e.g., memory, you can release them he...</div><div class="ttdef"><b>Definition:</b> reader.h:45</div></div> +<div class="ttc" id="classsinga_1_1io_1_1Reader_html_a6894610ce2560dbe7641fdf5a3abf909"><div class="ttname"><a href="classsinga_1_1io_1_1Reader.html#a6894610ce2560dbe7641fdf5a3abf909">singa::io::Reader::Open</a></div><div class="ttdeci">virtual bool Open(const std::string &path)=0</div><div class="ttdoc">path is the path to the storage, could be a file path, database connection, or hdfs path...</div></div> +<div class="ttc" id="classsinga_1_1io_1_1TextFileReader_html"><div class="ttname"><a href="classsinga_1_1io_1_1TextFileReader.html">singa::io::TextFileReader</a></div><div class="ttdoc">TextFileReader reads tuples from CSV file. </div><div class="ttdef"><b>Definition:</b> reader.h:116</div></div> +<div class="ttc" id="classsinga_1_1io_1_1Reader_html_a860fade6259818e89887aac059bb6277"><div class="ttname"><a href="classsinga_1_1io_1_1Reader.html#a860fade6259818e89887aac059bb6277">singa::io::Reader::Count</a></div><div class="ttdeci">virtual int Count()=0</div><div class="ttdoc">Iterate through all tuples to get the num of all tuples. </div></div> +<div class="ttc" id="classsinga_1_1io_1_1Reader_html_a8d45ee8b877e4344d776265af16e0c4b"><div class="ttname"><a href="classsinga_1_1io_1_1Reader.html#a8d45ee8b877e4344d776265af16e0c4b">singa::io::Reader::Read</a></div><div class="ttdeci">virtual bool Read(std::string *key, std::string *value)=0</div><div class="ttdoc">Read a tuple. </div></div> +<div class="ttc" id="classsinga_1_1io_1_1Reader_html_ae9a44a2b4ae832493c04d9b540ef29e1"><div class="ttname"><a href="classsinga_1_1io_1_1Reader.html#ae9a44a2b4ae832493c04d9b540ef29e1">singa::io::Reader::Close</a></div><div class="ttdeci">virtual void Close()=0</div><div class="ttdoc">Release resources. </div></div> +<div class="ttc" id="namespacesinga_html"><div class="ttname"><a href="namespacesinga.html">singa</a></div><div class="ttdoc">Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements...</div><div class="ttdef"><b>Definition:</b> common.h:48</div></div> +</div><!-- fragment --></div><!-- contents --> +<!-- start footer part --> +<hr class="footer"/><address class="footer"><small> +Generated on Mon Apr 22 2019 12:27:05 for Apache Singa by  <a href="http://www.doxygen.org/index.html"> +<img class="footer" src="doxygen.png" alt="doxygen"/> +</a> 1.8.13 +</small></address> +</body> +</html>
Added: incubator/singa/site/trunk/doxygen/html/safe__queue_8h_source.html URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/safe__queue_8h_source.html?rev=1857944&view=auto ============================================================================== --- incubator/singa/site/trunk/doxygen/html/safe__queue_8h_source.html (added) +++ incubator/singa/site/trunk/doxygen/html/safe__queue_8h_source.html Mon Apr 22 10:37:18 2019 @@ -0,0 +1,90 @@ +<!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.13"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>Apache Singa: /home/moaz/incubator-singa/include/singa/utils/safe_queue.h Source File</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> +<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 id="projectalign" style="padding-left: 0.5em;"> + <div id="projectname">Apache Singa + </div> + <div id="projectbrief">A General Distributed Deep Learning Library</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.13 --> +<script type="text/javascript"> +var searchBox = new SearchBox("searchBox", "search",false,'Search'); +</script> +<script type="text/javascript" src="menudata.js"></script> +<script type="text/javascript" src="menu.js"></script> +<script type="text/javascript"> +$(function() { + initMenu('',true,false,'search.php','Search'); + $(document).ready(function() { init_search(); }); +}); +</script> +<div id="main-nav"></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"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_14a988756d30161f7e1f48b05d03905d.html">singa</a></li><li class="navelem"><a class="el" href="dir_54125cd652f9635a64a4101de1b8704d.html">utils</a></li> </ul> +</div> +</div><!-- top --> +<div class="header"> + <div class="headertitle"> +<div class="title">safe_queue.h</div> </div> +</div><!--header--> +<div class="contents"> +<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">*</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">* Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">* or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">* distributed with this work for additional information</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">* regarding copyright ownership. The ASF licenses this file</span></di v><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">* to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">* "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">* with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">*</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">* http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">*</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span clas s="comment">* Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">* software distributed under the License is distributed on an</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">* KIND, either express or implied. See the License for the</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">* specific language governing permissions and limitations</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">* under the License.</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">*</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">*************************************************************/</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#ifndef SINGA_UTILS_SAFE_QUEUE_H_</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#define SINGA_UTILS_SAFE_QUEUE_H_</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <algorithm></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <queue></span></div><div class="line"><a name="l00027"></a ><span class="lineno"> 27</span> <span class="preprocessor">#include ><list></span></div><div class="line"><a name="l00028"></a><span >class="lineno"> 28</span> <span class="preprocessor">#include ><mutex></span></div><div class="line"><a name="l00029"></a><span >class="lineno"> 29</span> <span class="preprocessor">#include ><condition_variable></span></div><div class="line"><a >name="l00030"></a><span class="lineno"> 30</span> <span >class="preprocessor">#include <thread></span></div><div class="line"><a >name="l00031"></a><span class="lineno"> 31</span> </div><div >class="line"><a name="l00035"></a><span class="lineno"> >35</span> <span class="keyword">template</span> <<span >class="keyword">typename</span> T, <span class="keyword">class</span> >Container = std::queue<T>></div><div class="line"><a >name="l00036"></a><span class="lineno"><a class="line" >href="classSafeQueue.html"> 36</a></span> <span class="key word">class </span><a class="code" href="classSafeQueue.html">SafeQueue</a> {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="code" href="classSafeQueue.html">SafeQueue</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  ~<a class="code" href="classSafeQueue.html">SafeQueue</a>() {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  std::lock_guard<std::mutex> lock(mutex_);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSafeQueue.html#a52d13d8fe67de0c3f63641baf0697de8"> 47</a></span >  <span class="keywordtype">bool</span> <a class="code" >href="classSafeQueue.html#a52d13d8fe67de0c3f63641baf0697de8">Push</a>(<span >class="keyword">const</span> T& e) {</div><div class="line"><a >name="l00048"></a><span class="lineno"> 48</span>  >std::lock_guard<std::mutex> lock(mutex_);</div><div class="line"><a >name="l00049"></a><span class="lineno"> 49</span>  >queue_.push(e);</div><div class="line"><a name="l00050"></a><span >class="lineno"> 50</span>  condition_.notify_one();</div><div >class="line"><a name="l00051"></a><span class="lineno"> 51</span>  ><span class="keywordflow">return</span> <span >class="keyword">true</span>;</div><div class="line"><a >name="l00052"></a><span class="lineno"> 52</span>  }</div><div >class="line"><a name="l00053"></a><span class="lineno"> >53</span> </div><div class="line"><a name="l00058"></a><span >class="lineno"><a class="line" >href="classSafeQueue.html#a344920696b4628f864fd73f8e6 a17dc6"> 58</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSafeQueue.html#a344920696b4628f864fd73f8e6a17dc6">Pop</a>(T& e) {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  std::unique_lock<std::mutex> lock(mutex_);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  condition_.wait(lock, [<span class="keyword">this</span>]() { <span class="keywordflow">return</span> !queue_.empty(); });</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  e = queue_.front();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  queue_.pop();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  }</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classSafeQueue.html#afe217ddc60f494d096028ba640e737f9"> 68</a></span>  <span class="keywordtyp e">bool</span> <a class="code" href="classSafeQueue.html#afe217ddc60f494d096028ba640e737f9">Pop</a>(T& item, std::uint64_t timeout) {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  std::unique_lock<std::mutex> lock(mutex_);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">if</span> (queue_.empty()) {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">if</span> (timeout == 0)</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keyw ordflow">if</span> (condition_.wait_for(lock, std::chrono::microseconds(timeout))</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  == std::cv_status::timeout)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  item = queue_.front();</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  queue_.pop();</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> 0; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classSafeQueue.html#aad136ab2d232ff62375d0c347e906bb2"> 89</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSafeQueue.html#aad136ab2d232ff62375d0c347e906bb2">TryPop</a>(T& e) {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  std::unique_lock<std::mutex> lock(mutex_);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">if</span> (queue_.empty())</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>& #160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  e = queue_.front();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  queue_.pop();</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classSafeQueue.html#ad8c8beb82fe07d1bbb74a78480d02ff2"> 104</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classSafeQueue.html#ad8c8beb82fe07d1bbb74a78480d02ff2">Size</a>()<span class="keyword"> const </spa n>{</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  std::lock_guard<std::mutex> lock(mutex_);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">return</span> queue_.size();</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  Container queue_;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keyword">mutable</span> std::mutex mutex_;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  std::condition_variable condition_;</div><div class="line"><a name="l00113"></a><span class="l ineno"> 113</span> };</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classPriorityQueue.html"> 119</a></span> <span class="keyword">class </span><a class="code" href="classPriorityQueue.html">PriorityQueue</a> {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="classPriorityQueue.html">PriorityQueue</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classPriorityQueue.html#a5c1c5a72e53dcf23e92b7877f9ed764a"> 127</a></span>&# 160; <span class="keywordtype">bool</span> <a class="code" href="classPriorityQueue.html#a5c1c5a72e53dcf23e92b7877f9ed764a">Push</a>(<span class="keyword">const</span> T& e, <span class="keywordtype">int</span> priority) {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  Element ele;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  ele.data = e;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  ele.priority = priority;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  queue_.push(ele);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  }</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div><div class="l ine"><a name="l00139"></a><span class="lineno"><a class="line" href="classPriorityQueue.html#a5ad922c1a6314471d82498e195e3e223"> 139</a></span>  <span class="keywordtype">void</span> <a class="code" href="classPriorityQueue.html#a5ad922c1a6314471d82498e195e3e223">Pop</a>(T& e) {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  Element ele;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  queue_.pop(ele);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  e = ele.data;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  }</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="classPriorityQueue.html#a17af3058e1a4168184c1fd308af858c1"> 150</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classPriorityQueue.html#a17af3058e1a4168184c1fd308af858c1">Pop</a>(T& e, std::ui nt64_t timeout) {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  Element ele;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordflow">if</span> (queue_.pop(ele, timeout)) {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  e = ele.data;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>   }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="classPriorityQueue.html#a39433c1537f78686e95f0242d3d1d245"> 164</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classPriorityQueue.html#a39433c1537f78686e95f0242d3d1d245">TryPop</a>(T& e) {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  Element ele;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">if</span> (queue_.TryPop(ele)) {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  e = ele.data;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>& #160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  }</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classPriorityQueue.html#a4e37ab2e501407763e3a1f35ce417739"> 177</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classPriorityQueue.html#a4e37ab2e501407763e3a1f35ce417739">Size</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordflow">return</span> queue_.Size();</ div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keyword">struct </span>Element {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  T data;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordtype">int</span> priority;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator<(<span class="keyword">const</span> Element &other)<span class="keyword"> const </span>{</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&# 160; <span class="keywordflow">return</span> priority < other.priority;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  };</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <a class="code" href="classSafeQueue.html">SafeQueue<Element, std::priority_queue<Element></a>> queue_;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> };</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="preprocessor">#endif // SINGA_UTILS_SAFE_QUEUE_H_</span></div><div class="ttc" id="classSafeQueue_html_aad136ab2d232ff62375d0c347e906bb2"><div class="ttname"><a href="classSafeQueue.html#a ad136ab2d232ff62375d0c347e906bb2">SafeQueue::TryPop</a></div><div class="ttdeci">bool TryPop(T &e)</div><div class="ttdoc">Try to pop an element from the queue. </div><div class="ttdef"><b>Definition:</b> safe_queue.h:89</div></div> +<div class="ttc" id="classSafeQueue_html_a52d13d8fe67de0c3f63641baf0697de8"><div class="ttname"><a href="classSafeQueue.html#a52d13d8fe67de0c3f63641baf0697de8">SafeQueue::Push</a></div><div class="ttdeci">bool Push(const T &e)</div><div class="ttdoc">Push an element into the queue. </div><div class="ttdef"><b>Definition:</b> safe_queue.h:47</div></div> +<div class="ttc" id="classPriorityQueue_html_a17af3058e1a4168184c1fd308af858c1"><div class="ttname"><a href="classPriorityQueue.html#a17af3058e1a4168184c1fd308af858c1">PriorityQueue::Pop</a></div><div class="ttdeci">bool Pop(T &e, std::uint64_t timeout)</div><div class="ttdoc">Pop the item with the highest priority from the queue until one element is poped or timeout...</div><div class="ttdef"><b>Definition:</b> safe_queue.h:150</div></div> +<div class="ttc" id="classPriorityQueue_html_a5c1c5a72e53dcf23e92b7877f9ed764a"><div class="ttname"><a href="classPriorityQueue.html#a5c1c5a72e53dcf23e92b7877f9ed764a">PriorityQueue::Push</a></div><div class="ttdeci">bool Push(const T &e, int priority)</div><div class="ttdoc">Push an element into the queue with a given priority. </div><div class="ttdef"><b>Definition:</b> safe_queue.h:127</div></div> +<div class="ttc" id="classPriorityQueue_html_a4e37ab2e501407763e3a1f35ce417739"><div class="ttname"><a href="classPriorityQueue.html#a4e37ab2e501407763e3a1f35ce417739">PriorityQueue::Size</a></div><div class="ttdeci">unsigned int Size() const</div><div class="ttdef"><b>Definition:</b> safe_queue.h:177</div></div> +<div class="ttc" id="classPriorityQueue_html"><div class="ttname"><a href="classPriorityQueue.html">PriorityQueue</a></div><div class="ttdoc">Thread safe priority queue. </div><div class="ttdef"><b>Definition:</b> safe_queue.h:119</div></div> +<div class="ttc" id="classSafeQueue_html_ad8c8beb82fe07d1bbb74a78480d02ff2"><div class="ttname"><a href="classSafeQueue.html#ad8c8beb82fe07d1bbb74a78480d02ff2">SafeQueue::Size</a></div><div class="ttdeci">unsigned int Size() const</div><div class="ttdef"><b>Definition:</b> safe_queue.h:104</div></div> +<div class="ttc" id="classSafeQueue_html_a344920696b4628f864fd73f8e6a17dc6"><div class="ttname"><a href="classSafeQueue.html#a344920696b4628f864fd73f8e6a17dc6">SafeQueue::Pop</a></div><div class="ttdeci">void Pop(T &e)</div><div class="ttdoc">Pop an element from the queue. </div><div class="ttdef"><b>Definition:</b> safe_queue.h:58</div></div> +<div class="ttc" id="classPriorityQueue_html_a5ad922c1a6314471d82498e195e3e223"><div class="ttname"><a href="classPriorityQueue.html#a5ad922c1a6314471d82498e195e3e223">PriorityQueue::Pop</a></div><div class="ttdeci">void Pop(T &e)</div><div class="ttdoc">Pop an element from the queue with the highest priority. </div><div class="ttdef"><b>Definition:</b> safe_queue.h:139</div></div> +<div class="ttc" id="classSafeQueue_html"><div class="ttname"><a href="classSafeQueue.html">SafeQueue</a></div><div class="ttdoc">Thread-safe queue. </div><div class="ttdef"><b>Definition:</b> safe_queue.h:36</div></div> +<div class="ttc" id="classSafeQueue_html_afe217ddc60f494d096028ba640e737f9"><div class="ttname"><a href="classSafeQueue.html#afe217ddc60f494d096028ba640e737f9">SafeQueue::Pop</a></div><div class="ttdeci">bool Pop(T &item, std::uint64_t timeout)</div><div class="ttdoc">Pop an item from the queue until one element is poped or timout. </div><div class="ttdef"><b>Definition:</b> safe_queue.h:68</div></div> +<div class="ttc" id="classPriorityQueue_html_a39433c1537f78686e95f0242d3d1d245"><div class="ttname"><a href="classPriorityQueue.html#a39433c1537f78686e95f0242d3d1d245">PriorityQueue::TryPop</a></div><div class="ttdeci">bool TryPop(T &e)</div><div class="ttdoc">Try to pop an element from the queue. </div><div class="ttdef"><b>Definition:</b> safe_queue.h:164</div></div> +</div><!-- fragment --></div><!-- contents --> +<!-- start footer part --> +<hr class="footer"/><address class="footer"><small> +Generated on Mon Apr 22 2019 12:27:05 for Apache Singa by  <a href="http://www.doxygen.org/index.html"> +<img class="footer" src="doxygen.png" alt="doxygen"/> +</a> 1.8.13 +</small></address> +</body> +</html> Added: incubator/singa/site/trunk/doxygen/html/scheduler_8h_source.html URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/scheduler_8h_source.html?rev=1857944&view=auto ============================================================================== --- incubator/singa/site/trunk/doxygen/html/scheduler_8h_source.html (added) +++ incubator/singa/site/trunk/doxygen/html/scheduler_8h_source.html Mon Apr 22 10:37:18 2019 @@ -0,0 +1,80 @@ +<!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.13"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>Apache Singa: /home/moaz/incubator-singa/include/singa/core/scheduler.h Source File</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> +<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 id="projectalign" style="padding-left: 0.5em;"> + <div id="projectname">Apache Singa + </div> + <div id="projectbrief">A General Distributed Deep Learning Library</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.13 --> +<script type="text/javascript"> +var searchBox = new SearchBox("searchBox", "search",false,'Search'); +</script> +<script type="text/javascript" src="menudata.js"></script> +<script type="text/javascript" src="menu.js"></script> +<script type="text/javascript"> +$(function() { + initMenu('',true,false,'search.php','Search'); + $(document).ready(function() { init_search(); }); +}); +</script> +<div id="main-nav"></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"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_14a988756d30161f7e1f48b05d03905d.html">singa</a></li><li class="navelem"><a class="el" href="dir_0c57f5a0b2589d9cd025f1d3faf7a1ee.html">core</a></li> </ul> +</div> +</div><!-- top --> +<div class="header"> + <div class="headertitle"> +<div class="title">scheduler.h</div> </div> +</div><!--header--> +<div class="contents"> +<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#ifndef SINGA_CORE_SCHEDULER_H_</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#define SINGA_CORE_SCHEDULER_H_</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">namespace </span><a class="code" href="namespacesinga.html">singa</a> {</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="classsinga_1_1Scheduler.html"> 24</a></span> <span class="keyword">class </span><a class="code" href="classsinga_1_1Scheduler.html">Scheduler</a> {};</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> } <span class="comment">// namespace singa</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#endif // SINGA_CORE_SCHEDULER_H_</span></div><div class="ttc" id="classsinga_1_1Scheduler_html"><div class="ttname"><a href="classsinga_1_1Scheduler.html">singa::Scheduler</a></div><div class="ttdoc">Scheduling Tensor operations with dependency detection. </div><div class="ttdef"><b>Definition:</b> scheduler.h:24</div></div> +<div class="ttc" id="namespacesinga_html"><div class="ttname"><a href="namespacesinga.html">singa</a></div><div class="ttdoc">Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements...</div><div class="ttdef"><b>Definition:</b> common.h:48</div></div> +</div><!-- fragment --></div><!-- contents --> +<!-- start footer part --> +<hr class="footer"/><address class="footer"><small> +Generated on Mon Apr 22 2019 12:27:05 for Apache Singa by  <a href="http://www.doxygen.org/index.html"> +<img class="footer" src="doxygen.png" alt="doxygen"/> +</a> 1.8.13 +</small></address> +</body> +</html> Added: incubator/singa/site/trunk/doxygen/html/search/all_0.html URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/all_0.html?rev=1857944&view=auto ============================================================================== --- incubator/singa/site/trunk/doxygen/html/search/all_0.html (added) +++ incubator/singa/site/trunk/doxygen/html/search/all_0.html Mon Apr 22 10:37:18 2019 @@ -0,0 +1,26 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.13"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_0.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> Added: incubator/singa/site/trunk/doxygen/html/search/all_0.js URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/all_0.js?rev=1857944&view=auto ============================================================================== --- incubator/singa/site/trunk/doxygen/html/search/all_0.js (added) +++ incubator/singa/site/trunk/doxygen/html/search/all_0.js Mon Apr 22 10:37:18 2019 @@ -0,0 +1,7 @@ +var searchData= +[ + ['_5fcontext',['_Context',['../structsinga_1_1__Context.html',1,'singa']]], + ['_5fcpp',['_Cpp',['../structsinga_1_1lang_1_1__Cpp.html',1,'singa::lang']]], + ['_5fcuda',['_Cuda',['../structsinga_1_1lang_1_1__Cuda.html',1,'singa::lang']]], + ['_5fopencl',['_Opencl',['../structsinga_1_1lang_1_1__Opencl.html',1,'singa::lang']]] +]; Added: incubator/singa/site/trunk/doxygen/html/search/all_1.html URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/all_1.html?rev=1857944&view=auto ============================================================================== --- incubator/singa/site/trunk/doxygen/html/search/all_1.html (added) +++ incubator/singa/site/trunk/doxygen/html/search/all_1.html Mon Apr 22 10:37:18 2019 @@ -0,0 +1,26 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.13"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_1.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> Added: incubator/singa/site/trunk/doxygen/html/search/all_1.js URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/all_1.js?rev=1857944&view=auto ============================================================================== --- incubator/singa/site/trunk/doxygen/html/search/all_1.js (added) +++ incubator/singa/site/trunk/doxygen/html/search/all_1.js Mon Apr 22 10:37:18 2019 @@ -0,0 +1,12 @@ +var searchData= +[ + ['accuracy',['Accuracy',['../classsinga_1_1Accuracy.html',1,'singa']]], + ['adagrad',['AdaGrad',['../classsinga_1_1AdaGrad.html',1,'singa']]], + ['add',['Add',['../classsinga_1_1FeedForwardNet.html#a3802c112004a7587c6f61ef07c6fb776',1,'singa::FeedForwardNet::Add(std::shared_ptr< Layer > layer)'],['../classsinga_1_1FeedForwardNet.html#a063475b1cbd8a7345c9dd5fb31fe60be',1,'singa::FeedForwardNet::Add(const LayerConf &conf, const Shape *sample_shape=nullptr)']]], + ['addcolumn',['AddColumn',['../namespacesinga.html#a554727b758d0cbd7f21cd94e65f18f93',1,'singa::AddColumn(const Tensor &v, Tensor *M)'],['../namespacesinga.html#ab99174091f942384e0aa5cdbb4d493cc',1,'singa::AddColumn(const SType alpha, const SType beta, const Tensor &v, Tensor *out)']]], + ['addrow',['AddRow',['../namespacesinga.html#a0cbe7f264403cb0e91f86ca216ec2710',1,'singa::AddRow(const Tensor &v, Tensor *out)'],['../namespacesinga.html#a1b7c2d0ce4c0b704d2719d93f0251e76',1,'singa::AddRow(const SType alpha, const SType beta, const Tensor &v, Tensor *M)']]], + ['apply',['Apply',['../classsinga_1_1Optimizer.html#a98c129ff433c9faff924f17618126539',1,'singa::Optimizer::Apply(int epoch, float lr, const string &name, Tensor &grad, Tensor &value, int step=-1)=0'],['../classsinga_1_1Optimizer.html#a23eb982f713174589788369a0316e81d',1,'singa::Optimizer::Apply(int epoch, const string &name, Tensor &grad, Tensor &value, int step=-1)'],['../classsinga_1_1Constraint.html#afeea35b7cc9bbceb9973d9918b70d211',1,'singa::Constraint::Apply(int epoch, const Tensor &value, Tensor &grad, int step=-1)'],['../classsinga_1_1Constraint.html#ab6b7bc7abeb5d6d14be0839193e377c1',1,'singa::Constraint::Apply(int epoch, const vector< Tensor > &values, const vector< Tensor > &grads, int step=-1)'],['../classsinga_1_1Regularizer.html#a0a0def23a8d3efdf2d2a9025065fc7da',1,'singa::Regularizer::Apply(int epoch, const Tensor &value, Tensor &grad, int step=-1)'],['../classsinga_1_1Regularizer.html#ad791f45a06572dd88a0 ab092ddd125f1',1,'singa::Regularizer::Apply(int epoch, const vector< Tensor > &values, const vector< Tensor > &grads, int step=-1)'],['../classsinga_1_1SGD.html#ac73356906d1ca127d7d13c376b5edafe',1,'singa::SGD::Apply()'],['../classsinga_1_1Nesterov.html#a6551a089c8073dd13b27d59b06ccf2eb',1,'singa::Nesterov::Apply()'],['../classsinga_1_1AdaGrad.html#ac9b378fe7ae88f88e45b817f89871f69',1,'singa::AdaGrad::Apply()'],['../classsinga_1_1RMSProp.html#a2b83ee5006967e91eed435c6adcf782d',1,'singa::RMSProp::Apply()'],['../classsinga_1_1Updater.html#ac07c0e7cd69b631244b7c2c4bb90c0ec',1,'singa::Updater::Apply()'],['../classsinga_1_1LocalUpdater.html#a700d688de66ac310dcaa93d0ce9adeb2',1,'singa::LocalUpdater::Apply()']]], + ['astype',['AsType',['../classsinga_1_1Tensor.html#acfe6d1399951598288a04531fba1a904',1,'singa::Tensor::AsType()'],['../classsinga_1_1FeedForwardNet.html#a554d848ec434290b2de971c91c0f2e83',1,'singa::FeedForwardNet::AsType()'],['../classsinga_1_1Layer.html#a2cccba7a2b3a1bed714f9be2b8b4d520',1,'singa::Layer::AsType()']]], + ['average',['Average',['../namespacesinga.html#a9a8ade3c623ecb13de53f14da2728df8',1,'singa']]], + ['axpy',['Axpy',['../namespacesinga.html#a7389cb7b91f0265c19f0968b02c8245b',1,'singa']]] +]; Added: incubator/singa/site/trunk/doxygen/html/search/all_10.html URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/all_10.html?rev=1857944&view=auto ============================================================================== --- incubator/singa/site/trunk/doxygen/html/search/all_10.html (added) +++ incubator/singa/site/trunk/doxygen/html/search/all_10.html Mon Apr 22 10:37:18 2019 @@ -0,0 +1,26 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.13"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_10.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> Added: incubator/singa/site/trunk/doxygen/html/search/all_10.js URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/all_10.js?rev=1857944&view=auto ============================================================================== --- incubator/singa/site/trunk/doxygen/html/search/all_10.js (added) +++ incubator/singa/site/trunk/doxygen/html/search/all_10.js Mon Apr 22 10:37:18 2019 @@ -0,0 +1,15 @@ +var searchData= +[ + ['read',['Read',['../classsinga_1_1io_1_1Reader.html#a8d45ee8b877e4344d776265af16e0c4b',1,'singa::io::Reader::Read()'],['../classsinga_1_1io_1_1BinFileReader.html#a956414a417964de2a8f8248ea8ba1e0c',1,'singa::io::BinFileReader::Read()'],['../classsinga_1_1io_1_1TextFileReader.html#af073eb6bb148be54145d0c38347556e9',1,'singa::io::TextFileReader::Read()'],['../classsinga_1_1Snapshot.html#a1b5a7c9bd8571523929f973d60911a9c',1,'singa::Snapshot::Read()'],['../classsinga_1_1Snapshot.html#aa5153b76cd995cf42c7b61010ffdd648',1,'singa::Snapshot::Read(const std::string &Key)']]], + ['reader',['Reader',['../classsinga_1_1io_1_1Reader.html',1,'singa::io']]], + ['readfield',['ReadField',['../classsinga_1_1io_1_1BinFileReader.html#afb5a302a0633012c0e7a52514e8cfff0',1,'singa::io::BinFileReader']]], + ['readshape',['ReadShape',['../classsinga_1_1Snapshot.html#a25c10f3e39b912fb0a72b4e575c60c0f',1,'singa::Snapshot::ReadShape()'],['../classsinga_1_1Snapshot.html#a0475ba53518a9f6b6bcced2d00db14be',1,'singa::Snapshot::ReadShape(const std::string &key)']]], + ['register',['Register',['../classsinga_1_1Optimizer.html#a6385d176ba3b2bf744221f8801291f3e',1,'singa::Optimizer::Register()'],['../classsinga_1_1Updater.html#a279ada6bda1f42a420245f5258bba221',1,'singa::Updater::Register()'],['../classsinga_1_1LocalUpdater.html#a4b44fb78738f1ed042c3425e5681aa33',1,'singa::LocalUpdater::Register()'],['../classFactory.html#a59c8b156b2e87ee68b06a5dc1c07f084',1,'Factory::Register()']]], + ['registra',['Registra',['../classRegistra.html',1,'']]], + ['regularizer',['Regularizer',['../classsinga_1_1Regularizer.html',1,'singa']]], + ['repeatdata',['RepeatData',['../classsinga_1_1Tensor.html#a3a36059ddc56785efc13939d022f7d6c',1,'singa::Tensor']]], + ['resetlike',['ResetLike',['../classsinga_1_1Tensor.html#a8593ee267f73de51aeac35cd2a527f1d',1,'singa::Tensor']]], + ['reshape',['Reshape',['../classsinga_1_1Tensor.html#ab926cc6a52b4769422d3f79c001487f3',1,'singa::Tensor::Reshape()'],['../namespacesinga.html#a4845cf0243e227bdf92a7cb536698ec9',1,'singa::Reshape()']]], + ['resize',['Resize',['../classsinga_1_1Tensor.html#a4c246861034f2c704ed3190988b40fe8',1,'singa::Tensor']]], + ['rmsprop',['RMSProp',['../classsinga_1_1RMSProp.html',1,'singa']]] +]; Added: incubator/singa/site/trunk/doxygen/html/search/all_11.html URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/all_11.html?rev=1857944&view=auto ============================================================================== --- incubator/singa/site/trunk/doxygen/html/search/all_11.html (added) +++ incubator/singa/site/trunk/doxygen/html/search/all_11.html Mon Apr 22 10:37:18 2019 @@ -0,0 +1,26 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.13"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_11.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> Added: incubator/singa/site/trunk/doxygen/html/search/all_11.js URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/all_11.js?rev=1857944&view=auto ============================================================================== --- incubator/singa/site/trunk/doxygen/html/search/all_11.js (added) +++ incubator/singa/site/trunk/doxygen/html/search/all_11.js Mon Apr 22 10:37:18 2019 @@ -0,0 +1,33 @@ +var searchData= +[ + ['safequeue',['SafeQueue',['../classSafeQueue.html',1,'']]], + ['safequeue_3c_20element_2c_20std_3a_3apriority_5fqueue_3c_20element_20_3e_20_3e',['SafeQueue< Element, std::priority_queue< Element > >',['../classSafeQueue.html',1,'']]], + ['scheduler',['Scheduler',['../classsinga_1_1Scheduler.html',1,'singa']]], + ['seektofirst',['SeekToFirst',['../classsinga_1_1io_1_1Reader.html#a82bb5bcb71d5abc58ffad4b698eb4965',1,'singa::io::Reader::SeekToFirst()'],['../classsinga_1_1io_1_1BinFileReader.html#ae73a7c0aed3d2667ff83176c7dc3539c',1,'singa::io::BinFileReader::SeekToFirst()'],['../classsinga_1_1io_1_1TextFileReader.html#a482f90691aaded562a41f9ec89884097',1,'singa::io::TextFileReader::SeekToFirst()']]], + ['send',['Send',['../classsinga_1_1Channel.html#aa951f405d0cf20944afa5a73c2e166f6',1,'singa::Channel::Send(const std::string &message)'],['../classsinga_1_1Channel.html#a306d4777018e397a24abb29468d149d9',1,'singa::Channel::Send(const google::protobuf::Message &message)']]], + ['setchanneldirectory',['SetChannelDirectory',['../namespacesinga.html#adc9d8f53816244f6006141817e3b86db',1,'singa']]], + ['setdestfilepath',['SetDestFilePath',['../classsinga_1_1Channel.html#a13af9ce49d21bf3b04c198f5580097dd',1,'singa::Channel']]], + ['setlearningrategenerator',['SetLearningRateGenerator',['../classsinga_1_1Optimizer.html#a2f3ba1fe776cdf373565b0cf208bf540',1,'singa::Optimizer']]], + ['setlogdestination',['SetLogDestination',['../namespacesinga.html#a23f5f64072659d14ef6251faaead345a',1,'singa']]], + ['setmomentumgenerator',['SetMomentumGenerator',['../classsinga_1_1SGD.html#a70d7de98ba845ff4deb46f0e1301a34c',1,'singa::SGD::SetMomentumGenerator()'],['../classsinga_1_1Nesterov.html#a2ffcfb0b5c20aeaa7af40254bcf85396',1,'singa::Nesterov::SetMomentumGenerator()']]], + ['setstderrlogging',['SetStderrLogging',['../namespacesinga.html#af45997ae6f3babb10023156d4c0993fc',1,'singa']]], + ['setup',['Setup',['../classsinga_1_1ImageTransformer.html#a96dbd65ebac2c4df2d5e07b1e7a0ae9a',1,'singa::ImageTransformer::Setup()'],['../classsinga_1_1Initializer.html#a7ffa4b002b680d125f2725f39f658a72',1,'singa::Initializer::Setup()'],['../classsinga_1_1init_1_1Constant.html#af6d2629610e24d4eda3365f7ca928468',1,'singa::init::Constant::Setup()'],['../classsinga_1_1init_1_1Uniform.html#a9a01bd4cb9780414720ac21abeaed1cf',1,'singa::init::Uniform::Setup()'],['../classsinga_1_1init_1_1Gaussian.html#abfe2c416e0c68253bd2fb21897dd7980',1,'singa::init::Gaussian::Setup()'],['../classsinga_1_1Layer.html#a1462d97e5a7c0954d34b56d94eebeb9b',1,'singa::Layer::Setup(const Shape &in_shape, const string &proto_str)'],['../classsinga_1_1Layer.html#a3a302d7b93109f8d00837b72f501c1e2',1,'singa::Layer::Setup(const vector< Shape > &in_shapes, const string &proto_str)'],['../classsinga_1_1Layer.html#a3866ece143b21c76702ca4ce76e79500',1,'singa::Layer::Setup(const Shape &in_sample, const LayerConf &conf)'],['../classsinga_1_1Layer.html#a580bee8561fae6918d4438841fb1b938',1,'singa::Layer::Setup(const vector< Shape > &in_samples, const LayerConf &conf)'],['../classsinga_1_1Loss.html#a5be3a26d72200fb17ce1b2fa8c866525',1,'singa::Loss::Setup()'],['../classsinga_1_1Metric.html#a0d5f2debebaedd389a59a2ee18068175',1,'singa::Metric::Setup()'],['../classsinga_1_1Accuracy.html#a5151ebab1b0436d6330ad24656b52b3d',1,'singa::Accuracy::Setup()'],['../classsinga_1_1Optimizer.html#ad0940567e5f2ac6ec99132f2c013c94a',1,'singa::Optimizer::Setup(const string &str)'],['../classsinga_1_1Optimizer.html#aa51db156a64d285d04f575398bb79d1c',1,'singa::Optimizer::Setup(const OptimizerConf &conf)'],['../classsinga_1_1SGD.html#a74b836b2a2a33f1d2cf8b7b0dbcdae47',1,'singa::SGD::Setup()'],['../classsinga_1_1Nesterov.html#a117377bc4294f46759e7d87834c6772d',1,'singa::Nesterov::Setup()'],['../classsinga_1_1AdaGrad.html#afc3a6e5030ba5517a9c22158c784d976',1,'singa::AdaGrad::Se tup()'],['../classsinga_1_1RMSProp.html#a8e2e088416dd043d0902aeba51e08537',1,'singa::RMSProp::Setup()'],['../classsinga_1_1Updater.html#a6cc4fdac0b011f0500c0d7bf9ad78e1a',1,'singa::Updater::Setup()']]], + ['setvalue',['SetValue',['../classsinga_1_1Tensor.html#a6b940544ecf97e88d716af395b728a26',1,'singa::Tensor']]], + ['sgd',['SGD',['../classsinga_1_1SGD.html',1,'singa']]], + ['singa',['singa',['../namespacesinga.html',1,'']]], + ['singleton',['Singleton',['../classSingleton.html',1,'']]], + ['size',['Size',['../classsinga_1_1Tensor.html#a1c38d62986020862905d1307c09972e0',1,'singa::Tensor::Size()'],['../classSafeQueue.html#ad8c8beb82fe07d1bbb74a78480d02ff2',1,'SafeQueue::Size()'],['../classPriorityQueue.html#a4e37ab2e501407763e3a1f35ce417739',1,'PriorityQueue::Size()']]], + ['slicecolumns',['SliceColumns',['../namespacesinga.html#a6e4b7304c7c43a3260fdbba3b658af36',1,'singa']]], + ['sliceon',['SliceOn',['../namespacesinga.html#a9db0996d454f23b8ed4ea502f2a464c1',1,'singa']]], + ['slicerows',['SliceRows',['../namespacesinga.html#a8e159ad4bd62b5794956485a38fee212',1,'singa']]], + ['snapshot',['Snapshot',['../classsinga_1_1Snapshot.html',1,'singa::Snapshot'],['../classsinga_1_1Snapshot.html#a6c953392f9d314ed0bf644a5d64eac84',1,'singa::Snapshot::Snapshot()']]], + ['softmax',['SoftMax',['../namespacesinga.html#ab25f7f15d8b9719a610a24c1ad81facd',1,'singa::SoftMax(const Tensor &in)'],['../namespacesinga.html#a6e6b2833ed00ace43384c67a246b6d28',1,'singa::SoftMax(const Tensor &in, Tensor *out)']]], + ['softmaxcrossentropy',['SoftmaxCrossEntropy',['../classsinga_1_1SoftmaxCrossEntropy.html',1,'singa']]], + ['softmaxcrossentropybwd',['SoftmaxCrossEntropyBwd',['../namespacesinga.html#aab9a080006025616d7278b23a8ab4cd4',1,'singa']]], + ['subcolumn',['SubColumn',['../namespacesinga.html#a629d839716eb77397c632d1af6dce5f2',1,'singa']]], + ['subrow',['SubRow',['../namespacesinga.html#ac37f3f825414426f54bf7bedd6ffa8aa',1,'singa']]], + ['sum',['Sum',['../namespacesinga.html#a046c11f765cd1d656aca1d55f3dec40b',1,'singa']]], + ['sumcolumns',['SumColumns',['../namespacesinga.html#a976fe0564db9515f38650b5628d92c86',1,'singa']]], + ['sumrows',['SumRows',['../namespacesinga.html#a37daa1263efbf66896d6948f779f7d07',1,'singa']]], + ['sync',['Sync',['../classsinga_1_1Device.html#a61744e09ab97eeeb8b822bd9adc930db',1,'singa::Device']]] +]; Added: incubator/singa/site/trunk/doxygen/html/search/all_12.html URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/all_12.html?rev=1857944&view=auto ============================================================================== --- incubator/singa/site/trunk/doxygen/html/search/all_12.html (added) +++ incubator/singa/site/trunk/doxygen/html/search/all_12.html Mon Apr 22 10:37:18 2019 @@ -0,0 +1,26 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.13"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_12.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> Added: incubator/singa/site/trunk/doxygen/html/search/all_12.js URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/all_12.js?rev=1857944&view=auto ============================================================================== --- incubator/singa/site/trunk/doxygen/html/search/all_12.js (added) +++ incubator/singa/site/trunk/doxygen/html/search/all_12.js Mon Apr 22 10:37:18 2019 @@ -0,0 +1,22 @@ +var searchData= +[ + ['t',['T',['../classsinga_1_1Tensor.html#ab725179d07eb24323271af9540f9c046',1,'singa::Tensor']]], + ['tensor',['Tensor',['../classsinga_1_1Tensor.html',1,'singa::Tensor'],['../classsinga_1_1Tensor.html#a5e927b96220f66e87cb7582cc6f9bbc3',1,'singa::Tensor::Tensor(const Shape &shape, DataType dtype=kFloat32)'],['../classsinga_1_1Tensor.html#a0b3a329469bbaa5fbdec902f3250f7e5',1,'singa::Tensor::Tensor(const Shape &shape, std::shared_ptr< Device > dev, DataType dtype=kFloat32)'],['../classsinga_1_1Tensor.html#a8689563f7f55e646a7bce8245387571f',1,'singa::Tensor::Tensor(const Tensor &from)'],['../classsinga_1_1Tensor.html#af32b9e397a7c5cd3c8d9ff7e8738836c',1,'singa::Tensor::Tensor(Tensor &&from)']]], + ['textfilereader',['TextFileReader',['../classsinga_1_1io_1_1TextFileReader.html',1,'singa::io']]], + ['textfilewriter',['TextFileWriter',['../classsinga_1_1io_1_1TextFileWriter.html',1,'singa::io']]], + ['tick',['Tick',['../classsinga_1_1Timer.html#a144cdf92b81d46823d1f179b14fabe0c',1,'singa::Timer']]], + ['timer',['Timer',['../classsinga_1_1Timer.html',1,'singa::Timer'],['../classsinga_1_1Timer.html#a6cfa2e79d680a01774e1846ed0585b16',1,'singa::Timer::Timer()']]], + ['tinydir_5fdir',['tinydir_dir',['../structtinydir__dir.html',1,'']]], + ['tinydir_5ffile',['tinydir_file',['../structtinydir__file.html',1,'']]], + ['todevice',['ToDevice',['../classsinga_1_1Tensor.html#a10e51ef8fe5fb5f9157da5ae56619c49',1,'singa::Tensor::ToDevice()'],['../classsinga_1_1FeedForwardNet.html#a165e4e2bad62e2ad6fb9dcaed1e2b568',1,'singa::FeedForwardNet::ToDevice()'],['../classsinga_1_1Layer.html#a3ffe3b58b69ccb87c48e4172f818cba5',1,'singa::Layer::ToDevice()']]], + ['tohost',['ToHost',['../classsinga_1_1Tensor.html#a7b214269cb2dcea698befe14aae11f2e',1,'singa::Tensor']]], + ['tokenizer',['Tokenizer',['../classsinga_1_1Tokenizer.html',1,'singa']]], + ['toproto',['ToProto',['../classsinga_1_1Tensor.html#ac457aeb46420507b5bc0a31d568e6fcd',1,'singa::Tensor::ToProto()'],['../classsinga_1_1Layer.html#a2f1ab53e65ec8592794494995164f12c',1,'singa::Layer::ToProto()']]], + ['toprotostr',['ToProtoStr',['../classsinga_1_1Layer.html#aa7386bdb843345ba6c2095c83ffbd244',1,'singa::Layer']]], + ['train',['Train',['../classsinga_1_1FeedForwardNet.html#a32ef60dad6226d6c03e5917083be5830',1,'singa::FeedForwardNet::Train(size_t batchsize, int nb_epoch, const Tensor &x, const Tensor &y, float val_split=0.0f)'],['../classsinga_1_1FeedForwardNet.html#a63ddd842dbf10260100e6a32735dcbb9',1,'singa::FeedForwardNet::Train(size_t batchsize, int nb_epoch, const Tensor &x, const Tensor &y, const Tensor &val_x, const Tensor &val_y)']]], + ['trainonbatch',['TrainOnBatch',['../classsinga_1_1FeedForwardNet.html#a6906ac848b6d934fe0ce515dddc386ad',1,'singa::FeedForwardNet']]], + ['trainthread',['TrainThread',['../classsinga_1_1FeedForwardNet.html#a15306a1719ecd371e7da99d387dbf80c',1,'singa::FeedForwardNet::TrainThread(size_t batchsize, int nb_epoch, const Tensor &x, const Tensor &y, const Tensor &val_x, const Tensor &val_y)'],['../classsinga_1_1FeedForwardNet.html#a62e80931af5311dda492f838f4274dcd',1,'singa::FeedForwardNet::TrainThread(size_t batchsize, int nb_epoch, const Tensor &x, const Tensor &y)']]], + ['transformer',['Transformer',['../classsinga_1_1Transformer.html',1,'singa']]], + ['transpose',['Transpose',['../classsinga_1_1Tensor.html#af2279b51a1eb0b4896937ce0133f4dbd',1,'singa::Tensor::Transpose()'],['../classsinga_1_1Tensor.html#a9d98daca7ea5c6cb14354611b9cc4711',1,'singa::Tensor::Transpose(const vector< size_t > &axes)'],['../classsinga_1_1Tensor.html#adcaa6e890701e7a6b3823936c65b95cb',1,'singa::Tensor::transpose() const'],['../namespacesinga.html#a2b658f8813175483db55a31e0e02d15c',1,'singa::Transpose(const Tensor &in)'],['../namespacesinga.html#abc3785f288bc3b577696b8283129162b',1,'singa::Transpose(const Tensor &in, const vector< size_t > &axes)']]], + ['trypop',['TryPop',['../classSafeQueue.html#aad136ab2d232ff62375d0c347e906bb2',1,'SafeQueue::TryPop()'],['../classPriorityQueue.html#a39433c1537f78686e95f0242d3d1d245',1,'PriorityQueue::TryPop()']]] +]; Added: incubator/singa/site/trunk/doxygen/html/search/all_13.html URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/all_13.html?rev=1857944&view=auto ============================================================================== --- incubator/singa/site/trunk/doxygen/html/search/all_13.html (added) +++ incubator/singa/site/trunk/doxygen/html/search/all_13.html Mon Apr 22 10:37:18 2019 @@ -0,0 +1,26 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.13"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_13.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> Added: incubator/singa/site/trunk/doxygen/html/search/all_13.js URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/all_13.js?rev=1857944&view=auto ============================================================================== --- incubator/singa/site/trunk/doxygen/html/search/all_13.js (added) +++ incubator/singa/site/trunk/doxygen/html/search/all_13.js Mon Apr 22 10:37:18 2019 @@ -0,0 +1,5 @@ +var searchData= +[ + ['uniform',['Uniform',['../classsinga_1_1init_1_1Uniform.html',1,'singa::init::Uniform'],['../namespacesinga.html#a6340f2195aa5759e2f2266848a4c57e0',1,'singa::Uniform()']]], + ['updater',['Updater',['../classsinga_1_1Updater.html',1,'singa']]] +];
