This is an automated email from the ASF dual-hosted git repository.

dockerzhang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/inlong.git


The following commit(s) were added to refs/heads/master by this push:
     new 2bcd55563 [INLONG-5267][SDK] Add config file and demo for DataProxy 
C++ SDK (#5268)
2bcd55563 is described below

commit 2bcd55563e3d38d217c211f1895e70949fb6ea84
Author: xueyingzhang <[email protected]>
AuthorDate: Sat Jul 30 04:49:55 2022 +0800

    [INLONG-5267][SDK] Add config file and demo for DataProxy C++ SDK (#5268)
---
 .../dataproxy-sdk-cpp/release/CMakeLists.txt       |  32 ++++++
 .../release/conf/config_example.json               |  34 ++++++
 .../dataproxy-sdk-cpp/release/demo/CMakeLists.txt  |  21 ++++
 .../dataproxy-sdk-cpp/release/demo/send_demo.cc    | 117 +++++++++++++++++++++
 4 files changed, 204 insertions(+)

diff --git 
a/inlong-sdk/dataproxy-sdk-twins/dataproxy-sdk-cpp/release/CMakeLists.txt 
b/inlong-sdk/dataproxy-sdk-twins/dataproxy-sdk-cpp/release/CMakeLists.txt
new file mode 100644
index 000000000..3e84a532f
--- /dev/null
+++ b/inlong-sdk/dataproxy-sdk-twins/dataproxy-sdk-cpp/release/CMakeLists.txt
@@ -0,0 +1,32 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+cmake_minimum_required(VERSION 3.1)
+
+project(demo)
+
+set(CMAKE_CXX_FLAGS "-std=c++11 -O2 -g -Wall  -Wsign-compare -Wfloat-equal 
-fno-strict-aliasing -fPIC -DASIO_STANDALONE")
+
+set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
+
+include_directories(inc)
+
+link_directories(lib)
+
+add_subdirectory(demo)
\ No newline at end of file
diff --git 
a/inlong-sdk/dataproxy-sdk-twins/dataproxy-sdk-cpp/release/conf/config_example.json
 
b/inlong-sdk/dataproxy-sdk-twins/dataproxy-sdk-cpp/release/conf/config_example.json
new file mode 100644
index 000000000..7ad249ef2
--- /dev/null
+++ 
b/inlong-sdk/dataproxy-sdk-twins/dataproxy-sdk-cpp/release/conf/config_example.json
@@ -0,0 +1,34 @@
+{
+    "init-param": {
+        "thread_num": 5,
+        "inlong_group_ids": "b_inlong_group_test_01, b_inlong_group_test_02",
+        "enable_groupId_isolation": false,
+        "shared_buf_num": 5,
+        "buffer_num_per_groupId": 5,
+        "ser_port": 46801,
+        "enable_pack": true,
+        "pack_size": 4096,
+        "ext_pack_size": 4096,
+        "enable_zip": true,
+        "min_ziplen": 300,
+        "enable_retry": true,
+        "retry_ms": 3000,
+        "retry_num": 3,
+        "max_active_proxy": 4,
+        "max_buf_pool": 548576000,
+        "msg_type": 7,
+        "log_num": 10,
+        "log_size": 10,
+        "log_level": 3,
+        "log_file_type": 2,
+        "log_path": "./",
+        "enable_hb": true,
+        "hb_interval": 60,
+        "proxy_update_interval": 10,
+        "proxy_cfg_preurl": 
"http://127.0.0.1:8099/inlong/manager/openapi/dataproxy/getIpList";,
+        "net_tag": "all",
+        "need_auth": true,
+        "auth_id": "admin",
+        "auth_key": "87haw3VYTPqK5fK0"
+    }
+}
diff --git 
a/inlong-sdk/dataproxy-sdk-twins/dataproxy-sdk-cpp/release/demo/CMakeLists.txt 
b/inlong-sdk/dataproxy-sdk-twins/dataproxy-sdk-cpp/release/demo/CMakeLists.txt
new file mode 100644
index 000000000..9af181054
--- /dev/null
+++ 
b/inlong-sdk/dataproxy-sdk-twins/dataproxy-sdk-cpp/release/demo/CMakeLists.txt
@@ -0,0 +1,21 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+add_executable(send_demo send_demo.cc)
+target_link_libraries(send_demo pthread dataproxy_sdk)
\ No newline at end of file
diff --git 
a/inlong-sdk/dataproxy-sdk-twins/dataproxy-sdk-cpp/release/demo/send_demo.cc 
b/inlong-sdk/dataproxy-sdk-twins/dataproxy-sdk-cpp/release/demo/send_demo.cc
new file mode 100644
index 000000000..95d7ade45
--- /dev/null
+++ b/inlong-sdk/dataproxy-sdk-twins/dataproxy-sdk-cpp/release/demo/send_demo.cc
@@ -0,0 +1,117 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+#include <chrono>
+#include <iostream>
+#include <string>
+#include <tc_api.h>
+
+using namespace std;
+using namespace dataproxy_sdk;
+
+// user set call_back func
+int call_back_func(const char *inlong_group_id, const char *inlong_stream_id, 
const char *msg, int msg_len, long report_time, const char *ip)
+{
+    cout << "******this is call back, print info******" << endl;
+    cout << "inlong_group_id: " << inlong_group_id << ", inlong_stream_id: " 
<< inlong_stream_id << endl;
+    cout << "msg_len: " << msg_len << ", msg content: " << msg << endl;
+    cout << "report_time: " << report_time << ", client ip: " << ip << endl;
+    cout << "******call back end******" << endl;
+
+    return 0;
+}
+
+int main(int argc, char const *argv[])
+{
+    if (2 != argc)
+    {
+        cout << "USAGE: ./send_demo ../config/config_example.json" << endl;
+        return 0;
+    }
+
+    // step1. init
+    if (tc_api_init(argv[1]))
+    {
+        cout << "init error" << endl;
+        return 0;
+    }
+    cout << "---->start sdk successfully" << endl;
+
+    int count = 1000;
+    string inlong_group_id = "test_20220727_86";
+    string inlong_stream_id = "test_20220727_86_str_17";
+    string msg = "this is a test ttttttttttttttt; eiwhgreuhg 
jfdiowaehgorerlea; test end";
+
+    // step2. send
+    cout << "---->start tc_api_send" << endl;
+    for (size_t i = 0; i < count; i++)
+    {
+        if (tc_api_send(inlong_group_id.c_str(), inlong_stream_id.c_str(), 
msg.c_str(), msg.length(), call_back_func))
+        {
+            cout << "tc_api_send error;"
+                 << " ";
+        }
+    }
+
+    string bad_groupid="test_wrong_groupid";
+    int32_t bad_res=tc_api_send(bad_groupid.c_str(), inlong_stream_id.c_str(), 
msg.c_str(), msg.length(), call_back_func);
+    cout << endl << "send bad inlong_group_id res:"<<bad_res;
+
+    cout << endl
+         << "---->start tc_api_send_ext" << endl;
+    for (size_t i = 0; i < count; i++)
+    {
+        auto time_now = chrono::system_clock::now();
+        auto duration_in_ms = 
chrono::duration_cast<chrono::milliseconds>(time_now.time_since_epoch());
+        auto dt = duration_in_ms.count();
+        if (tc_api_send_ext(inlong_group_id.c_str(), inlong_stream_id.c_str(), 
msg.c_str(), msg.length(), dt, call_back_func))
+        {
+            cout << "tc_api_send_ext error;"
+                 << " ";
+        }
+    }
+
+    cout << endl
+         << "---->start tc_api_send_base" << endl;
+    for (size_t i = 0; i < count; i++)
+    {
+        auto time_now = chrono::system_clock::now();
+        auto duration_in_ms = 
chrono::duration_cast<chrono::milliseconds>(time_now.time_since_epoch());
+        auto dt = duration_in_ms.count();
+        if (tc_api_send_base(inlong_group_id.c_str(), 
inlong_stream_id.c_str(), msg.c_str(), msg.length(), dt, "127.0.0.1"))
+        {
+            cout << "tc_api_send_base error;"
+                 << " ";
+        }
+    }
+
+    // std::this_thread::sleep_for(std::chrono::minutes(2));
+
+    // step3. close
+    if (tc_api_close(1000))
+    {
+        cout << "close sdk error" << endl;
+    }
+    else
+    {
+        cout << "---->close sdk successfully" << endl;
+    }
+
+    return 0;
+}

Reply via email to