tree: fac3847bf1c8a3cf42544bac5fd192b7e13d42e9 [path history] [tgz]
  1. src/
  2. pom.xml
  3. README.md
client-cpp/README.md

Building C++ Client

To compile cpp client, add “-P compile-cpp” option to maven build command.

The compiling requires the module “compile-tools” to be built first. For more information, please refer to “compile-tools/README.md”.

Compile and Test:

mvn integration-test -P compile-cpp -pl client-cpp,server -am -Diotdb.test.skip=true -Dtsfile.test.skip=true -Djdbc.test.skip=true

To compile on Windows, please install Boost first and add following Maven settings:

-Dboost.include.dir=${your boost header folder} -Dboost.library.dir=${your boost lib (stage) folder}` 

e.g.,

mvn integration-test -P compile-cpp -pl client-cpp,server,example/client-cpp-example -am 
-D"iotdb.test.skip"=true -D"tsfile.test.skip"=true -D"jdbc.test.skip"=true 
-D"boost.include.dir"="D:\boost_1_75_0" -D"boost.library.dir"="D:\boost_1_75_0\stage\lib"

If the compilation finishes successfully, the packaged zip file will be placed under “client-cpp/target/client-cpp-${project.version}-cpp-${os}.zip”.

On Mac machines, the hierarchy of the package should look like this:

.
+-- client
|   +-- include
|       +-- Session.h
|       +-- IClientRPCService.h
|       +-- client_types.h
|       +-- common_types.h
|       +-- thrift
|           +-- thrift_headers...
|   +-- lib
|       +-- libiotdb_session.dylib

Using C++ Client:

1. Put the zip file "client-cpp-${project.version}-cpp-${os}.zip" wherever you want

2. Unzip the archive using the following command, and then you can get the two directories mentioned above, the header file and the dynamic library
    unzip client-cpp-${project.version}-cpp-${os}.zip

3. Write C++ code to call the operation interface of cpp-client to operate IOTDB,
    for detail interface information, please refer to the link: https://iotdb.apache.org/zh/UserGuide/Master/API/Programming-Cpp-Native-API.html

   E.g:
    #include "include/Session.h"
    #include <memory>
    #include <iostream>

    int main() {
        std::cout << "open session" << std::endl;
        std::shared_ptr<Session> session(new Session("127.0.0.1", 6667, "root", "root"));
        session->open(false);

        std::cout << "setStorageGroup: root.test01" << std::endl;
        session->setStorageGroup("root.test01");

        if (!session->checkTimeseriesExists("root.test01.d0.s0")) {
            session->createTimeseries("root.test01.d0.s0", TSDataType::INT64, TSEncoding::RLE, CompressionType::SNAPPY);
            std::cout << "create Timeseries: root.test01.d0.s0" << std::endl;
        }

        std::cout << "session close" << std::endl;
        session->close();
    }

4. Compile and execute
    clang++ -O2 user-cpp-code.cpp -liotdb_session -L/user-unzip-absolute-path/lib -Wl,-rpath /user-unzip-absolute-path/lib -std=c++11
    ./a.out