You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tubemq.apache.org by go...@apache.org on 2020/07/06 13:03:40 UTC
[incubator-tubemq] branch tubemq-client-cpp updated: [TUBEMQ-251]
Create C/C++ Codec utils (#191)
This is an automated email from the ASF dual-hosted git repository.
gosonzhang pushed a commit to branch tubemq-client-cpp
in repository https://gitbox.apache.org/repos/asf/incubator-tubemq.git
The following commit(s) were added to refs/heads/tubemq-client-cpp by this push:
new c17c6ab [TUBEMQ-251] Create C/C++ Codec utils (#191)
c17c6ab is described below
commit c17c6abd84a1615f5af29f5433b0cd7111fed6ac
Author: gosonzhang <46...@qq.com>
AuthorDate: Mon Jul 6 13:03:31 2020 +0000
[TUBEMQ-251] Create C/C++ Codec utils (#191)
Co-authored-by: gosonzhang <go...@tencent.com>
---
.../tubemq-client-cpp/inc/const_config.h | 4 --
.../tubemq-client-cpp/inc/const_rpc.h | 83 ++++++++++++++++++++++
.../tubemq-client-cpp/src/client_config.cc | 12 ++--
3 files changed, 90 insertions(+), 9 deletions(-)
diff --git a/tubemq-client-twins/tubemq-client-cpp/inc/const_config.h b/tubemq-client-twins/tubemq-client-cpp/inc/const_config.h
index 80d8b3b..4e04ec0 100644
--- a/tubemq-client-twins/tubemq-client-cpp/inc/const_config.h
+++ b/tubemq-client-twins/tubemq-client-cpp/inc/const_config.h
@@ -29,10 +29,6 @@ using namespace std;
// configuration value setting
namespace config {
-// rpc timeout define
-static const int kRpcTimoutDef = 15;
-static const int kRpcTimoutMax = 300;
-static const int kRpcTimoutMin = 8;
// heartbeat period define
static const int kHeartBeatPeriodDef = 10;
static const int kHeartBeatFailRetryTimesDef = 5;
diff --git a/tubemq-client-twins/tubemq-client-cpp/inc/const_rpc.h b/tubemq-client-twins/tubemq-client-cpp/inc/const_rpc.h
new file mode 100644
index 0000000..cb89eba
--- /dev/null
+++ b/tubemq-client-twins/tubemq-client-cpp/inc/const_rpc.h
@@ -0,0 +1,83 @@
+/**
+ * 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.
+ */
+
+#ifndef _TUBEMQ_CLIENT_CONST_RPC_H_
+#define _TUBEMQ_CLIENT_CONST_RPC_H_
+
+namespace tubemq {
+
+using namespace std;
+
+
+namespace rpc_config {
+
+ // constant define
+ static const int kRpcPrtBeginToken = 0xFF7FF4FE;
+ static const int kRpcMaxBufferSize = 8192;
+ static const int kRpcMaxFrameListCnt = (int) ((1024 * 1024 * 8) / kRpcMaxBufferSize);
+ // rpc protocol version
+ static const int kRpcProtocolVersion = 2;
+ // msg type flag
+ static const int kRpcFlagMsgRequest = 0x0;
+ static const int kRpcFlagMsgResponse = 0x1;
+ // service type
+ static const int kMasterService = 1;
+ static const int kBrokerReadService = 2;
+ static const int kBrokerWriteService = 3;
+ static const int kBrokerAdminService = 4;
+ static const int kMasterAdminService = 5;
+ // request method
+ // master rpc method
+ static const int kMasterMethoddProducerRegister = 1;
+ static const int kMasterMethoddProducerHeatbeat = 2;
+ static const int kMasterMethoddProducerClose = 3;
+ static const int kMasterMethoddConsumerRegister = 4;
+ static const int kMasterMethoddConsumerHeatbeat = 5;
+ static const int kMasterMethoddConsumerClose = 6;
+ // broker rpc method
+ static const int kBrokerMethoddProducerRegister = 11;
+ static const int kBrokerMethoddProducerHeatbeat = 12;
+ static const int kBrokerMethoddProducerSendMsg = 13;
+ static const int kBrokerMethoddProducerClose = 14;
+ static const int kBrokerMethoddConsumerRegister = 15;
+ static const int kBrokerMethoddConsumerHeatbeat = 16;
+ static const int kBrokerMethoddConsumerGetMsg = 17;
+ static const int kBrokerMethoddConsumerCommit = 18;
+ static const int kBrokerMethoddConsumerClose = 19;
+
+ // register operate type
+ static const int kRegOpTypeRegister = 31;
+ static const int kRegOpTypeUnReg = 32;
+
+ // rpc connect node timeout
+ static const int kRpcConnectTimeoutMs = 3000;
+
+ // rpc timeout define
+ static const int kRpcTimoutDefSec = 15;
+ static const int kRpcTimoutMaxSec = 300;
+ static const int kRpcTimoutMinSec = 8;
+
+
+}
+
+
+}
+
+#endif
+
diff --git a/tubemq-client-twins/tubemq-client-cpp/src/client_config.cc b/tubemq-client-twins/tubemq-client-cpp/src/client_config.cc
index e668f81..d3a03ba 100644
--- a/tubemq-client-twins/tubemq-client-cpp/src/client_config.cc
+++ b/tubemq-client-twins/tubemq-client-cpp/src/client_config.cc
@@ -21,6 +21,8 @@
#include <vector>
#include "client_config.h"
#include "const_config.h"
+#include "const_rpc.h"
+
#include "utils.h"
@@ -35,7 +37,7 @@ BaseConfig::BaseConfig() {
this->tls_enabled_ = false;
this->tls_trust_store_path_ = "";
this->tls_trust_store_password_ = "";
- this->rpc_read_timeout_sec_ = config::kRpcTimoutDef;
+ this->rpc_read_timeout_sec_ = rpc_config::kRpcTimoutDefSec;
this->heartbeat_period_sec_ = config::kHeartBeatPeriodDef;
this->max_heartbeat_retry_times_ = config::kHeartBeatFailRetryTimesDef;
this->heartbeat_period_afterfail_sec_ = config::kHeartBeatSleepPeriodDef;
@@ -168,10 +170,10 @@ const string& BaseConfig::GetUsrPassWord() const {
}
void BaseConfig::SetRpcReadTimeoutSec(int rpc_read_timeout_sec) {
- if (rpc_read_timeout_sec >= config::kRpcTimoutMax) {
- this->rpc_read_timeout_sec_ = config::kRpcTimoutMax;
- } else if (rpc_read_timeout_sec <= config::kRpcTimoutMin) {
- this->rpc_read_timeout_sec_ = config::kRpcTimoutMin;
+ if (rpc_read_timeout_sec >= rpc_config::kRpcTimoutMaxSec) {
+ this->rpc_read_timeout_sec_ = rpc_config::kRpcTimoutMaxSec;
+ } else if (rpc_read_timeout_sec <= rpc_config::kRpcTimoutMinSec) {
+ this->rpc_read_timeout_sec_ = rpc_config::kRpcTimoutMinSec;
} else {
this->rpc_read_timeout_sec_ = rpc_read_timeout_sec;
}