http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/666a841d/api/classsinga_1_1DataShard.html
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1DataShard.html b/api/classsinga_1_1DataShard.html
new file mode 100644
index 0000000..23a0f1c
--- /dev/null
+++ b/api/classsinga_1_1DataShard.html
@@ -0,0 +1,555 @@
+<!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.6"/>
+<title>Apache SINGA: singa::DataShard Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</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="projectlogo"><img alt="Logo" src="singa-logo-small.png"/></td>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Apache SINGA
+   </div>
+   <div id="projectbrief">A distributed deep learning platform .</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a 
href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" 
href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" 
border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" 
onclick="searchBox.OnSelectItem(0)"><span 
class="SelectionMark">&#160;</span>All</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span 
class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span 
class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span 
class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span 
class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span 
class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span 
class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" 
href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span 
class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span 
class="SelectionMark">&#160;</span>Macros</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>singa</b></li><li class="navelem"><a class="el" 
href="classsinga_1_1DataShard.html">DataShard</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> &#124;
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classsinga_1_1DataShard-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">singa::DataShard Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Data shard stores training/validation/test tuples.  
+ <a href="classsinga_1_1DataShard.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" 
href="data__shard_8h_source.html">data_shard.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a 
name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr class="memitem:a5ac705d39e7311c547c49302085b356d"><td class="memItemLeft" 
align="right" valign="top">enum &#160;</td><td class="memItemRight" 
valign="bottom">{ <a class="el" 
href="classsinga_1_1DataShard.html#a5ac705d39e7311c547c49302085b356daa9137a258a61dcfcac6c1178671a8bd2">kRead</a>
 =0, 
+<a class="el" 
href="classsinga_1_1DataShard.html#a5ac705d39e7311c547c49302085b356da1a654b4408789f3c0ab4801ed70844cf">kCreate</a>
 =1, 
+<b>kAppend</b> =2
+ }</td></tr>
+<tr class="separator:a5ac705d39e7311c547c49302085b356d"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a 
name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a6e77727aecc2f9c02b1de6f23bd2a897"><td class="memItemLeft" 
align="right" valign="top">&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1DataShard.html#a6e77727aecc2f9c02b1de6f23bd2a897">DataShard</a>
 (std::string folder, char mode, int capacity=104857600)</td></tr>
+<tr class="memdesc:a6e77727aecc2f9c02b1de6f23bd2a897"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Init the shard obj.  <a 
href="#a6e77727aecc2f9c02b1de6f23bd2a897">More...</a><br/></td></tr>
+<tr class="separator:a6e77727aecc2f9c02b1de6f23bd2a897"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af8c2ef534766e7791b7a442175488272"><td class="memItemLeft" 
align="right" valign="top">bool&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1DataShard.html#af8c2ef534766e7791b7a442175488272">Next</a> 
(std::string *key, Message *val)</td></tr>
+<tr class="memdesc:af8c2ef534766e7791b7a442175488272"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">read next tuple from the 
shard.  <a href="#af8c2ef534766e7791b7a442175488272">More...</a><br/></td></tr>
+<tr class="separator:af8c2ef534766e7791b7a442175488272"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9532ec3d004d4a09cf2329daa1eb49c"><td class="memItemLeft" 
align="right" valign="top">bool&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1DataShard.html#ad9532ec3d004d4a09cf2329daa1eb49c">Next</a> 
(std::string *key, std::string *val)</td></tr>
+<tr class="memdesc:ad9532ec3d004d4a09cf2329daa1eb49c"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">read next tuple from the 
shard.  <a href="#ad9532ec3d004d4a09cf2329daa1eb49c">More...</a><br/></td></tr>
+<tr class="separator:ad9532ec3d004d4a09cf2329daa1eb49c"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abb51034daa81769ee59f7367eb29aeac"><td class="memItemLeft" 
align="right" valign="top">bool&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1DataShard.html#abb51034daa81769ee59f7367eb29aeac">Insert</a>
 (const std::string &amp;key, const Message &amp;tuple)</td></tr>
