<!-- HTML header for doxygen 1.8.6-->
<!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"/>
<title>FlatBuffers: com.google.flatbuffers.FlatBufferBuilder.ByteBufferFactory Interface 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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</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" />
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
<link href="style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea" style="height: 110px;">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="commonprojectlogo">
    <img alt="Logo" src="fpl_logo_small.png"/>
  </td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">FlatBuffers
   </div>
   <div style="font-size:12px;">
    An open source project by <a href="https://developers.google.com/games/#Tools">FPL</a>.
   </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>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html','');});
</script>
<div id="doc-content">
<!-- 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 class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">com.google.flatbuffers.FlatBufferBuilder.ByteBufferFactory Interface Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>An interface that provides a user of the FlatBufferBuilder class the ability to specify the method in which the internal buffer gets allocated.  
 <a href="interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for com.google.flatbuffers.FlatBufferBuilder.ByteBufferFactory:</div>
<div class="dyncontent">
 <div class="center">
  <img src="interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.png" usemap="#com.google.flatbuffers.FlatBufferBuilder.ByteBufferFactory_map" alt=""/>
  <map id="com.google.flatbuffers.FlatBufferBuilder.ByteBufferFactory_map" name="com.google.flatbuffers.FlatBufferBuilder.ByteBufferFactory_map">
<area href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_heap_byte_buffer_factory.html" title="An implementation of the ByteBufferFactory interface that is used when one is not provided by the use..." alt="com.google.flatbuffers.FlatBufferBuilder.HeapByteBufferFactory" shape="rect" coords="0,56,376,80"/>
</map>
 </div></div>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>An interface that provides a user of the FlatBufferBuilder class the ability to specify the method in which the internal buffer gets allocated. </p>
<p>This allows for alternatives to the default behavior, which is to allocate memory for a new byte-array backed <code>ByteBuffer</code> array inside the JVM.</p>
<p>The FlatBufferBuilder class contains the HeapByteBufferFactory class to preserve the default behavior in the event that the user does not provide their own implementation of this interface. </p>
</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:a0db9a9033d232d584443a433d7576f4a"><td class="memItemLeft" align="right" valign="top">ByteBuffer&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html#a0db9a9033d232d584443a433d7576f4a">newByteBuffer</a> (int capacity)</td></tr>
<tr class="memdesc:a0db9a9033d232d584443a433d7576f4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <code>ByteBuffer</code> with a given capacity.  <a href="#a0db9a9033d232d584443a433d7576f4a">More...</a><br /></td></tr>
<tr class="separator:a0db9a9033d232d584443a433d7576f4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6cc2f5b5077273da8180b63a5db24b8f"><td class="memItemLeft" align="right" valign="top">default void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html#a6cc2f5b5077273da8180b63a5db24b8f">releaseByteBuffer</a> (ByteBuffer bb)</td></tr>
<tr class="memdesc:a6cc2f5b5077273da8180b63a5db24b8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release a ByteBuffer.  <a href="#a6cc2f5b5077273da8180b63a5db24b8f">More...</a><br /></td></tr>
<tr class="separator:a6cc2f5b5077273da8180b63a5db24b8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a0db9a9033d232d584443a433d7576f4a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0db9a9033d232d584443a433d7576f4a">&#9670;&nbsp;</a></span>newByteBuffer()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ByteBuffer com.google.flatbuffers.FlatBufferBuilder.ByteBufferFactory.newByteBuffer </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>capacity</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a <code>ByteBuffer</code> with a given capacity. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">capacity</td><td>The size of the <code>ByteBuffer</code> to allocate. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns the new <code>ByteBuffer</code> that was allocated. </dd></dl>

<p>Implemented in <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_heap_byte_buffer_factory.html#aac26ff51a8162b37a072792ec9068644">com.google.flatbuffers.FlatBufferBuilder.HeapByteBufferFactory</a>.</p>

</div>
</div>
<a id="a6cc2f5b5077273da8180b63a5db24b8f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6cc2f5b5077273da8180b63a5db24b8f">&#9670;&nbsp;</a></span>releaseByteBuffer()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">default void com.google.flatbuffers.FlatBufferBuilder.ByteBufferFactory.releaseByteBuffer </td>
          <td>(</td>
          <td class="paramtype">ByteBuffer&#160;</td>
          <td class="paramname"><em>bb</em></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">

<p>Release a ByteBuffer. </p>
<p>Current <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a> released any reference to it, so it is safe to dispose the buffer or return it to a pool. It is not guaranteed that the buffer has been created with <a class="el" href="interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html#a0db9a9033d232d584443a433d7576f4a">newByteBuffer(int)</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">bb</td><td>the buffer to release </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this interface was generated from the following file:<ul>
<li><a class="el" href="_flat_buffer_builder_8java.html">FlatBufferBuilder.java</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- Google Analytics -->
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
  ga('create', 'UA-49880327-7', 'auto');
  ga('send', 'pageview');
</script>
</body>
</html>
