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;
   }