+<tr class="memdesc:abb51034daa81769ee59f7367eb29aeac"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Append one tuple to the 
shard.  <a href="#abb51034daa81769ee59f7367eb29aeac">More...</a><br/></td></tr>
+<tr class="separator:abb51034daa81769ee59f7367eb29aeac"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae77af51b5e1f89f7e11212a781c8882e"><td class="memItemLeft" 
align="right" valign="top">bool&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1DataShard.html#ae77af51b5e1f89f7e11212a781c8882e">Insert</a>
 (const std::string &amp;key, const std::string &amp;tuple)</td></tr>
+<tr class="memdesc:ae77af51b5e1f89f7e11212a781c8882e"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Append one tuple to the 
shard.  <a href="#ae77af51b5e1f89f7e11212a781c8882e">More...</a><br/></td></tr>
+<tr class="separator:ae77af51b5e1f89f7e11212a781c8882e"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5dc1c875bcca99c4cf93ec79d65d3b6e"><td class="memItemLeft" 
align="right" valign="top">void&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1DataShard.html#a5dc1c875bcca99c4cf93ec79d65d3b6e">SeekToFirst</a>
 ()</td></tr>
+<tr class="memdesc:a5dc1c875bcca99c4cf93ec79d65d3b6e"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Move the read pointer to 
the head of the shard file.  <a 
href="#a5dc1c875bcca99c4cf93ec79d65d3b6e">More...</a><br/></td></tr>
+<tr class="separator:a5dc1c875bcca99c4cf93ec79d65d3b6e"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae73c176fca13d4aa7389af7cff327e77"><td class="memItemLeft" 
align="right" valign="top">void&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1DataShard.html#ae73c176fca13d4aa7389af7cff327e77">Flush</a> 
()</td></tr>
+<tr class="memdesc:ae73c176fca13d4aa7389af7cff327e77"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Flush buffered data to 
disk.  <a href="#ae73c176fca13d4aa7389af7cff327e77">More...</a><br/></td></tr>
+<tr class="separator:ae73c176fca13d4aa7389af7cff327e77"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a981e05115560a0f2cd9eac910e98fd25"><td class="memItemLeft" 
align="right" valign="top">const int&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1DataShard.html#a981e05115560a0f2cd9eac910e98fd25">Count</a> 
()</td></tr>
+<tr class="memdesc:a981e05115560a0f2cd9eac910e98fd25"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Iterate through all tuples 
to get the num of all tuples.  <a 
href="#a981e05115560a0f2cd9eac910e98fd25">More...</a><br/></td></tr>
+<tr class="separator:a981e05115560a0f2cd9eac910e98fd25"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a67c81cb0a56c990b0f750e4b2aff31"><td class="memItemLeft" 
align="right" valign="top">const std::string&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1DataShard.html#a0a67c81cb0a56c990b0f750e4b2aff31">path</a> 
()</td></tr>
+<tr class="separator:a0a67c81cb0a56c990b0f750e4b2aff31"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a 
name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a749fbab9c9e910ec559100694ea38332"><td class="memItemLeft" 
align="right" valign="top">int&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1DataShard.html#a749fbab9c9e910ec559100694ea38332">Next</a> 
(std::string *key)</td></tr>
+<tr class="memdesc:a749fbab9c9e910ec559100694ea38332"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Read the next key and 
prepare buffer for reading value.  <a 
href="#a749fbab9c9e910ec559100694ea38332">More...</a><br/></td></tr>
+<tr class="separator:a749fbab9c9e910ec559100694ea38332"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5ac9de0e9760be5142a968fd5602d19"><td class="memItemLeft" 
align="right" valign="top">int&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1DataShard.html#af5ac9de0e9760be5142a968fd5602d19">PrepareForAppend</a>
 (std::string <a class="el" 
href="classsinga_1_1DataShard.html#a0a67c81cb0a56c990b0f750e4b2aff31">path</a>)</td></tr>
+<tr class="memdesc:af5ac9de0e9760be5142a968fd5602d19"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Setup the disk pointer to 
the right position for append in case that the pervious write crashes.  <a 
href="#af5ac9de0e9760be5142a968fd5602d19">More...</a><br/></td></tr>
+<tr class="separator:af5ac9de0e9760be5142a968fd5602d19"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a651e8bfe357f5bed8dd59470262fd3b4"><td class="memItemLeft" 
align="right" valign="top">bool&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1DataShard.html#a651e8bfe357f5bed8dd59470262fd3b4">PrepareNextField</a>
 (int size)</td></tr>
