blob: 3c40a949730389473653b13351a32d92c12f6d11 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href='images/favicon.ico' rel='shortcut icon' type='image/x-icon'>
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>CarbonData</title>
<style>
</style>
<!-- Bootstrap -->
<link rel="stylesheet" href="css/bootstrap.min.css">
<link href="css/style.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.scom/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script defer src="https://use.fontawesome.com/releases/v5.0.8/js/all.js"></script>
</head>
<body>
<header>
<nav class="navbar navbar-default navbar-custom cd-navbar-wrapper">
<div class="container">
<div class="navbar-header">
<button aria-controls="navbar" aria-expanded="false" data-target="#navbar" data-toggle="collapse"
class="navbar-toggle collapsed" type="button">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="index.html" class="logo">
<img src="images/CarbonDataLogo.png" alt="CarbonData logo" title="CarbocnData logo"/>
</a>
</div>
<div class="navbar-collapse collapse cd_navcontnt" id="navbar">
<ul class="nav navbar-nav navbar-right navlist-custom">
<li><a href="index.html" class="hidden-xs"><i class="fa fa-home" aria-hidden="true"></i> </a>
</li>
<li><a href="index.html" class="hidden-lg hidden-md hidden-sm">Home</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle " data-toggle="dropdown" role="button" aria-haspopup="true"
aria-expanded="false"> Download <span class="caret"></span></a>
<ul class="dropdown-menu">
<li>
<a href="https://dist.apache.org/repos/dist/release/carbondata/2.2.0/"
target="_blank">Apache CarbonData 2.2.0</a></li>
<li>
<a href="https://dist.apache.org/repos/dist/release/carbondata/2.1.1/"
target="_blank">Apache CarbonData 2.1.1</a></li>
<li>
<a href="https://dist.apache.org/repos/dist/release/carbondata/2.1.0/"
target="_blank">Apache CarbonData 2.1.0</a></li>
<li>
<a href="https://dist.apache.org/repos/dist/release/carbondata/2.0.1/"
target="_blank">Apache CarbonData 2.0.1</a></li>
<li>
<a href="https://dist.apache.org/repos/dist/release/carbondata/2.0.0/"
target="_blank">Apache CarbonData 2.0.0</a></li>
<li>
<a href="https://dist.apache.org/repos/dist/release/carbondata/1.6.1/"
target="_blank">Apache CarbonData 1.6.1</a></li>
<li>
<a href="https://dist.apache.org/repos/dist/release/carbondata/1.6.0/"
target="_blank">Apache CarbonData 1.6.0</a></li>
<li>
<a href="https://dist.apache.org/repos/dist/release/carbondata/1.5.4/"
target="_blank">Apache CarbonData 1.5.4</a></li>
<li>
<a href="https://dist.apache.org/repos/dist/release/carbondata/1.5.3/"
target="_blank">Apache CarbonData 1.5.3</a></li>
<li>
<a href="https://dist.apache.org/repos/dist/release/carbondata/1.5.2/"
target="_blank">Apache CarbonData 1.5.2</a></li>
<li>
<a href="https://dist.apache.org/repos/dist/release/carbondata/1.5.1/"
target="_blank">Apache CarbonData 1.5.1</a></li>
<li>
<a href="https://cwiki.apache.org/confluence/display/CARBONDATA/Releases"
target="_blank">Release Archive</a></li>
</ul>
</li>
<li><a href="documentation.html" class="active">Documentation</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
aria-expanded="false">Community <span class="caret"></span></a>
<ul class="dropdown-menu">
<li>
<a href="https://github.com/apache/carbondata/blob/master/docs/how-to-contribute-to-apache-carbondata.md"
target="_blank">Contributing to CarbonData</a></li>
<li>
<a href="https://github.com/apache/carbondata/blob/master/docs/release-guide.md"
target="_blank">Release Guide</a></li>
<li>
<a href="https://cwiki.apache.org/confluence/display/CARBONDATA/PMC+and+Committers+member+list"
target="_blank">Project PMC and Committers</a></li>
<li>
<a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=66850609"
target="_blank">CarbonData Meetups</a></li>
<li><a href="security.html">Apache CarbonData Security</a></li>
<li><a href="https://issues.apache.org/jira/browse/CARBONDATA" target="_blank">Apache
Jira</a></li>
<li><a href="videogallery.html">CarbonData Videos </a></li>
</ul>
</li>
<li class="dropdown">
<a href="http://www.apache.org/" class="apache_link hidden-xs dropdown-toggle"
data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Apache</a>
<ul class="dropdown-menu">
<li><a href="http://www.apache.org/" target="_blank">Apache Homepage</a></li>
<li><a href="http://www.apache.org/licenses/" target="_blank">License</a></li>
<li><a href="http://www.apache.org/foundation/sponsorship.html"
target="_blank">Sponsorship</a></li>
<li><a href="http://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a></li>
</ul>
</li>
<li class="dropdown">
<a href="http://www.apache.org/" class="hidden-lg hidden-md hidden-sm dropdown-toggle"
data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Apache</a>
<ul class="dropdown-menu">
<li><a href="http://www.apache.org/" target="_blank">Apache Homepage</a></li>
<li><a href="http://www.apache.org/licenses/" target="_blank">License</a></li>
<li><a href="http://www.apache.org/foundation/sponsorship.html"
target="_blank">Sponsorship</a></li>
<li><a href="http://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a></li>
</ul>
</li>
<li>
<a href="#" id="search-icon"><i class="fa fa-search" aria-hidden="true"></i></a>
</li>
</ul>
</div><!--/.nav-collapse -->
<div id="search-box">
<form method="get" action="http://www.google.com/search" target="_blank">
<div class="search-block">
<table border="0" cellpadding="0" width="100%">
<tr>
<td style="width:80%">
<input type="text" name="q" size=" 5" maxlength="255" value=""
class="search-input" placeholder="Search...." required/>
</td>
<td style="width:20%">
<input type="submit" value="Search"/></td>
</tr>
<tr>
<td align="left" style="font-size:75%" colspan="2">
<input type="checkbox" name="sitesearch" value="carbondata.apache.org" checked/>
<span style=" position: relative; top: -3px;"> Only search for CarbonData</span>
</td>
</tr>
</table>
</div>
</form>
</div>
</div>
</nav>
</header> <!-- end Header part -->
<div class="fixed-padding"></div> <!-- top padding with fixde header -->
<section><!-- Dashboard nav -->
<div class="container-fluid q">
<div class="col-sm-12 col-md-12 maindashboard">
<div class="verticalnavbar">
<nav class="b-sticky-nav">
<div class="nav-scroller">
<div class="nav__inner">
<a class="b-nav__intro nav__item" href="./introduction.html">introduction</a>
<a class="b-nav__quickstart nav__item" href="./quick-start-guide.html">quick start</a>
<a class="b-nav__uses nav__item" href="./usecases.html">use cases</a>
<div class="nav__item nav__item__with__subs">
<a class="b-nav__docs nav__item nav__sub__anchor" href="./language-manual.html">Language Reference</a>
<a class="nav__item nav__sub__item" href="./ddl-of-carbondata.html">DDL</a>
<a class="nav__item nav__sub__item" href="./dml-of-carbondata.html">DML</a>
<a class="nav__item nav__sub__item" href="./streaming-guide.html">Streaming</a>
<a class="nav__item nav__sub__item" href="./configuration-parameters.html">Configuration</a>
<a class="nav__item nav__sub__item" href="./index-developer-guide.html">Indexes</a>
<a class="nav__item nav__sub__item" href="./supported-data-types-in-carbondata.html">Data Types</a>
</div>
<div class="nav__item nav__item__with__subs">
<a class="b-nav__datamap nav__item nav__sub__anchor" href="./index-management.html">Index Managament</a>
<a class="nav__item nav__sub__item" href="./bloomfilter-index-guide.html">Bloom Filter</a>
<a class="nav__item nav__sub__item" href="./lucene-index-guide.html">Lucene</a>
<a class="nav__item nav__sub__item" href="./secondary-index-guide.html">Secondary Index</a>
<a class="nav__item nav__sub__item" href="../spatial-index-guide.html">Spatial Index</a>
<a class="nav__item nav__sub__item" href="../mv-guide.html">MV</a>
</div>
<div class="nav__item nav__item__with__subs">
<a class="b-nav__api nav__item nav__sub__anchor" href="./sdk-guide.html">API</a>
<a class="nav__item nav__sub__item" href="./sdk-guide.html">Java SDK</a>
<a class="nav__item nav__sub__item" href="./csdk-guide.html">C++ SDK</a>
</div>
<a class="b-nav__perf nav__item" href="./performance-tuning.html">Performance Tuning</a>
<a class="b-nav__s3 nav__item" href="./s3-guide.html">S3 Storage</a>
<a class="b-nav__indexserver nav__item" href="./index-server.html">Index Server</a>
<a class="b-nav__prestodb nav__item" href="./prestodb-guide.html">PrestoDB Integration</a>
<a class="b-nav__prestosql nav__item" href="./prestosql-guide.html">PrestoSQL Integration</a>
<a class="b-nav__flink nav__item" href="./flink-integration-guide.html">Flink Integration</a>
<a class="b-nav__scd nav__item" href="./scd-and-cdc-guide.html">SCD & CDC</a>
<a class="b-nav__faq nav__item" href="./faq.html">FAQ</a>
<a class="b-nav__contri nav__item" href="./how-to-contribute-to-apache-carbondata.html">Contribute</a>
<a class="b-nav__security nav__item" href="./security.html">Security</a>
<a class="b-nav__release nav__item" href="./release-guide.html">Release Guide</a>
</div>
</div>
<div class="navindicator">
<div class="b-nav__intro navindicator__item"></div>
<div class="b-nav__quickstart navindicator__item"></div>
<div class="b-nav__uses navindicator__item"></div>
<div class="b-nav__docs navindicator__item"></div>
<div class="b-nav__datamap navindicator__item"></div>
<div class="b-nav__api navindicator__item"></div>
<div class="b-nav__perf navindicator__item"></div>
<div class="b-nav__s3 navindicator__item"></div>
<div class="b-nav__indexserver navindicator__item"></div>
<div class="b-nav__prestodb navindicator__item"></div>
<div class="b-nav__prestosql navindicator__item"></div>
<div class="b-nav__flink navindicator__item"></div>
<div class="b-nav__scd navindicator__item"></div>
<div class="b-nav__faq navindicator__item"></div>
<div class="b-nav__contri navindicator__item"></div>
<div class="b-nav__security navindicator__item"></div>
</div>
</nav>
</div>
<div class="mdcontent">
<section>
<div style="padding:10px 15px;">
<div id="viewpage" name="viewpage">
<div class="row">
<div class="col-sm-12 col-md-12">
<div>
<h1>
<a id="c-sdk-guide" class="anchor" href="#c-sdk-guide" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>C++ SDK Guide</h1>
<p>CarbonData C++ SDK provides C++ interface to write and read carbon file.
C++ SDK use JNI to invoke java SDK in C++ code.</p>
<h1>
<a id="c-sdk-reader" class="anchor" href="#c-sdk-reader" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>C++ SDK Reader</h1>
<p>This C++ SDK reader reads CarbonData file and carbonindex file at a given path.
External client can make use of this reader to read CarbonData files in C++
code and without CarbonSession.</p>
<p>In the carbon jars package, there exist a carbondata-sdk.jar,
including SDK reader for C++ SDK.</p>
<h2>
<a id="quick-example" class="anchor" href="#quick-example" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Quick example</h2>
<p>Please find example code at <a href="https://github.com/apache/carbondata/blob/master/store/CSDK/test/main.cpp" target=_blank>main.cpp</a> of CSDK module</p>
<p>When users use C++ to read carbon files, users should init JVM first. Then users create
carbon reader and read data.There are some example code of read data from local disk<br>
and read data from S3 at main.cpp of CSDK module. Finally, users need to
release the memory and destroy JVM.</p>
<p>C++ SDK support read batch row. User can set batch by using withBatch(int batch) before build, and read batch by using readNextBatchRow().</p>
<h2>
<a id="api-list" class="anchor" href="#api-list" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>API List</h2>
<h3>
<a id="carbonreader" class="anchor" href="#carbonreader" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>CarbonReader</h3>
<pre><code>/**
* Create a CarbonReaderBuilder object for building carbonReader,
* CarbonReaderBuilder object can configure different parameter
*
* @param env JNIEnv
* @param path data store path
* @param tableName table name
* @return CarbonReaderBuilder object
*/
jobject builder(JNIEnv *env, char *path, char *tableName);
</code></pre>
<pre><code>/**
* Create a CarbonReaderBuilder object for building carbonReader,
* CarbonReaderBuilder object can configure different parameter
*
* @param env JNIEnv
* @param path data store path
*
*/
void builder(JNIEnv *env, char *path);
</code></pre>
<pre><code>/**
* Configure the projection column names of carbon reader
*
* @param argc argument counter
* @param argv argument vector
* @return CarbonReaderBuilder object
*/
jobject projection(int argc, char *argv[]);
</code></pre>
<pre><code>/**
* Build carbon reader with argument vector
* it supports multiple parameters
* like: key=value
* for example: fs.s3a.access.key=XXXX, XXXX is user's access key value
*
* @param argc argument counter
* @param argv argument vector
* @return CarbonReaderBuilder object
*
*/
jobject withHadoopConf(int argc, char *argv[]);
</code></pre>
<pre><code>/**
* Sets the batch size of records to read
*
* @param batch batch size
* @return CarbonReaderBuilder object
*/
void withBatch(int batch);
</code></pre>
<pre><code>/**
* Configure Row Record Reader for reading.
*/
void withRowRecordReader();
</code></pre>
<pre><code>/**
* Build carbonReader object for reading data
* it supports read data from load disk
*
* @return carbonReader object
*/
jobject build();
</code></pre>
<pre><code>/**
* Whether it has next row data
*
* @return boolean value, if it has next row, return true. if it hasn't next row, return false.
*/
jboolean hasNext();
</code></pre>
<pre><code>/**
* Read next carbonRow from data
* @return carbonRow object of one row
*/
jobject readNextRow();
</code></pre>
<pre><code>/**
* Read Next Batch Row
*
* @return rows
*/
jobjectArray readNextBatchRow();
</code></pre>
<pre><code>/**
* Close the carbon reader
*
* @return boolean value
*/
jboolean close();
</code></pre>
<h1>
<a id="c-sdk-writer" class="anchor" href="#c-sdk-writer" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>C++ SDK Writer</h1>
<p>This C++ SDK writer writes CarbonData file and carbonindex file at a given path.
External client can make use of this writer to write CarbonData files in C++
code and without CarbonSession. C++ SDK already supports S3 and local disk.</p>
<p>In the carbon jars package, there exist a carbondata-sdk.jar,
including SDK writer for C++ SDK.</p>
<h2>
<a id="quick-example-1" class="anchor" href="#quick-example-1" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Quick example</h2>
<p>Please find example code at <a href="https://github.com/apache/carbondata/blob/master/store/CSDK/test/main.cpp" target=_blank>main.cpp</a> of CSDK module</p>
<p>When users use C++ to write carbon files, users should init JVM first. Then users create
carbon writer and write data.There are some example code of write data to local disk<br>
and write data to S3 at main.cpp of CSDK module. Finally, users need to
release the memory and destroy JVM.</p>
<h2>
<a id="api-list-1" class="anchor" href="#api-list-1" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>API List</h2>
<h3>
<a id="carbonwriter" class="anchor" href="#carbonwriter" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>CarbonWriter</h3>
<pre><code>/**
* Create a CarbonWriterBuilder object for building carbonWriter,
* CarbonWriterBuilder object can configure different parameter
*
* @param env JNIEnv
* @return CarbonWriterBuilder object
*/
void builder(JNIEnv *env);
</code></pre>
<pre><code>/**
* Sets the output path of the writer builder
*
* @param path is the absolute path where output files are written
* This method must be called when building CarbonWriterBuilder
* @return updated CarbonWriterBuilder
*/
void outputPath(char *path);
</code></pre>
<pre><code>/**
* Sets the list of columns that needs to be in sorted order
*
* @param argc argc argument counter, the number of projection column
* @param argv argv is a string array of columns that needs to be sorted.
* If it is null or empty array, no columns are selected for sorting.
*/
void sortBy(int argc, char *argv[]);
</code></pre>
<pre><code>/**
* Configure the schema with json style schema
*
* @param jsonSchema json style schema
* @return updated CarbonWriterBuilder
*/
void withCsvInput(char *jsonSchema);
</code></pre>
<pre><code>/**
* Updates the hadoop configuration with the given key value
*
* @param key key word
* @param value value
* @return CarbonWriterBuilder object
*/
void withHadoopConf(char *key, char *value);
</code></pre>
<pre><code>/**
* To support the table properties for writer
*
* @param key properties key
* @param value properties value
*/
void withTableProperty(char *key, char *value);
</code></pre>
<pre><code>/**
* To support the load options for C++ sdk writer
*
* @param options key,value pair of load options.
* supported keys values are
* a. bad_records_logger_enable -- true (write into separate logs), false
* b. bad_records_action -- FAIL, FORCE, IGNORE, REDIRECT
* c. bad_record_path -- path
* d. dateformat -- same as JAVA SimpleDateFormat
* e. timestampformat -- same as JAVA SimpleDateFormat
* f. complex_delimiter_level_1 -- value to Split the complexTypeData
* g. complex_delimiter_level_2 -- value to Split the nested complexTypeData
* h. quotechar
* i. escapechar
*
* Default values are as follows.
*
* a. bad_records_logger_enable -- "false"
* b. bad_records_action -- "FAIL"
* c. bad_record_path -- ""
* d. dateformat -- "" , uses from carbon.properties file
* e. timestampformat -- "", uses from carbon.properties file
* f. complex_delimiter_level_1 -- "$"
* g. complex_delimiter_level_2 -- ":"
* h. quotechar -- "\""
* i. escapechar -- "\\"
*
* @return updated CarbonWriterBuilder
*/
void withLoadOption(char *key, char *value);
</code></pre>
<pre><code>/**
* Sets the taskNo for the writer. CSDKs concurrently running
* will set taskNo in order to avoid conflicts in file's name during write.
*
* @param taskNo is the TaskNo user wants to specify.
* by default it is system time in nano seconds.
*/
void taskNo(long taskNo);
</code></pre>
<pre><code>/**
* Set the timestamp in the carbondata and carbonindex index files
*
* @param timestamp is a timestamp to be used in the carbondata and carbonindex index files.
* By default set to zero.
* @return updated CarbonWriterBuilder
*/
void uniqueIdentifier(long timestamp);
</code></pre>
<pre><code>/**
* To make c++ sdk writer thread safe.
*
* @param numOfThreads should number of threads in which writer is called in multi-thread scenario
* default C++ sdk writer is not thread safe.
* can use one writer instance in one thread only.
*/
void withThreadSafe(short numOfThreads) ;
</code></pre>
<pre><code>/**
* To set the carbondata file size in MB between 1MB-2048MB
*
* @param blockSize is size in MB between 1MB to 2048 MB
* default value is 1024 MB
*/
void withBlockSize(int blockSize);
</code></pre>
<pre><code>/**
* To set the blocklet size of CarbonData file
*
* @param blockletSize is blocklet size in MB
* default value is 64 MB
* @return updated CarbonWriterBuilder
*/
void withBlockletSize(int blockletSize);
</code></pre>
<pre><code>/**
* @param localDictionaryThreshold is localDictionaryThreshold, default is 10000
* @return updated CarbonWriterBuilder
*/
void localDictionaryThreshold(int localDictionaryThreshold);
</code></pre>
<pre><code>/**
* @param enableLocalDictionary enable local dictionary, default is false
* @return updated CarbonWriterBuilder
*/
void enableLocalDictionary(bool enableLocalDictionary);
</code></pre>
<pre><code>/**
* @param appName appName which is writing the carbondata files
*/
void writtenBy(char *appName);
</code></pre>
<pre><code>/**
* Build carbonWriter object for writing data
* it support write data from load disk
*
* @return carbonWriter object
*/
void build();
</code></pre>
<pre><code>/**
* Write an object to the file, the format of the object depends on the
* implementation.
* Note: This API is not thread safe
*/
void write(jobject obj);
</code></pre>
<pre><code>/**
* close the carbon Writer
*/
void close();
</code></pre>
<h3>
<a id="carbonschemareader" class="anchor" href="#carbonschemareader" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>CarbonSchemaReader</h3>
<pre><code>/**
* Constructor with jni env
*
* @param env jni env
*/
CarbonSchemaReader(JNIEnv *env);
</code></pre>
<pre><code>/**
* Read schema from path,
* path can be folder path, carbonindex file path, and carbondata file path
* and will not check all files schema
*
* @param path file/folder path
* @return schema
*/
jobject readSchema(char *path);
</code></pre>
<pre><code>/**
* Read schema from path,
* path can be folder path, carbonindex file path, and carbondata file path
* and user can decide whether check all files schema
*
* @param path carbon data path
* @param validateSchema whether check all files schema
* @return schema
*/
jobject readSchema(char *path, bool validateSchema);
</code></pre>
<pre><code>/**
* Read schema from path,
* path can be folder path, carbonindex file path, and carbondata file path
* and will not check all files schema
*
* @param path file/folder path
* @param conf configuration support, can set s3a AK,SK,
* end point and other conf with this
* @return schema
*/
jobject readSchema(char *path, Configuration conf);
</code></pre>
<pre><code>/**
* Read schema from path,
* path can be folder path, carbonindex file path, and carbondata file path
* and user can decide whether check all files schema
*
* @param path carbon data path
* @param validateSchema whether check all files schema
* @param conf configuration support, can set s3a AK,SK,
* end point and other conf with this
* @return schema
*/
jobject readSchema(char *path, bool validateSchema, Configuration conf);
</code></pre>
<h3>
<a id="schema" class="anchor" href="#schema" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Schema</h3>
<pre><code>/**
* Constructor with jni env and carbon schema data
*
* @param env jni env
* @param schema carbon schema data
*/
Schema(JNIEnv *env, jobject schema);
</code></pre>
<pre><code>/**
* Get fields length of schema
*
* @return fields length
*/
int getFieldsLength();
</code></pre>
<pre><code>/**
* Get field name by ordinal
*
* @param ordinal the data index of carbon schema
* @return ordinal field name
*/
char *getFieldName(int ordinal);
</code></pre>
<pre><code>/**
* Get field data type name by ordinal
*
* @param ordinal the data index of carbon schema
* @return ordinal field data type name
*/
char *getFieldDataTypeName(int ordinal);
</code></pre>
<pre><code>/**
* Get array child element data type name by ordinal
*
* @param ordinal the data index of carbon schema
* @return ordinal array child element data type name
*/
char *getArrayElementTypeName(int ordinal);
</code></pre>
<h3>
<a id="carbonproperties" class="anchor" href="#carbonproperties" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>CarbonProperties</h3>
<pre><code>/**
* Constructor of CarbonProperties
*
* @param env JNI env
*/
CarbonProperties(JNIEnv *env);
</code></pre>
<pre><code>/**
* This method will be used to add a new property
*
* @param key property key
* @param value property value
* @return CarbonProperties object
*/
jobject addProperty(char *key, char *value);
</code></pre>
<pre><code>/**
* This method will be used to get the properties value
*
* @param key property key
* @return property value
*/
char *getProperty(char *key);
</code></pre>
<pre><code>/**
* This method will be used to get the properties value
* if property is not present then it will return the default value
*
* @param key property key
* @param defaultValue property default Value
* @return
*/
char *getProperty(char *key, char *defaultValue);
</code></pre>
<script>
$(function() {
// Show selected style on nav item
$('.b-nav__api').addClass('selected');
if (!$('.b-nav__api').parent().hasClass('nav__item__with__subs--expanded')) {
// Display api subnav items
$('.b-nav__api').parent().toggleClass('nav__item__with__subs--expanded');
}
});
</script></div>
</div>
</div>
</div>
<div class="doc-footer">
<a href="#top" class="scroll-top">Top</a>
</div>
</div>
</section>
</div>
</div>
</div>
</section><!-- End systemblock part -->
<script src="js/custom.js"></script>
</body>
</html>