You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@singa.apache.org by mo...@apache.org on 2019/04/22 10:37:24 UTC
svn commit: r1857944 [32/35] - in /incubator/singa/site/trunk/doxygen: ./
html/ html/search/
Added: incubator/singa/site/trunk/doxygen/html/search/namespaces_0.js
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/namespaces_0.js?rev=1857944&view=auto
==============================================================================
--- incubator/singa/site/trunk/doxygen/html/search/namespaces_0.js (added)
+++ incubator/singa/site/trunk/doxygen/html/search/namespaces_0.js Mon Apr 22 10:37:18 2019
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['singa',['singa',['../namespacesinga.html',1,'']]]
+];
Added: incubator/singa/site/trunk/doxygen/html/search/nomatches.html
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/nomatches.html?rev=1857944&view=auto
==============================================================================
--- incubator/singa/site/trunk/doxygen/html/search/nomatches.html (added)
+++ incubator/singa/site/trunk/doxygen/html/search/nomatches.html Mon Apr 22 10:37:18 2019
@@ -0,0 +1,12 @@
+<!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"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</body>
+</html>
Added: incubator/singa/site/trunk/doxygen/html/search/search.css
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/search.css?rev=1857944&view=auto
==============================================================================
--- incubator/singa/site/trunk/doxygen/html/search/search.css (added)
+++ incubator/singa/site/trunk/doxygen/html/search/search.css Mon Apr 22 10:37:18 2019
@@ -0,0 +1,271 @@
+/*---------------- Search Box */
+
+#FSearchBox {
+ float: left;
+}
+
+#MSearchBox {
+ white-space : nowrap;
+ float: none;
+ margin-top: 8px;
+ right: 0px;
+ width: 170px;
+ height: 24px;
+ z-index: 102;
+}
+
+#MSearchBox .left
+{
+ display:block;
+ position:absolute;
+ left:10px;
+ width:20px;
+ height:19px;
+ background:url('search_l.png') no-repeat;
+ background-position:right;
+}
+
+#MSearchSelect {
+ display:block;
+ position:absolute;
+ width:20px;
+ height:19px;
+}
+
+.left #MSearchSelect {
+ left:4px;
+}
+
+.right #MSearchSelect {
+ right:5px;
+}
+
+#MSearchField {
+ display:block;
+ position:absolute;
+ height:19px;
+ background:url('search_m.png') repeat-x;
+ border:none;
+ width:115px;
+ margin-left:20px;
+ padding-left:4px;
+ color: #909090;
+ outline: none;
+ font: 9pt Arial, Verdana, sans-serif;
+ -webkit-border-radius: 0px;
+}
+
+#FSearchBox #MSearchField {
+ margin-left:15px;
+}
+
+#MSearchBox .right {
+ display:block;
+ position:absolute;
+ right:10px;
+ top:8px;
+ width:20px;
+ height:19px;
+ background:url('search_r.png') no-repeat;
+ background-position:left;
+}
+
+#MSearchClose {
+ display: none;
+ position: absolute;
+ top: 4px;
+ background : none;
+ border: none;
+ margin: 0px 4px 0px 0px;
+ padding: 0px 0px;
+ outline: none;
+}
+
+.left #MSearchClose {
+ left: 6px;
+}
+
+.right #MSearchClose {
+ right: 2px;
+}
+
+.MSearchBoxActive #MSearchField {
+ color: #000000;
+}
+
+/*---------------- Search filter selection */
+
+#MSearchSelectWindow {
+ display: none;
+ position: absolute;
+ left: 0; top: 0;
+ border: 1px solid #90A5CE;
+ background-color: #F9FAFC;
+ z-index: 10001;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ -moz-border-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ -webkit-border-bottom-left-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+.SelectItem {
+ font: 8pt Arial, Verdana, sans-serif;
+ padding-left: 2px;
+ padding-right: 12px;
+ border: 0px;
+}
+
+span.SelectionMark {
+ margin-right: 4px;
+ font-family: monospace;
+ outline-style: none;
+ text-decoration: none;
+}
+
+a.SelectItem {
+ display: block;
+ outline-style: none;
+ color: #000000;
+ text-decoration: none;
+ padding-left: 6px;
+ padding-right: 12px;
+}
+
+a.SelectItem:focus,
+a.SelectItem:active {
+ color: #000000;
+ outline-style: none;
+ text-decoration: none;
+}
+
+a.SelectItem:hover {
+ color: #FFFFFF;
+ background-color: #3D578C;
+ outline-style: none;
+ text-decoration: none;
+ cursor: pointer;
+ display: block;
+}
+
+/*---------------- Search results window */
+
+iframe#MSearchResults {
+ width: 60ex;
+ height: 15em;
+}
+
+#MSearchResultsWindow {
+ display: none;
+ position: absolute;
+ left: 0; top: 0;
+ border: 1px solid #000;
+ background-color: #EEF1F7;
+ z-index:10000;
+}
+
+/* ----------------------------------- */
+
+
+#SRIndex {
+ clear:both;
+ padding-bottom: 15px;
+}
+
+.SREntry {
+ font-size: 10pt;
+ padding-left: 1ex;
+}
+
+.SRPage .SREntry {
+ font-size: 8pt;
+ padding: 1px 5px;
+}
+
+body.SRPage {
+ margin: 5px 2px;
+}
+
+.SRChildren {
+ padding-left: 3ex; padding-bottom: .5em
+}
+
+.SRPage .SRChildren {
+ display: none;
+}
+
+.SRSymbol {
+ font-weight: bold;
+ color: #425E97;
+ font-family: Arial, Verdana, sans-serif;
+ text-decoration: none;
+ outline: none;
+}
+
+a.SRScope {
+ display: block;
+ color: #425E97;
+ font-family: Arial, Verdana, sans-serif;
+ text-decoration: none;
+ outline: none;
+}
+
+a.SRSymbol:focus, a.SRSymbol:active,
+a.SRScope:focus, a.SRScope:active {
+ text-decoration: underline;
+}
+
+span.SRScope {
+ padding-left: 4px;
+}
+
+.SRPage .SRStatus {
+ padding: 2px 5px;
+ font-size: 8pt;
+ font-style: italic;
+}
+
+.SRResult {
+ display: none;
+}
+
+DIV.searchresults {
+ margin-left: 10px;
+ margin-right: 10px;
+}
+
+/*---------------- External search page results */
+
+.searchresult {
+ background-color: #F0F3F8;
+}
+
+.pages b {
+ color: white;
+ padding: 5px 5px 3px 5px;
+ background-image: url("../tab_a.png");
+ background-repeat: repeat-x;
+ text-shadow: 0 1px 1px #000000;
+}
+
+.pages {
+ line-height: 17px;
+ margin-left: 4px;
+ text-decoration: none;
+}
+
+.hl {
+ font-weight: bold;
+}
+
+#searchresults {
+ margin-bottom: 20px;
+}
+
+.searchpages {
+ margin-top: 10px;
+}
+
Added: incubator/singa/site/trunk/doxygen/html/search/search.js
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/search.js?rev=1857944&view=auto
==============================================================================
--- incubator/singa/site/trunk/doxygen/html/search/search.js (added)
+++ incubator/singa/site/trunk/doxygen/html/search/search.js Mon Apr 22 10:37:18 2019
@@ -0,0 +1,791 @@
+function convertToId(search)
+{
+ var result = '';
+ for (i=0;i<search.length;i++)
+ {
+ var c = search.charAt(i);
+ var cn = c.charCodeAt(0);
+ if (c.match(/[a-z0-9\u0080-\uFFFF]/))
+ {
+ result+=c;
+ }
+ else if (cn<16)
+ {
+ result+="_0"+cn.toString(16);
+ }
+ else
+ {
+ result+="_"+cn.toString(16);
+ }
+ }
+ return result;
+}
+
+function getXPos(item)
+{
+ var x = 0;
+ if (item.offsetWidth)
+ {
+ while (item && item!=document.body)
+ {
+ x += item.offsetLeft;
+ item = item.offsetParent;
+ }
+ }
+ return x;
+}
+
+function getYPos(item)
+{
+ var y = 0;
+ if (item.offsetWidth)
+ {
+ while (item && item!=document.body)
+ {
+ y += item.offsetTop;
+ item = item.offsetParent;
+ }
+ }
+ return y;
+}
+
+/* A class handling everything associated with the search panel.
+
+ Parameters:
+ name - The name of the global variable that will be
+ storing this instance. Is needed to be able to set timeouts.
+ resultPath - path to use for external files
+*/
+function SearchBox(name, resultsPath, inFrame, label)
+{
+ if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); }
+
+ // ---------- Instance variables
+ this.name = name;
+ this.resultsPath = resultsPath;
+ this.keyTimeout = 0;
+ this.keyTimeoutLength = 500;
+ this.closeSelectionTimeout = 300;
+ this.lastSearchValue = "";
+ this.lastResultsPage = "";
+ this.hideTimeout = 0;
+ this.searchIndex = 0;
+ this.searchActive = false;
+ this.insideFrame = inFrame;
+ this.searchLabel = label;
+
+ // ----------- DOM Elements
+
+ this.DOMSearchField = function()
+ { return document.getElementById("MSearchField"); }
+
+ this.DOMSearchSelect = function()
+ { return document.getElementById("MSearchSelect"); }
+
+ this.DOMSearchSelectWindow = function()
+ { return document.getElementById("MSearchSelectWindow"); }
+
+ this.DOMPopupSearchResults = function()
+ { return document.getElementById("MSearchResults"); }
+
+ this.DOMPopupSearchResultsWindow = function()
+ { return document.getElementById("MSearchResultsWindow"); }
+
+ this.DOMSearchClose = function()
+ { return document.getElementById("MSearchClose"); }
+
+ this.DOMSearchBox = function()
+ { return document.getElementById("MSearchBox"); }
+
+ // ------------ Event Handlers
+
+ // Called when focus is added or removed from the search field.
+ this.OnSearchFieldFocus = function(isActive)
+ {
+ this.Activate(isActive);
+ }
+
+ this.OnSearchSelectShow = function()
+ {
+ var searchSelectWindow = this.DOMSearchSelectWindow();
+ var searchField = this.DOMSearchSelect();
+
+ if (this.insideFrame)
+ {
+ var left = getXPos(searchField);
+ var top = getYPos(searchField);
+ left += searchField.offsetWidth + 6;
+ top += searchField.offsetHeight;
+
+ // show search selection popup
+ searchSelectWindow.style.display='block';
+ left -= searchSelectWindow.offsetWidth;
+ searchSelectWindow.style.left = left + 'px';
+ searchSelectWindow.style.top = top + 'px';
+ }
+ else
+ {
+ var left = getXPos(searchField);
+ var top = getYPos(searchField);
+ top += searchField.offsetHeight;
+
+ // show search selection popup
+ searchSelectWindow.style.display='block';
+ searchSelectWindow.style.left = left + 'px';
+ searchSelectWindow.style.top = top + 'px';
+ }
+
+ // stop selection hide timer
+ if (this.hideTimeout)
+ {
+ clearTimeout(this.hideTimeout);
+ this.hideTimeout=0;
+ }
+ return false; // to avoid "image drag" default event
+ }
+
+ this.OnSearchSelectHide = function()
+ {
+ this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
+ this.closeSelectionTimeout);
+ }
+
+ // Called when the content of the search field is changed.
+ this.OnSearchFieldChange = function(evt)
+ {
+ if (this.keyTimeout) // kill running timer
+ {
+ clearTimeout(this.keyTimeout);
+ this.keyTimeout = 0;
+ }
+
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==40 || e.keyCode==13)
+ {
+ if (e.shiftKey==1)
+ {
+ this.OnSearchSelectShow();
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ child.focus();
+ return;
+ }
+ }
+ return;
+ }
+ else if (window.frames.MSearchResults.searchResults)
+ {
+ var elem = window.frames.MSearchResults.searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+ }
+ else if (e.keyCode==27) // Escape out of the search field
+ {
+ this.DOMSearchField().blur();
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.lastSearchValue = '';
+ this.Activate(false);
+ return;
+ }
+
+ // strip whitespaces
+ var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+ if (searchValue != this.lastSearchValue) // search value has changed
+ {
+ if (searchValue != "") // non-empty search
+ {
+ // set timer for search update
+ this.keyTimeout = setTimeout(this.name + '.Search()',
+ this.keyTimeoutLength);
+ }
+ else // empty search field
+ {
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.lastSearchValue = '';
+ }
+ }
+ }
+
+ this.SelectItemCount = function(id)
+ {
+ var count=0;
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ count++;
+ }
+ }
+ return count;
+ }
+
+ this.SelectItemSet = function(id)
+ {
+ var i,j=0;
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ var node = child.firstChild;
+ if (j==id)
+ {
+ node.innerHTML='•';
+ }
+ else
+ {
+ node.innerHTML=' ';
+ }
+ j++;
+ }
+ }
+ }
+
+ // Called when an search filter selection is made.
+ // set item with index id as the active item
+ this.OnSelectItem = function(id)
+ {
+ this.searchIndex = id;
+ this.SelectItemSet(id);
+ var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+ if (searchValue!="" && this.searchActive) // something was found -> do a search
+ {
+ this.Search();
+ }
+ }
+
+ this.OnSearchSelectKey = function(evt)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
+ {
+ this.searchIndex++;
+ this.OnSelectItem(this.searchIndex);
+ }
+ else if (e.keyCode==38 && this.searchIndex>0) // Up
+ {
+ this.searchIndex--;
+ this.OnSelectItem(this.searchIndex);
+ }
+ else if (e.keyCode==13 || e.keyCode==27)
+ {
+ this.OnSelectItem(this.searchIndex);
+ this.CloseSelectionWindow();
+ this.DOMSearchField().focus();
+ }
+ return false;
+ }
+
+ // --------- Actions
+
+ // Closes the results window.
+ this.CloseResultsWindow = function()
+ {
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.Activate(false);
+ }
+
+ this.CloseSelectionWindow = function()
+ {
+ this.DOMSearchSelectWindow().style.display = 'none';
+ }
+
+ // Performs a search.
+ this.Search = function()
+ {
+ this.keyTimeout = 0;
+
+ // strip leading whitespace
+ var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+
+ var code = searchValue.toLowerCase().charCodeAt(0);
+ var idxChar = searchValue.substr(0, 1).toLowerCase();
+ if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
+ {
+ idxChar = searchValue.substr(0, 2);
+ }
+
+ var resultsPage;
+ var resultsPageWithSearch;
+ var hasResultsPage;
+
+ var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
+ if (idx!=-1)
+ {
+ var hexCode=idx.toString(16);
+ resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
+ resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+ hasResultsPage = true;
+ }
+ else // nothing available for this search term
+ {
+ resultsPage = this.resultsPath + '/nomatches.html';
+ resultsPageWithSearch = resultsPage;
+ hasResultsPage = false;
+ }
+
+ window.frames.MSearchResults.location = resultsPageWithSearch;
+ var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+ if (domPopupSearchResultsWindow.style.display!='block')
+ {
+ var domSearchBox = this.DOMSearchBox();
+ this.DOMSearchClose().style.display = 'inline';
+ if (this.insideFrame)
+ {
+ var domPopupSearchResults = this.DOMPopupSearchResults();
+ domPopupSearchResultsWindow.style.position = 'relative';
+ domPopupSearchResultsWindow.style.display = 'block';
+ var width = document.body.clientWidth - 8; // the -8 is for IE :-(
+ domPopupSearchResultsWindow.style.width = width + 'px';
+ domPopupSearchResults.style.width = width + 'px';
+ }
+ else
+ {
+ var domPopupSearchResults = this.DOMPopupSearchResults();
+ var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
+ var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1;
+ domPopupSearchResultsWindow.style.display = 'block';
+ left -= domPopupSearchResults.offsetWidth;
+ domPopupSearchResultsWindow.style.top = top + 'px';
+ domPopupSearchResultsWindow.style.left = left + 'px';
+ }
+ }
+
+ this.lastSearchValue = searchValue;
+ this.lastResultsPage = resultsPage;
+ }
+
+ // -------- Activation Functions
+
+ // Activates or deactivates the search panel, resetting things to
+ // their default values if necessary.
+ this.Activate = function(isActive)
+ {
+ if (isActive || // open it
+ this.DOMPopupSearchResultsWindow().style.display == 'block'
+ )
+ {
+ this.DOMSearchBox().className = 'MSearchBoxActive';
+
+ var searchField = this.DOMSearchField();
+
+ if (searchField.value == this.searchLabel) // clear "Search" term upon entry
+ {
+ searchField.value = '';
+ this.searchActive = true;
+ }
+ }
+ else if (!isActive) // directly remove the panel
+ {
+ this.DOMSearchBox().className = 'MSearchBoxInactive';
+ this.DOMSearchField().value = this.searchLabel;
+ this.searchActive = false;
+ this.lastSearchValue = ''
+ this.lastResultsPage = '';
+ }
+ }
+}
+
+// -----------------------------------------------------------------------
+
+// The class that handles everything on the search results page.
+function SearchResults(name)
+{
+ // The number of matches from the last run of <Search()>.
+ this.lastMatchCount = 0;
+ this.lastKey = 0;
+ this.repeatOn = false;
+
+ // Toggles the visibility of the passed element ID.
+ this.FindChildElement = function(id)
+ {
+ var parentElement = document.getElementById(id);
+ var element = parentElement.firstChild;
+
+ while (element && element!=parentElement)
+ {
+ if (element.nodeName == 'DIV' && element.className == 'SRChildren')
+ {
+ return element;
+ }
+
+ if (element.nodeName == 'DIV' && element.hasChildNodes())
+ {
+ element = element.firstChild;
+ }
+ else if (element.nextSibling)
+ {
+ element = element.nextSibling;
+ }
+ else
+ {
+ do
+ {
+ element = element.parentNode;
+ }
+ while (element && element!=parentElement && !element.nextSibling);
+
+ if (element && element!=parentElement)
+ {
+ element = element.nextSibling;
+ }
+ }
+ }
+ }
+
+ this.Toggle = function(id)
+ {
+ var element = this.FindChildElement(id);
+ if (element)
+ {
+ if (element.style.display == 'block')
+ {
+ element.style.display = 'none';
+ }
+ else
+ {
+ element.style.display = 'block';
+ }
+ }
+ }
+
+ // Searches for the passed string. If there is no parameter,
+ // it takes it from the URL query.
+ //
+ // Always returns true, since other documents may try to call it
+ // and that may or may not be possible.
+ this.Search = function(search)
+ {
+ if (!search) // get search word from URL
+ {
+ search = window.location.search;
+ search = search.substring(1); // Remove the leading '?'
+ search = unescape(search);
+ }
+
+ search = search.replace(/^ +/, ""); // strip leading spaces
+ search = search.replace(/ +$/, ""); // strip trailing spaces
+ search = search.toLowerCase();
+ search = convertToId(search);
+
+ var resultRows = document.getElementsByTagName("div");
+ var matches = 0;
+
+ var i = 0;
+ while (i < resultRows.length)
+ {
+ var row = resultRows.item(i);
+ if (row.className == "SRResult")
+ {
+ var rowMatchName = row.id.toLowerCase();
+ rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
+
+ if (search.length<=rowMatchName.length &&
+ rowMatchName.substr(0, search.length)==search)
+ {
+ row.style.display = 'block';
+ matches++;
+ }
+ else
+ {
+ row.style.display = 'none';
+ }
+ }
+ i++;
+ }
+ document.getElementById("Searching").style.display='none';
+ if (matches == 0) // no results
+ {
+ document.getElementById("NoMatches").style.display='block';
+ }
+ else // at least one result
+ {
+ document.getElementById("NoMatches").style.display='none';
+ }
+ this.lastMatchCount = matches;
+ return true;
+ }
+
+ // return the first item with index index or higher that is visible
+ this.NavNext = function(index)
+ {
+ var focusItem;
+ while (1)
+ {
+ var focusName = 'Item'+index;
+ focusItem = document.getElementById(focusName);
+ if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+ {
+ break;
+ }
+ else if (!focusItem) // last element
+ {
+ break;
+ }
+ focusItem=null;
+ index++;
+ }
+ return focusItem;
+ }
+
+ this.NavPrev = function(index)
+ {
+ var focusItem;
+ while (1)
+ {
+ var focusName = 'Item'+index;
+ focusItem = document.getElementById(focusName);
+ if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+ {
+ break;
+ }
+ else if (!focusItem) // last element
+ {
+ break;
+ }
+ focusItem=null;
+ index--;
+ }
+ return focusItem;
+ }
+
+ this.ProcessKeys = function(e)
+ {
+ if (e.type == "keydown")
+ {
+ this.repeatOn = false;
+ this.lastKey = e.keyCode;
+ }
+ else if (e.type == "keypress")
+ {
+ if (!this.repeatOn)
+ {
+ if (this.lastKey) this.repeatOn = true;
+ return false; // ignore first keypress after keydown
+ }
+ }
+ else if (e.type == "keyup")
+ {
+ this.lastKey = 0;
+ this.repeatOn = false;
+ }
+ return this.lastKey!=0;
+ }
+
+ this.Nav = function(evt,itemIndex)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==13) return true;
+ if (!this.ProcessKeys(e)) return false;
+
+ if (this.lastKey==38) // Up
+ {
+ var newIndex = itemIndex-1;
+ var focusItem = this.NavPrev(newIndex);
+ if (focusItem)
+ {
+ var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
+ if (child && child.style.display == 'block') // children visible
+ {
+ var n=0;
+ var tmpElem;
+ while (1) // search for last child
+ {
+ tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
+ if (tmpElem)
+ {
+ focusItem = tmpElem;
+ }
+ else // found it!
+ {
+ break;
+ }
+ n++;
+ }
+ }
+ }
+ if (focusItem)
+ {
+ focusItem.focus();
+ }
+ else // return focus to search field
+ {
+ parent.document.getElementById("MSearchField").focus();
+ }
+ }
+ else if (this.lastKey==40) // Down
+ {
+ var newIndex = itemIndex+1;
+ var focusItem;
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem && elem.style.display == 'block') // children visible
+ {
+ focusItem = document.getElementById('Item'+itemIndex+'_c0');
+ }
+ if (!focusItem) focusItem = this.NavNext(newIndex);
+ if (focusItem) focusItem.focus();
+ }
+ else if (this.lastKey==39) // Right
+ {
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem) elem.style.display = 'block';
+ }
+ else if (this.lastKey==37) // Left
+ {
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem) elem.style.display = 'none';
+ }
+ else if (this.lastKey==27) // Escape
+ {
+ parent.searchBox.CloseResultsWindow();
+ parent.document.getElementById("MSearchField").focus();
+ }
+ else if (this.lastKey==13) // Enter
+ {
+ return true;
+ }
+ return false;
+ }
+
+ this.NavChild = function(evt,itemIndex,childIndex)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==13) return true;
+ if (!this.ProcessKeys(e)) return false;
+
+ if (this.lastKey==38) // Up
+ {
+ if (childIndex>0)
+ {
+ var newIndex = childIndex-1;
+ document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
+ }
+ else // already at first child, jump to parent
+ {
+ document.getElementById('Item'+itemIndex).focus();
+ }
+ }
+ else if (this.lastKey==40) // Down
+ {
+ var newIndex = childIndex+1;
+ var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
+ if (!elem) // last child, jump to parent next parent
+ {
+ elem = this.NavNext(itemIndex+1);
+ }
+ if (elem)
+ {
+ elem.focus();
+ }
+ }
+ else if (this.lastKey==27) // Escape
+ {
+ parent.searchBox.CloseResultsWindow();
+ parent.document.getElementById("MSearchField").focus();
+ }
+ else if (this.lastKey==13) // Enter
+ {
+ return true;
+ }
+ return false;
+ }
+}
+
+function setKeyActions(elem,action)
+{
+ elem.setAttribute('onkeydown',action);
+ elem.setAttribute('onkeypress',action);
+ elem.setAttribute('onkeyup',action);
+}
+
+function setClassAttr(elem,attr)
+{
+ elem.setAttribute('class',attr);
+ elem.setAttribute('className',attr);
+}
+
+function createResults()
+{
+ var results = document.getElementById("SRResults");
+ for (var e=0; e<searchData.length; e++)
+ {
+ var id = searchData[e][0];
+ var srResult = document.createElement('div');
+ srResult.setAttribute('id','SR_'+id);
+ setClassAttr(srResult,'SRResult');
+ var srEntry = document.createElement('div');
+ setClassAttr(srEntry,'SREntry');
+ var srLink = document.createElement('a');
+ srLink.setAttribute('id','Item'+e);
+ setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
+ setClassAttr(srLink,'SRSymbol');
+ srLink.innerHTML = searchData[e][1][0];
+ srEntry.appendChild(srLink);
+ if (searchData[e][1].length==2) // single result
+ {
+ srLink.setAttribute('href',searchData[e][1][1][0]);
+ if (searchData[e][1][1][1])
+ {
+ srLink.setAttribute('target','_parent');
+ }
+ var srScope = document.createElement('span');
+ setClassAttr(srScope,'SRScope');
+ srScope.innerHTML = searchData[e][1][1][2];
+ srEntry.appendChild(srScope);
+ }
+ else // multiple results
+ {
+ srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
+ var srChildren = document.createElement('div');
+ setClassAttr(srChildren,'SRChildren');
+ for (var c=0; c<searchData[e][1].length-1; c++)
+ {
+ var srChild = document.createElement('a');
+ srChild.setAttribute('id','Item'+e+'_c'+c);
+ setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
+ setClassAttr(srChild,'SRScope');
+ srChild.setAttribute('href',searchData[e][1][c+1][0]);
+ if (searchData[e][1][c+1][1])
+ {
+ srChild.setAttribute('target','_parent');
+ }
+ srChild.innerHTML = searchData[e][1][c+1][2];
+ srChildren.appendChild(srChild);
+ }
+ srEntry.appendChild(srChildren);
+ }
+ srResult.appendChild(srEntry);
+ results.appendChild(srResult);
+ }
+}
+
+function init_search()
+{
+ var results = document.getElementById("MSearchSelectWindow");
+ for (var key in indexSectionLabels)
+ {
+ var link = document.createElement('a');
+ link.setAttribute('class','SelectItem');
+ link.setAttribute('onclick','searchBox.OnSelectItem('+key+')');
+ link.href='javascript:void(0)';
+ link.innerHTML='<span class="SelectionMark"> </span>'+indexSectionLabels[key];
+ results.appendChild(link);
+ }
+ searchBox.OnSelectItem(0);
+}
+
Added: incubator/singa/site/trunk/doxygen/html/search/search_l.png
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/search_l.png?rev=1857944&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/singa/site/trunk/doxygen/html/search/search_l.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/singa/site/trunk/doxygen/html/search/search_m.png
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/search_m.png?rev=1857944&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/singa/site/trunk/doxygen/html/search/search_m.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/singa/site/trunk/doxygen/html/search/search_r.png
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/search_r.png?rev=1857944&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/singa/site/trunk/doxygen/html/search/search_r.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/singa/site/trunk/doxygen/html/search/searchdata.js
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/searchdata.js?rev=1857944&view=auto
==============================================================================
--- incubator/singa/site/trunk/doxygen/html/search/searchdata.js (added)
+++ incubator/singa/site/trunk/doxygen/html/search/searchdata.js Mon Apr 22 10:37:18 2019
@@ -0,0 +1,30 @@
+var indexSectionsWithContent =
+{
+ 0: "_abcdefghiklmnoprstuvwx~",
+ 1: "_abcdefgilmnoprstuvwx",
+ 2: "s",
+ 3: "abcdefgilmnoprstuvw~",
+ 4: "bdhkl",
+ 5: "i"
+};
+
+var indexSectionNames =
+{
+ 0: "all",
+ 1: "classes",
+ 2: "namespaces",
+ 3: "functions",
+ 4: "variables",
+ 5: "typedefs"
+};
+
+var indexSectionLabels =
+{
+ 0: "All",
+ 1: "Classes",
+ 2: "Namespaces",
+ 3: "Functions",
+ 4: "Variables",
+ 5: "Typedefs"
+};
+
Added: incubator/singa/site/trunk/doxygen/html/search/typedefs_0.html
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/typedefs_0.html?rev=1857944&view=auto
==============================================================================
--- incubator/singa/site/trunk/doxygen/html/search/typedefs_0.html (added)
+++ incubator/singa/site/trunk/doxygen/html/search/typedefs_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="typedefs_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/typedefs_0.js
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/typedefs_0.js?rev=1857944&view=auto
==============================================================================
--- incubator/singa/site/trunk/doxygen/html/search/typedefs_0.js (added)
+++ incubator/singa/site/trunk/doxygen/html/search/typedefs_0.js Mon Apr 22 10:37:18 2019
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['initializerconf',['InitializerConf',['../namespacesinga.html#ac7e303fc44cfdbf2611a6e69affa42e9',1,'singa']]]
+];
Added: incubator/singa/site/trunk/doxygen/html/search/variables_0.html
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/variables_0.html?rev=1857944&view=auto
==============================================================================
--- incubator/singa/site/trunk/doxygen/html/search/variables_0.html (added)
+++ incubator/singa/site/trunk/doxygen/html/search/variables_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="variables_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/variables_0.js
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/variables_0.js?rev=1857944&view=auto
==============================================================================
--- incubator/singa/site/trunk/doxygen/html/search/variables_0.js (added)
+++ incubator/singa/site/trunk/doxygen/html/search/variables_0.js Mon Apr 22 10:37:18 2019
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['block_5f',['block_',['../classsinga_1_1Tensor.html#a5f7211731ad2f464748fb2f9395d1180',1,'singa::Tensor']]]
+];
Added: incubator/singa/site/trunk/doxygen/html/search/variables_1.html
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/variables_1.html?rev=1857944&view=auto
==============================================================================
--- incubator/singa/site/trunk/doxygen/html/search/variables_1.html (added)
+++ incubator/singa/site/trunk/doxygen/html/search/variables_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="variables_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/variables_1.js
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/variables_1.js?rev=1857944&view=auto
==============================================================================
--- incubator/singa/site/trunk/doxygen/html/search/variables_1.js (added)
+++ incubator/singa/site/trunk/doxygen/html/search/variables_1.js Mon Apr 22 10:37:18 2019
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['defaultdevice',['defaultDevice',['../namespacesinga.html#af5fd1cb4e1a4b5ae9bba1377b034eb8d',1,'singa']]]
+];
Added: incubator/singa/site/trunk/doxygen/html/search/variables_2.html
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/variables_2.html?rev=1857944&view=auto
==============================================================================
--- incubator/singa/site/trunk/doxygen/html/search/variables_2.html (added)
+++ incubator/singa/site/trunk/doxygen/html/search/variables_2.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="variables_2.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/variables_2.js
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/variables_2.js?rev=1857944&view=auto
==============================================================================
--- incubator/singa/site/trunk/doxygen/html/search/variables_2.js (added)
+++ incubator/singa/site/trunk/doxygen/html/search/variables_2.js Mon Apr 22 10:37:18 2019
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['host_5f',['host_',['../classsinga_1_1Device.html#a3d27f7538aabe42e9eea3f10cf702148',1,'singa::Device']]]
+];
Added: incubator/singa/site/trunk/doxygen/html/search/variables_3.html
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/variables_3.html?rev=1857944&view=auto
==============================================================================
--- incubator/singa/site/trunk/doxygen/html/search/variables_3.html (added)
+++ incubator/singa/site/trunk/doxygen/html/search/variables_3.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="variables_3.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/variables_3.js
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/variables_3.js?rev=1857944&view=auto
==============================================================================
--- incubator/singa/site/trunk/doxygen/html/search/variables_3.js (added)
+++ incubator/singa/site/trunk/doxygen/html/search/variables_3.js Mon Apr 22 10:37:18 2019
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['kdatawidth',['kDataWidth',['../namespacesinga.html#ac5251edd2ae9cde0ad5c22ba98756469',1,'singa']]]
+];
Added: incubator/singa/site/trunk/doxygen/html/search/variables_4.html
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/variables_4.html?rev=1857944&view=auto
==============================================================================
--- incubator/singa/site/trunk/doxygen/html/search/variables_4.html (added)
+++ incubator/singa/site/trunk/doxygen/html/search/variables_4.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="variables_4.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/variables_4.js
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/search/variables_4.js?rev=1857944&view=auto
==============================================================================
--- incubator/singa/site/trunk/doxygen/html/search/variables_4.js (added)
+++ incubator/singa/site/trunk/doxygen/html/search/variables_4.js Mon Apr 22 10:37:18 2019
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['lang_5f',['lang_',['../classsinga_1_1Device.html#a6401c02a3f4a96994f37ed3312cacb45',1,'singa::Device']]]
+];
Added: incubator/singa/site/trunk/doxygen/html/singleton_8h_source.html
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/singleton_8h_source.html?rev=1857944&view=auto
==============================================================================
--- incubator/singa/site/trunk/doxygen/html/singleton_8h_source.html (added)
+++ incubator/singa/site/trunk/doxygen/html/singleton_8h_source.html Mon Apr 22 10:37:18 2019
@@ -0,0 +1,79 @@
+<!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/singleton.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">singleton.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_SINGLETON_H_</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#define SINGA_UTILS_SINGLETON_H_</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment">// http://stackoverflow.com/questions/2576022/efficient-thread-safe-singleton-in-c</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">template</span><<span cla
ss="keyword">typename</span> T></div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classSingleton.html"> 28</a></span> <span class="keyword">class </span><a class="code" href="classSingleton.html">Singleton</a> {</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">static</span> T* Instance() {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keyword">static</span> T data_;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keywordflow">return</span> &data_;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  }</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> };</div><div class="line"><a name="l000
35"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">/*</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">template<typename T></span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">class TSingleton {</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment"> public:</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment"> static T* Instance() {</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment"> static thread_local T data_; // thread_local is not available in some</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">
// compilers</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> return &data_;</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"> }</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">};</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">*/</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif // SINGA_UTILS_SINGLETON_H_</span></div><div class="ttc" id="classSingleton_html"><div class="ttname"><a href="classSingleton.html">Singleton</a></div><div class="ttdoc">Thread-safe implementation for C++11 according to. </div><div class="ttdef"><b>Definition:</b> singleton
.h:28</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/snapshot_8h_source.html
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/snapshot_8h_source.html?rev=1857944&view=auto
==============================================================================
--- incubator/singa/site/trunk/doxygen/html/snapshot_8h_source.html (added)
+++ incubator/singa/site/trunk/doxygen/html/snapshot_8h_source.html Mon Apr 22 10:37:18 2019
@@ -0,0 +1,86 @@
+<!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/snapshot.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">snapshot.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_SNAPSHOT_H_</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#define SINGA_UTILS_SNAPSHOT_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 "singa/io/reader.h"</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "singa/io/writer.h"</span></div><div class="li
ne"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "singa/utils/logging.h"</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "singa/proto/core.pb.h"</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "singa/core/tensor.h"</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <unordered_set></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <unordered_map></span></div><div class="
line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <memory></span></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">namespace </span><a class="code" href="namespacesinga.html">singa</a> {</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classsinga_1_1Snapshot.html"> 44</a></span> <span class="keyword">class </span><a class="code" href="classsinga_1_1Snapshot.html">Snapshot</a> {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">enum</span> Mode { kRead, kWrite };</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="cl
asssinga_1_1Snapshot.html#a6c953392f9d314ed0bf644a5d64eac84">Snapshot</a>(<span class="keyword">const</span> std::string& prefix, Mode mode, <span class="keywordtype">int</span> max_param_size = 10);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  ~<a class="code" href="classsinga_1_1Snapshot.html">Snapshot</a>() {}</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  std::vector<std::pair<std::string, Tensor>> <a class="code" href="classsinga_1_1Snapshot.html#a1b5a7c9bd8571523929f973d60911a9c">Read</a>();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  std::vector<std::pair<std::string, Shape>> <a class="code" href="classsinga_1_1Snapshot.html#a25c10f3e39b912fb0a72b4e575c60c0f">ReadShape</a>();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classsinga_1_1Tensor.html">Tensor</a> <a class="cod
e" href="classsinga_1_1Snapshot.html#a1b5a7c9bd8571523929f973d60911a9c">Read</a>(<span class="keyword">const</span> std::string& Key);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  Shape <a class="code" href="classsinga_1_1Snapshot.html#a25c10f3e39b912fb0a72b4e575c60c0f">ReadShape</a>(<span class="keyword">const</span> std::string& key);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordtype">void</span> <a class="code" href="classsinga_1_1Snapshot.html#a3a5ec45388f191e01668ef8486d4b8f7">Write</a>(<span class="keyword">const</span> std::string& key, <span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a>& param);</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classsinga_1_1Snapshot.html#ae311f3448715ebc110c1b238c56dce9b"> 68</a></span>  <span class="keywordtype">int</span> <a class="code"
href="classsinga_1_1Snapshot.html#ae311f3448715ebc110c1b238c56dce9b">version</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">return</span> version_;</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> </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordtype">int</span> version_ = 0;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  std::string prefix_;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  Mode mode_;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  std::unique_ptr<io::
BinFileWriter> bin_writer_ptr_;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  std::unique_ptr<io::Writer> text_writer_ptr_;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  std::unique_ptr<io::BinFileReader> bin_reader_ptr_;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  std::unordered_set<std::string> param_names_;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  std::unordered_map<std::string, Tensor> param_map_;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> };</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> } <span class="comment">// namespace singa</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="p
reprocessor">#endif // SINGA_UTILS_SNAPSHOT_H_</span></div><div class="ttc" id="classsinga_1_1Snapshot_html_a1b5a7c9bd8571523929f973d60911a9c"><div class="ttname"><a href="classsinga_1_1Snapshot.html#a1b5a7c9bd8571523929f973d60911a9c">singa::Snapshot::Read</a></div><div class="ttdeci">std::vector< std::pair< std::string, Tensor > > Read()</div><div class="ttdoc">Read parameters saved as tensors from checkpoint file. </div></div>
+<div class="ttc" id="classsinga_1_1Snapshot_html_a6c953392f9d314ed0bf644a5d64eac84"><div class="ttname"><a href="classsinga_1_1Snapshot.html#a6c953392f9d314ed0bf644a5d64eac84">singa::Snapshot::Snapshot</a></div><div class="ttdeci">Snapshot(const std::string &prefix, Mode mode, int max_param_size=10)</div><div class="ttdoc"><prefix>.model is the binary file for parameter key-value pair. </div></div>
+<div class="ttc" id="classsinga_1_1Snapshot_html_ae311f3448715ebc110c1b238c56dce9b"><div class="ttname"><a href="classsinga_1_1Snapshot.html#ae311f3448715ebc110c1b238c56dce9b">singa::Snapshot::version</a></div><div class="ttdeci">int version() const</div><div class="ttdoc">available for singa > 1.0.1 </div><div class="ttdef"><b>Definition:</b> snapshot.h:68</div></div>
+<div class="ttc" id="classsinga_1_1Tensor_html"><div class="ttname"><a href="classsinga_1_1Tensor.html">singa::Tensor</a></div><div class="ttdoc">A Tensor instance is a multi-dimensional array resident on a Device (default device is the host CPU)...</div><div class="ttdef"><b>Definition:</b> tensor.h:56</div></div>
+<div class="ttc" id="classsinga_1_1Snapshot_html_a25c10f3e39b912fb0a72b4e575c60c0f"><div class="ttname"><a href="classsinga_1_1Snapshot.html#a25c10f3e39b912fb0a72b4e575c60c0f">singa::Snapshot::ReadShape</a></div><div class="ttdeci">std::vector< std::pair< std::string, Shape > > ReadShape()</div><div class="ttdoc">Read parameter shapes from description file. </div></div>
+<div class="ttc" id="classsinga_1_1Snapshot_html_a3a5ec45388f191e01668ef8486d4b8f7"><div class="ttname"><a href="classsinga_1_1Snapshot.html#a3a5ec45388f191e01668ef8486d4b8f7">singa::Snapshot::Write</a></div><div class="ttdeci">void Write(const std::string &key, const Tensor &param)</div><div class="ttdoc">Serialize and dump out parameter. </div></div>
+<div class="ttc" id="classsinga_1_1Snapshot_html"><div class="ttname"><a href="classsinga_1_1Snapshot.html">singa::Snapshot</a></div><div class="ttdoc">The snapshot management. </div><div class="ttdef"><b>Definition:</b> snapshot.h:44</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/splitbar.png
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/splitbar.png?rev=1857944&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/singa/site/trunk/doxygen/html/splitbar.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/singa/site/trunk/doxygen/html/string_8h_source.html
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/doxygen/html/string_8h_source.html?rev=1857944&view=auto
==============================================================================
--- incubator/singa/site/trunk/doxygen/html/string_8h_source.html (added)
+++ incubator/singa/site/trunk/doxygen/html/string_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/utils/string.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">string.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_TOKENIZER_H_</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#define SINGA_UTILS_TOKENIZER_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 <string></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <algorithm></span></div><div class="line"><a name="l00027"></a>
<span class="lineno"> 27</span> <span class="preprocessor">#include "singa/utils/logging.h"</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">namespace </span><a class="code" href="namespacesinga.html">singa</a> {</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> icasecmp(<span class="keyword">const</span> <span class="keywordtype">string</span>& l, <span class="keyword">const</span> <span class="keywordtype">string</span>& r) {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keywordflow">return</span> l.size() == r.size() &&</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  equal(l.cbegin(), l.cend(), r.cbegin(
),</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  [](string::value_type l1, string::value_type r1) {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keywordflow">return</span> toupper(l1) == toupper(r1);</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> }</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">inline</span> <span class="keywordtype">string</span> ToLowerCase(<span class="keyword">const</span> <span class="keywordtype">string</span>& input) {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordtype">string</span> out;</div><div class=
"line"><a name="l00040"></a><span class="lineno"> 40</span>  out.resize(input.size());</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  std::transform(input.begin(), input.end(), out.begin(), ::tolower);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordflow">return</span> out;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> }</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">inline</span> <span class="keywordtype">int</span> ArgPos(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** arglist, <span class="keyword">const</span> <span class="keywordtype">char</span>* arg) {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">for
</span> (<span class="keywordtype">int</span> i = 0; i < argc; i++) {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordflow">if</span> (strcmp(arglist[i], arg) == 0) {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">return</span> i;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">return</span> -1;</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="l00054"></a><span class="lineno"> 54</span> <span class="keyword">template</span><<span class="keyword">typename</span>
T></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">inline</span> std::string VecToStr(<span class="keyword">const</span> std::vector<T> & in) {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  std::string out = <span class="stringliteral">"("</span>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> x : in) {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  out += std::to_string(x) + <span class="stringliteral">", "</span>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  out += <span class="stringliteral">")
"</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">return</span> out;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classsinga_1_1Tokenizer.html"> 77</a></span> <span class="keyword">class </span><a class="code" href="classsinga_1_1Tokenizer.html">Tokenizer</a> {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="classsinga_1_1Tokenizer.html">Tokenizer</a>(<span class="keyword">const</span> std::string& str, <span class="keyword">const</span> std::string& sep): start_(0),</div><div class="line"><a name="l00080"></a
><span class="lineno"> 80</span>  sep_(sep), buf_(str) {}</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <a class="code" href="classsinga_1_1Tokenizer.html">Tokenizer</a> & operator>>(std::string& out) {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  CHECK_LT(start_, buf_.length());</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordtype">int</span> start = start_;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keyword">auto</span> pos = buf_.find_first_of(sep_, start);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">if</span> (pos == std::string::npos)</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  pos = buf_.length();</div><div class="line"><a name="l00087"></a><span cla
ss="lineno"> 87</span>  start_ = (<span class="keywordtype">unsigned</span> int)(pos + 1);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  out = buf_.substr(start, pos);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordtype">bool</span> Valid() { <span class="keywordflow">return</span> start_ < buf_.length(); }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordtype">unsigned<
/span> start_;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  std::string sep_;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keyword">const</span> std::string& buf_;</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> </div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> } <span class="comment">// namespace singa</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor">#endif // SINGA_UTILS_TOKENIZER_H_</span></div><div class="ttc" id="classsinga_1_1Tokenizer_html"><div class="ttname"><a href="classsinga_1_1Tokenizer.html">singa::Tokenizer</a></div><div class="ttdoc">Tokenize a string. </div><div class
="ttdef"><b>Definition:</b> string.h:77</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>