+<tr class="memdesc:a651e8bfe357f5bed8dd59470262fd3b4"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Read data from disk if the 
current data in the buffer is not a full field.  <a 
href="#a651e8bfe357f5bed8dd59470262fd3b4">More...</a><br/></td></tr>
+<tr class="separator:a651e8bfe357f5bed8dd59470262fd3b4"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed 
Description</h2>
+<div class="textblock"><p>Data shard stores training/validation/test tuples. 
</p>
+<p>Every worker node should have a training shard (validation/test shard is 
optional). The shard file for training is 
singa::Cluster::workspace()/train/shard.dat; The shard file for validation is 
singa::Cluster::workspace()/train/shard.dat; Similar path for test.</p>
+<p>shard.dat consists of a set of unordered tuples. Each tuple is encoded as 
[key_len key record_len val] (key_len and record_len are of type uint32, which 
indicate the bytes of key and record respectively.</p>
+<p>When Shard obj is created, it will remove the last key if the record size 
and key size do not match because the last write of tuple crashed.</p>
+<p>TODO</p>
+<ol type="1">
+<li>split one shard into multile shards.</li>
+<li>add threading to prefetch and parse records </li>
+</ol>
+</div><h2 class="groupheader">Member Enumeration Documentation</h2>
+<a class="anchor" id="a5ac705d39e7311c547c49302085b356d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a 
class="anchor" 
id="a5ac705d39e7311c547c49302085b356daa9137a258a61dcfcac6c1178671a8bd2"></a>kRead</em>&#160;</td><td
 class="fielddoc">
+<p>read only mode used in training </p>
+<p>write mode used in creating shard (will overwrite previous one) </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" 
id="a5ac705d39e7311c547c49302085b356da1a654b4408789f3c0ab4801ed70844cf"></a>kCreate</em>&#160;</td><td
 class="fielddoc">
+<p>append mode, e.g. used when previous creating crashes </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a6e77727aecc2f9c02b1de6f23bd2a897"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">singa::DataShard::DataShard </td>
+          <td>(</td>
+          <td class="paramtype">std::string&#160;</td>
+          <td class="paramname"><em>folder</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>capacity</em> = 
<code>104857600</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Init the shard obj. </p>
+<p>shard folder (path excluding shard.dat) on worker node  shard open mode, 
Shard::kRead, Shard::kWrite or Shard::kAppend  batch bufsize bytes data for 
every disk op (read or write), default is 100MB </p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a981e05115560a0f2cd9eac910e98fd25"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const int singa::DataShard::Count </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Iterate through all tuples to get the num of all tuples. </p>
+<dl class="section return"><dt>Returns</dt><dd>num of tuples </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ae73c176fca13d4aa7389af7cff327e77"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void singa::DataShard::Flush </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Flush buffered data to disk. </p>
+<p>Used only for kCreate or kAppend. </p>
+
+</div>
+</div>
+<a class="anchor" id="abb51034daa81769ee59f7367eb29aeac"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool singa::DataShard::Insert </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>key</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const Message &amp;&#160;</td>
+          <td class="paramname"><em>tuple</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Append one tuple to the shard. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">key</td><td>e.g., image path </td></tr>
+    <tr><td class="paramname">val</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>reture if sucess, otherwise 
false, e.g., inserted before </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ae77af51b5e1f89f7e11212a781c8882e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool singa::DataShard::Insert </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>key</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>tuple</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Append one tuple to the shard. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">key</td><td>e.g., image path </td></tr>
+    <tr><td class="paramname">val</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>reture if sucess, otherwise 
false, e.g., inserted before </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="af8c2ef534766e7791b7a442175488272"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool singa::DataShard::Next </td>
+          <td>(</td>
+          <td class="paramtype">std::string *&#160;</td>
+          <td class="paramname"><em>key</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">Message *&#160;</td>
+          <td class="paramname"><em>val</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>read next tuple from the shard. </p>
+<p>key </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">val</td><td>record of type Message </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>true if read success otherwise 
false, e.g., the tuple was not inserted completely. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ad9532ec3d004d4a09cf2329daa1eb49c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool singa::DataShard::Next </td>
+          <td>(</td>
+          <td class="paramtype">std::string *&#160;</td>
+          <td class="paramname"><em>key</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::string *&#160;</td>
+          <td class="paramname"><em>val</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>read next tuple from the shard. </p>
+<p>key tuple key </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">val</td><td>record of type string </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>true if read success otherwise 
false, e.g., the tuple was not inserted completely. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a749fbab9c9e910ec559100694ea38332"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">int singa::DataShard::Next </td>
+          <td>(</td>
+          <td class="paramtype">std::string *&#160;</td>
+          <td class="paramname"><em>key</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Read the next key and prepare buffer for reading value. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">key</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>length (i.e., bytes) of value 
field. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a0a67c81cb0a56c990b0f750e4b2aff31"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">const std::string singa::DataShard::path </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>path to shard file </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="af5ac9de0e9760be5142a968fd5602d19"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">int singa::DataShard::PrepareForAppend </td>
+          <td>(</td>
+          <td class="paramtype">std::string&#160;</td>
+          <td class="paramname"><em>path</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Setup the disk pointer to the right position for append in case that the 
pervious write crashes. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">path</td><td>shard path. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>offset (end pos) of the last 
success written record. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a651e8bfe357f5bed8dd59470262fd3b4"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool singa::DataShard::PrepareNextField </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>size</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Read data from disk if the current data in the buffer is not a full field. 
</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">size</td><td>size of the next field. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a5dc1c875bcca99c4cf93ec79d65d3b6e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void singa::DataShard::SeekToFirst </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Move the read pointer to the head of the shard file. </p>
+<p>Used for repeated reading. </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following 
file:<ul>
+<li>/home/wangwei/program/asf/incubator-singa/include/utils/<a class="el" 
href="data__shard_8h_source.html">data_shard.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 7 2015 17:15:43 for Apache SINGA by &#160;<a 
href="http://www.doxygen.org/index.html";>
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/666a841d/api/classsinga_1_1Dealer-members.html
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1Dealer-members.html 
b/api/classsinga_1_1Dealer-members.html
new file mode 100644
index 0000000..1729330
--- /dev/null
+++ b/api/classsinga_1_1Dealer-members.html
@@ -0,0 +1,118 @@
+<!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.6"/>
+<title>Apache SINGA: Member List</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/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</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="projectlogo"><img alt="Logo" src="singa-logo-small.png"/></td>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Apache SINGA
+   </div>
+   <div id="projectbrief">A distributed deep learning platform .</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a 
href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" 
href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" 
border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" 
onclick="searchBox.OnSelectItem(0)"><span 
class="SelectionMark">&#160;</span>All</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span 
class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span 
class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span 
class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span 
class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span 
class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span 
class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" 
href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span 
class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span 
class="SelectionMark">&#160;</span>Macros</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>singa</b></li><li class="navelem"><a class="el" 
href="classsinga_1_1Dealer.html">Dealer</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">singa::Dealer Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" 
href="classsinga_1_1Dealer.html">singa::Dealer</a>, including all inherited 
members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Dealer.html#aa395131f3cea3619927da31457c54a2d">Connect</a>(string
 endpoint)</td><td class="entry"><a class="el" 
href="classsinga_1_1Dealer.html">singa::Dealer</a></td><td class="entry"><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Dealer</b>(int id=-1) (defined in 
<a class="el" href="classsinga_1_1Dealer.html">singa::Dealer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Dealer.html">singa::Dealer</a></td><td 
class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>dealer_</b> (defined 
in <a class="el" href="classsinga_1_1Dealer.html">singa::Dealer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Dealer.html">singa::Dealer</a></td><td class="entry"><span 
class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>id_</b> (defined in <a class="el" 
href="classsinga_1_1Dealer.html">singa::Dealer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Dealer.html">singa::Dealer</a></td><td 
class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Dealer.html#a9f25d3caeb2014c27f5f2459a65b1279">InternalID</a>()
 const </td><td class="entry"><a class="el" 
href="classsinga_1_1Dealer.html">singa::Dealer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>local_id_</b> (defined in <a 
class="el" href="classsinga_1_1Socket.html">singa::Socket</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Socket.html">singa::Socket</a></td><td class="entry"><span 
class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>poller_</b> (defined 
in <a class="el" href="classsinga_1_1Dealer.html">singa::Dealer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Dealer.html">singa::Dealer</a></td><td class="entry"><span 
class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1Dealer.html#ae696a75b0ee56234d68af0b1d5104797">Receive</a>()</td><td
 class="entry"><a class="el" 
href="classsinga_1_1Dealer.html">singa::Dealer</a></td><td class="entry"><span 
class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Dealer.html#a558c7ea2f5facda55b73bdde8a147c9b">Send</a>(Msg 
*msg)</td><td class="entry"><a class="el" 
href="classsinga_1_1Dealer.html">singa::Dealer</a></td><td class="entry"><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Socket</b>() (defined in <a 
class="el" href="classsinga_1_1Socket.html">singa::Socket</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Socket.html">singa::Socket</a></td><td class="entry"><span 
class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~Dealer</b>() 
(defined in <a class="el" 
href="classsinga_1_1Dealer.html">singa::Dealer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Dealer.html">singa::Dealer</a></td><td 
class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>~Socket</b>() (defined in <a 
class="el" href="classsinga_1_1Socket.html">singa::Socket</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Socket.html">singa::Socket</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 7 2015 17:15:40 for Apache SINGA by &#160;<a 
href="http://www.doxygen.org/index.html";>
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/666a841d/api/classsinga_1_1Dealer.html
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1Dealer.html b/api/classsinga_1_1Dealer.html
new file mode 100644
index 0000000..3939940
--- /dev/null
+++ b/api/classsinga_1_1Dealer.html
@@ -0,0 +1,277 @@
+<!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.6"/>
+<title>Apache SINGA: singa::Dealer Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</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="projectlogo"><img alt="Logo" src="singa-logo-small.png"/></td>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Apache SINGA
+   </div>
+   <div id="projectbrief">A distributed deep learning platform .</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a 
href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" 
href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" 
border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" 
onclick="searchBox.OnSelectItem(0)"><span 
class="SelectionMark">&#160;</span>All</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span 
class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span 
class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span 
class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span 
class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span 
class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span 
class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" 
href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span 
class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span 
class="SelectionMark">&#160;</span>Macros</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>singa</b></li><li class="navelem"><a class="el" 
href="classsinga_1_1Dealer.html">Dealer</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="classsinga_1_1Dealer-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">singa::Dealer Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for singa::Dealer:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classsinga_1_1Dealer.png" usemap="#singa::Dealer_map" alt=""/>
+  <map id="singa::Dealer_map" name="singa::Dealer_map">
+<area href="classsinga_1_1Socket.html" alt="singa::Socket" shape="rect" 
coords="0,0,86,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a 
name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ac450f080e8fd66a5969eee459abb297a"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="ac450f080e8fd66a5969eee459abb297a"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Dealer</b> (int 
id=-1)</td></tr>
+<tr class="separator:ac450f080e8fd66a5969eee459abb297a"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa395131f3cea3619927da31457c54a2d"><td class="memItemLeft" 
align="right" valign="top">virtual int&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1Dealer.html#aa395131f3cea3619927da31457c54a2d">Connect</a> 
(string endpoint)</td></tr>
+<tr class="memdesc:aa395131f3cea3619927da31457c54a2d"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Setup the connection with 
the router.  <a 
href="#aa395131f3cea3619927da31457c54a2d">More...</a><br/></td></tr>
+<tr class="separator:aa395131f3cea3619927da31457c54a2d"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a558c7ea2f5facda55b73bdde8a147c9b"><td class="memItemLeft" 
align="right" valign="top">virtual int&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1Dealer.html#a558c7ea2f5facda55b73bdde8a147c9b">Send</a> (<a 
class="el" href="classsinga_1_1Msg.html">Msg</a> *msg)</td></tr>
+<tr class="memdesc:a558c7ea2f5facda55b73bdde8a147c9b"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Send a message to connected 
socket(s), non-blocking.  <a 
href="#a558c7ea2f5facda55b73bdde8a147c9b">More...</a><br/></td></tr>
+<tr class="separator:a558c7ea2f5facda55b73bdde8a147c9b"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae696a75b0ee56234d68af0b1d5104797"><td class="memItemLeft" 
align="right" valign="top">virtual <a class="el" 
href="classsinga_1_1Msg.html">Msg</a> *&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1Dealer.html#ae696a75b0ee56234d68af0b1d5104797">Receive</a> 
()</td></tr>
+<tr class="memdesc:ae696a75b0ee56234d68af0b1d5104797"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Receive a message from any 
connected socket.  <a 
href="#ae696a75b0ee56234d68af0b1d5104797">More...</a><br/></td></tr>
+<tr class="separator:ae696a75b0ee56234d68af0b1d5104797"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9f25d3caeb2014c27f5f2459a65b1279"><td class="memItemLeft" 
align="right" valign="top">virtual void *&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1Dealer.html#a9f25d3caeb2014c27f5f2459a65b1279">InternalID</a>
 () const </td></tr>
+<tr class="separator:a9f25d3caeb2014c27f5f2459a65b1279"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a 
name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a819b94496dd1739d340075506f94e18f"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a819b94496dd1739d340075506f94e18f"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>id_</b></td></tr>
+<tr class="separator:a819b94496dd1739d340075506f94e18f"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aab9b4064948179212eacab263fc62032"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="aab9b4064948179212eacab263fc62032"></a>
+zsock_t *&#160;</td><td class="memItemRight" 
valign="bottom"><b>dealer_</b></td></tr>
+<tr class="separator:aab9b4064948179212eacab263fc62032"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaee5341b38323d095ac64e56b3668513"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="aaee5341b38323d095ac64e56b3668513"></a>
+zpoller_t *&#160;</td><td class="memItemRight" 
valign="bottom"><b>poller_</b></td></tr>
+<tr class="separator:aaee5341b38323d095ac64e56b3668513"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classsinga_1_1Socket"><td colspan="2" 
onclick="javascript:toggleInherit('pro_attribs_classsinga_1_1Socket')"><img 
src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a 
class="el" href="classsinga_1_1Socket.html">singa::Socket</a></td></tr>
+<tr class="memitem:a548707780610342ac0788f9abf21a0c5 inherit 
pro_attribs_classsinga_1_1Socket"><td class="memItemLeft" align="right" 
valign="top"><a class="anchor" id="a548707780610342ac0788f9abf21a0c5"></a>
+int&#160;</td><td class="memItemRight" 
valign="bottom"><b>local_id_</b></td></tr>
+<tr class="separator:a548707780610342ac0788f9abf21a0c5 inherit 
pro_attribs_classsinga_1_1Socket"><td class="memSeparator" 
colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="aa395131f3cea3619927da31457c54a2d"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual int singa::Dealer::Connect </td>
+          <td>(</td>
+          <td class="paramtype">string&#160;</td>
+          <td class="paramname"><em>endpoint</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Setup the connection with the router. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">endpoint</td><td>identifier of the router. For 
intra-process connection, the endpoint follows the format of ZeroMQ, i.e., 
starting with "inproc://"; in Singa, since each process has one router, hence 
we can fix the endpoint to be "inproc://router" for intra-process. For 
inter-process, the endpoint follows ZeroMQ's format, i.e., IP:port, where IP is 
the connected process. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>1 connection sets up 
successfully; 0 otherwise </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a9f25d3caeb2014c27f5f2459a65b1279"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void* singa::Dealer::InternalID </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>Identifier of the 
implementation dependent socket. E.g., zsock_t* for ZeroMQ implementation and 
rank for MPI implementation. </dd></dl>
+
+<p>Implements <a class="el" 
href="classsinga_1_1Socket.html#a021de3273ade2a1f3b447e04888a0701">singa::Socket</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae696a75b0ee56234d68af0b1d5104797"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" 
href="classsinga_1_1Msg.html">Msg</a>* singa::Dealer::Receive </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Receive a message from any connected socket. </p>
+<dl class="section return"><dt>Returns</dt><dd>a message pointer if success; 
nullptr if failure </dd></dl>
+
+<p>Implements <a class="el" 
href="classsinga_1_1Socket.html#a66dec7b6c67f6dd1407f2ce53d4eb5cb">singa::Socket</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a558c7ea2f5facda55b73bdde8a147c9b"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual int singa::Dealer::Send </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" 
href="classsinga_1_1Msg.html">Msg</a> *&#160;</td>
+          <td class="paramname"><em>msg</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Send a message to connected socket(s), non-blocking. </p>
+<p>The message will be deallocated after sending, thus should not be used 
after calling <a class="el" 
href="classsinga_1_1Dealer.html#a558c7ea2f5facda55b73bdde8a147c9b" title="Send 
a message to connected socket(s), non-blocking. ">Send()</a>; </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">the</td><td>message to be sent </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>1 for success queuing the 
message for sending, 0 for failure </dd></dl>
+
+<p>Implements <a class="el" 
href="classsinga_1_1Socket.html#ad4b5d8cbf20ecc3209139a35d9b6f2e7">singa::Socket</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following 
file:<ul>
+<li>/home/wangwei/program/asf/incubator-singa/include/communication/<a 
class="el" href="socket_8h_source.html">socket.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 7 2015 17:15:40 for Apache SINGA by &#160;<a 
href="http://www.doxygen.org/index.html";>
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/666a841d/api/classsinga_1_1Dealer.png
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1Dealer.png b/api/classsinga_1_1Dealer.png
new file mode 100644
index 0000000..ba944cd
Binary files /dev/null and b/api/classsinga_1_1Dealer.png differ

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/666a841d/api/classsinga_1_1DropoutLayer-members.html
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1DropoutLayer-members.html 
b/api/classsinga_1_1DropoutLayer-members.html
new file mode 100644
index 0000000..e3c2010
--- /dev/null
+++ b/api/classsinga_1_1DropoutLayer-members.html
@@ -0,0 +1,158 @@
+<!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.6"/>
+<title>Apache SINGA: Member List</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/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</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="projectlogo"><img alt="Logo" src="singa-logo-small.png"/></td>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Apache SINGA
+   </div>
+   <div id="projectbrief">A distributed deep learning platform .</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a 
href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" 
href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" 
border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" 
onclick="searchBox.OnSelectItem(0)"><span 
class="SelectionMark">&#160;</span>All</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span 
class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span 
class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span 
class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span 
class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span 
class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span 
class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" 
href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span 
class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span 
class="SelectionMark">&#160;</span>Macros</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>singa</b></li><li class="navelem"><a class="el" 
href="classsinga_1_1DropoutLayer.html">DropoutLayer</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">singa::DropoutLayer Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" 
href="classsinga_1_1DropoutLayer.html">singa::DropoutLayer</a>, including all 
inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td 
class="entry"><b>AddDstLayer</b>(SLayer dst) (defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>AddSrcLayer</b>(SLayer src) 
(defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ClearDstLayers</b>() 
(defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>ClearSrcLayers</b>() (defined in 
<a class="el" href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td 
class="entry"><b>ComputeFeature</b>(bool training, const vector&lt; 
shared_ptr&lt; Layer &gt;&gt; &amp;srclayers) (defined in <a class="el" 
href="classsinga_1_1DropoutLayer.html">singa::DropoutLayer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1DropoutLayer.html">singa::DropoutLayer</a></td><td 
class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#a11ef38d1bf31d054a96a1ac45fd49299">singa::Layer::ComputeFeature</a>(bool
 training, const vector&lt; SLayer &gt; &amp;srclayers)=0</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">pure virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#af5d9b7aba92f5ead82872e5a70a1def0">singa::Layer::ComputeFeature</a>(bool
 training)</td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>ComputeGradient</b>(const 
vector&lt; shared_ptr&lt; Layer &gt;&gt; &amp;srclayers) (defined in <a 
class="el" 
href="classsinga_1_1DropoutLayer.html">singa::DropoutLayer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1DropoutLayer.html">singa::DropoutLayer</a></td><td 
class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#a7eb4b3141896bff0d7c423a24308fd63">singa::Layer::ComputeGradient</a>(const
 vector&lt; SLayer &gt; &amp;srclayers)=0</td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">pure virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#a50591a153fbfe349d8d307781d19ebb5">singa::Layer::ComputeGradient</a>()</td><td
 class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#a7e134c5b4a1a8e442626354d2d869caa">connection_type</a>(int
 k) const </td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#ad443a1e7f957dad71fd0c9b356a53c20">data</a>(const
 Layer *from=nullptr) const </td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>data_</b> (defined 
in <a class="el" href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#a2c5aeabbc26770bcff169dd907e9c737">dstlayers</a>()
 const </td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>dstlayers_</b> 
(defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>dstlayers_size</b>() const  
(defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#aff0688e641c845aee9964a3d96172731">GetParams</a>()</td><td
 class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>grad</b>(const Layer 
*from=nullptr) const  (defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>grad_</b> (defined 
in <a class="el" href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#aeec3259af3b38227d4e3b3c5f5340573">Init</a>(const
 LayerProto &amp;proto)</td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#abc49f57fad4091d99578512c9d24d436">Init</a>(const
 Layer &amp;other, const vector&lt; int &gt; &amp;shape)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>is_bridgedstlayer</b>() const  
(defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td 
class="entry"><b>is_bridgesrclayer</b>() const  (defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>is_datalayer</b>() const  
(defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>is_losslayer</b>() 
const  (defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>is_parserlayer</b>() const  
(defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Layer</b>() (defined 
in <a class="el" href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>layer_proto_</b> (defined in <a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>locationid</b>() 
const  (defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>mask_</b> (defined in <a 
class="el" 
href="classsinga_1_1DropoutLayer.html">singa::DropoutLayer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1DropoutLayer.html">singa::DropoutLayer</a></td><td 
class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td 
class="entry"><b>mutable_data</b>(const Layer *from=nullptr) (defined in <a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#ad4936117ef7d58193726a966f796fafc">mutable_grad</a>(const
 Layer *from=nullptr)</td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#abc76f037afc13a17ab07082cfae945de">name</a>() 
const </td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>name_</b> (defined in <a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>partitiionid</b>() 
const  (defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#a12d268e424e4affada0d5b85ea6d2359">partition_dimension</a>()
 const </td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#ab3c0e1047f36e2fb783a6fd3d4eabd73">partition_type</a>()
 const </td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>pdrop_</b> (defined in <a 
class="el" 
href="classsinga_1_1DropoutLayer.html">singa::DropoutLayer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1DropoutLayer.html">singa::DropoutLayer</a></td><td 
class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#addab6c99866d34001471f86aede7f6e8">set_locationid</a>(int
 id)</td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>set_name</b>(string name) 
(defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#af177cc1bdfc8d57b6992855bf437ef9a">set_partitionid</a>(int
 id)</td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1DropoutLayer.html#a3b2016cbb63ea661e3abef8dd0b392c9">Setup</a>(const
 LayerProto &amp;proto, const vector&lt; SLayer &gt; &amp;srclayers)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1DropoutLayer.html">singa::DropoutLayer</a></td><td 
class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#ae691995f08f16d01739f98b6d9bd0335">singa::Layer::Setup</a>()</td><td
 class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1DropoutLayer.html#a51b6005a831bf92b3ed5107b96efe5e1">SetupAfterPartition</a>(const
 LayerProto &amp;proto, const vector&lt; int &gt; &amp;shape, const vector&lt; 
SLayer &gt; &amp;srclayers)</td><td class="entry"><a class="el" 
href="classsinga_1_1DropoutLayer.html">singa::DropoutLayer</a></td><td 
class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#a50fbb59219c1eeb5559431e1719e1f97">singa::Layer::SetupAfterPartition</a>()</td><td
 class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>shape</b>(const Layer 
*layer=nullptr) const  (defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#a836817f842419098c53fff371ae8fc80">srclayers</a>()
 const </td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>srclayers_</b> (defined in <a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>srclayers_size</b>() 
const  (defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#aa029c17a260a114802c46d9faa347b7f">ToProto</a>(LayerProto
 *layer_proto, bool copyData)</td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>type</b>() const  
(defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>~Layer</b>() (defined in <a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 7 2015 17:15:42 for Apache SINGA by &#160;<a 
href="http://www.doxygen.org/index.html";>
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>

Reply via email to