2011-09-13 17:44:24 +00:00
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!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/html; charset=UTF-8" / >
< title > DbMultipleKeyDataBuilder< / title >
< link rel = "stylesheet" href = "apiReference.css" type = "text/css" / >
< meta name = "generator" content = "DocBook XSL Stylesheets V1.73.2" / >
< link rel = "start" href = "index.html" title = "Berkeley DB C++ API Reference" / >
< link rel = "up" href = "dbt.html" title = "Chapter 4. The Dbt Handle" / >
< link rel = "prev" href = "dbmultipledatabuilder.html" title = "DbMultipleDataBuilder" / >
< link rel = "next" href = "dbmultiplerecnodatabuilder.html" title = "DbMultipleRecnoDataBuilder" / >
< / head >
< body >
< div xmlns = "" class = "navheader" >
< div class = "libver" >
< p > Library Version 11.2.5.2< / p >
< / div >
< table width = "100%" summary = "Navigation header" >
< tr >
< th colspan = "3" align = "center" > DbMultipleKeyDataBuilder< / th >
< / tr >
< tr >
< td width = "20%" align = "left" > < a accesskey = "p" href = "dbmultipledatabuilder.html" > Prev< / a > < / td >
< th width = "60%" align = "center" > Chapter 4.
The Dbt Handle
< / th >
< td width = "20%" align = "right" > < a accesskey = "n" href = "dbmultiplerecnodatabuilder.html" > Next< / a > < / td >
< / tr >
< / table >
< hr / >
< / div >
< div class = "sect1" lang = "en" xml:lang = "en" >
< div class = "titlepage" >
< div >
< div >
< h2 class = "title" style = "clear: both" > < a id = "dbmultiplekeydatabuilder" > < / a > DbMultipleKeyDataBuilder< / h2 >
< / div >
< / div >
< / div >
< pre class = "programlisting" > #include < db_cxx.h>
class DbMultipleKeyDataBuilder
{
public:
DbMultipleKeyDataBuilder(Dbt & dbt);
bool append(void *kbuf, size_t klen, void *dbuf, size_t dlen);
bool reserve(void *& kdest, size_t klen, void *& ddest, size_t dlen);
}; < / pre >
< p >
This class builds a bulk buffer for use when the
< a class = "link" href = "dbput.html#put_DB_MULTIPLE_KEY" > DB_MULTIPLE_KEY< / a >
flag is specified to either the
< a class = "xref" href = "dbput.html" title = "Db::put()" > Db::put()< / a > or
< a class = "xref" href = "dbdel.html" title = "Db::del()" > Db::del()< / a > methods with the btree
or hash access methods. The buffer in the
< a class = "link" href = "dbt.html" title = "Chapter 4. The Dbt Handle" > Dbt< / a > passed to the constructor is
filled by calls to
< a class = "xref" href = "dbmultiplekeydatabuilder.html#dbmultiplekeydatabuilder.append" title = "DbMultipleKeyDataBuilder.append()" > DbMultipleKeyDataBuilder.append()< / a >
or
< a class = "xref" href = "dbmultiplekeydatabuilder.html#dbmultiplekeydatabuilder.reserve" title = "DbMultipleKeyDataBuilder.reserve()" > DbMultipleKeyDataBuilder.reserve()< / a > .
< / p >
< p >
The constructor takes a < a class = "xref" href = "dbt.html" title = "Chapter 4. The Dbt Handle" >
The Dbt Handle
< / a >
that must be configured to contain a buffer managed by the application,
with the < code class = "literal" > ulen< / code > field set to the size of the buffer.
< / p >
< div class = "note" style = "margin-left: 0.5in; margin-right: 0.5in;" >
< h3 class = "title" > Note< / h3 >
< p >
All instances of the bulk retrieval classes may be used only once,
and to build the bulk buffer in the forward direction only.
< / p >
< / div >
< p >
Parameters are:
< / p >
< div class = "itemizedlist" >
< ul type = "disc" >
< li >
< p >
< code class = "literal" > dbt< / code >
< / p >
< p >
The < span class = "bold" > < strong > dbt< / strong > < / span > parameter is a < a class = "xref" href = "dbt.html" title = "Chapter 4. The Dbt Handle" >
The Dbt Handle
< / a > that must already be configured to contain a buffer managed by the application, with the < code class = "literal" > ulen< / code > field set to the size of the buffer, which must be a multiple of 4.
< / p >
< / li >
< / ul >
< / div >
< div class = "sect2" lang = "en" xml:lang = "en" >
< div class = "titlepage" >
< div >
< div >
< h3 class = "title" > < a id = "dbmultiplekeydatabuilder.append" > < / a > DbMultipleKeyDataBuilder.append()< / h3 >
< / div >
< / div >
< / div >
< p >
The < code class = "methodname" > DbMultipleKeyDataBuilder.append()< / code >
method copies a key/data pair to the end of the buffer.
< / p >
< p >
The < code class = "methodname" > DbMultipleKeyDataBuilder.append()< / code >
method returns < code class = "literal" > false< / code > if the key/data
pair does not fit in the buffer and < code class = "literal" > true< / code >
otherwise.
< / p >
< p >
Parameters are:
< / p >
< div class = "itemizedlist" >
< ul type = "disc" >
< li >
< p >
< code class = "literal" > kbuf< / code >
< / p >
< p >
A pointer to the key to be copied into the bulk buffer.
< / p >
< / li >
< li >
< p >
< code class = "literal" > klen< / code >
< / p >
< p >
The number of bytes of the key to be copied.
< / p >
< / li >
< li >
< p >
< code class = "literal" > dbuf< / code >
< / p >
< p >
A pointer to the data item to be copied into the bulk
buffer.
< / p >
< / li >
< li >
< p >
< code class = "literal" > dlen< / code >
< / p >
< p >
The number of bytes of the data item to be copied.
< / p >
< / li >
< / ul >
< / div >
< / div >
< div class = "sect2" lang = "en" xml:lang = "en" >
< div class = "titlepage" >
< div >
< div >
< h3 class = "title" > < a id = "dbmultiplekeydatabuilder.reserve" > < / a > DbMultipleKeyDataBuilder.reserve()< / h3 >
< / div >
< / div >
< / div >
< p >
The < code class = "methodname" > DbMultipleKeyDataBuilder.reserve()< / code >
method reserves space for the next key/data pair in the bulk
buffer. Unlike the < code class = "methodname" > append()< / code > , no data is
actually copied into the bulk buffer by
< code class = "methodname" > reserve()< / code > : copying the data is the
responsibility of the application.
< / p >
< p >
The < code class = "methodname" > DbMultipleKeyDataBuilder.reserve()< / code >
method returns < code class = "literal" > false< / code > if the data does
not fit in the buffer and < code class = "literal" > true< / code > otherwise.
< / p >
< p >
Parameters are:
< / p >
< div class = "itemizedlist" >
< ul type = "disc" >
< li >
< p >
< code class = "literal" > kdest< / code >
< / p >
< p >
Set to a pointer to the position in the bulk buffer reserved for the key, if enough space is available.
< / p >
< / li >
< li >
< p >
< code class = "literal" > klen< / code >
< / p >
< p >
The number of bytes to reserve for the key.
< / p >
< / li >
< li >
< p >
< code class = "literal" > ddest< / code >
< / p >
< p >
Set to a pointer to the position in the bulk buffer reserved for the data item, if enough space is available.
< / p >
< / li >
< li >
< p >
< code class = "literal" > dlen< / code >
< / p >
< p >
The number of bytes to reserve for the data item.
< / p >
< / li >
< / ul >
< / div >
< / div >
< div class = "sect2" lang = "en" xml:lang = "en" >
< div class = "titlepage" >
< div >
< div >
2011-12-20 00:07:10 +00:00
< h3 class = "title" > < a id = "id3591571" > < / a > Class< / h3 >
2011-09-13 17:44:24 +00:00
< / div >
< / div >
< / div >
< p >
< a class = "link" href = "dbmultiplebuilder.html" title = "DbMultipleBuilder" > DbMultipleBuilder< / a >
< / p >
< / div >
< div class = "sect2" lang = "en" xml:lang = "en" >
< div class = "titlepage" >
< div >
< div >
2011-12-20 00:07:10 +00:00
< h3 class = "title" > < a id = "id3591682" > < / a > See Also< / h3 >
2011-09-13 17:44:24 +00:00
< / div >
< / div >
< / div >
< p >
< a class = "xref" href = "dbt.html#dbtlist" title = "DBT and Bulk Operations" > DBT and Bulk Operations< / a >
< / p >
< / div >
< / div >
< div class = "navfooter" >
< hr / >
< table width = "100%" summary = "Navigation footer" >
< tr >
< td width = "40%" align = "left" > < a accesskey = "p" href = "dbmultipledatabuilder.html" > Prev< / a > < / td >
< td width = "20%" align = "center" >
< a accesskey = "u" href = "dbt.html" > Up< / a >
< / td >
< td width = "40%" align = "right" > < a accesskey = "n" href = "dbmultiplerecnodatabuilder.html" > Next< / a > < / td >
< / tr >
< tr >
< td width = "40%" align = "left" valign = "top" > DbMultipleDataBuilder < / td >
< td width = "20%" align = "center" >
< a accesskey = "h" href = "index.html" > Home< / a >
< / td >
< td width = "40%" align = "right" valign = "top" > DbMultipleRecnoDataBuilder< / td >
< / tr >
< / table >
< / div >
< / body >
< / html >