From 543e82effca8836d0730ed69fcf46fbc09b6e512 Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期四, 14 一月 2021 15:17:25 +0800
Subject: [PATCH] Merge branch 'dev'

---
 /dev/null                     |    4 -
 src/socket/shm_mod_socket.h   |    2 
 src/bus_config.h.in           |   12 ++++
 src/queue/lock_free_queue.h   |    4 
 src/logger_factory.cpp        |   21 ++++++
 src/CMakeLists.txt            |    5 -
 build.sh                      |   31 ++++++++++
 src/socket/shm_mod_socket.cpp |   22 +------
 src/socket/shm_socket.cpp     |   10 +-
 src/logger_factory.h          |   14 ----
 10 files changed, 77 insertions(+), 48 deletions(-)

diff --git a/build.sh b/build.sh
index c5cec4e..772ddf4 100755
--- a/build.sh
+++ b/build.sh
@@ -1,14 +1,43 @@
 #! /bin/bash
 
+BUILD_TYPE="Debug"
+
+function usage() {
+	echo "build.sh [release | debug]"
+}
+
+case ${1} in
+  "release")
+  BUILD_TYPE="Release"
+  ;;
+  
+  "debug")
+  BUILD_TYPE="Debug"
+  ;;
+
+  "")
+  BUILD_TYPE="Debug"
+  ;;
+  
+  *)
+  echo "Invalid Argument."
+ 	usage
+  ;;
+esac
+
+
 [ -d build ] || mkdir build
 # rm -rf build/*
 cd build
  
+
+
+
 # -DCMAKE_BUILD_TYPE=Debug  | Release
 # -DBUILD_SHARED_LIBS=ON
 # -DCMAKE_INSTALL_PREFIX=$(pwd/../dest)
 # -DQCA_MAN_INSTALL_DIR:PATH=/usr/share/man 
-cmake -DCMAKE_INSTALL_PREFIX="$(pwd)/../dest" -DCMAKE_BUILD_TYPE=Debug -DSUPPORT_RDMA=OFF ..
+cmake -DCMAKE_INSTALL_PREFIX="$(pwd)/../dest" -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DSUPPORT_RDMA=OFF ..
 
 cmake --build .
 
diff --git a/src/BusConfig.h.in b/src/BusConfig.h.in
deleted file mode 100644
index 3227ca3..0000000
--- a/src/BusConfig.h.in
+++ /dev/null
@@ -1,4 +0,0 @@
-// the configured options and settings for Tutorial
-#define B_BUS_VERSION_MAJOR @B_BUS_VERSION_MAJOR@
-#define B_BUS_VERSION_MINOR @B_BUS_VERSION_MINOR@
-#cmakedefine SUPPORT_RDMA
\ No newline at end of file
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 3b38e92..e0913e7 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -5,7 +5,7 @@
 
 # configure a header file to pass some of the CMake settings
 # to the source code
-configure_file(BusConfig.h.in BusConfig.h)
+configure_file(bus_config.h.in bus_config.h)
 
 add_library(shm_queue 
 		logger_factory.cpp
@@ -21,7 +21,6 @@
 		socket/net_mod_socket_io.cpp
 		socket/net_mod_server_socket.cpp
 		bus_error.cpp
-		queue/shm_queue_wrapper.cpp
 		shm/shm_mm_wrapper.cpp
 		shm/mm.cpp
 		shm/hashtable.cpp
@@ -34,7 +33,7 @@
                            )
 
 target_include_directories(shm_queue PUBLIC
-													 ${PROJECT_BINARY_DIR}
+													 ${PROJECT_BINARY_DIR}/src
                            ${CMAKE_CURRENT_SOURCE_DIR}
                            ${CMAKE_CURRENT_SOURCE_DIR}/shm
                            ${CMAKE_CURRENT_SOURCE_DIR}/queue
diff --git a/src/bus_config.h.in b/src/bus_config.h.in
new file mode 100644
index 0000000..b9afb1c
--- /dev/null
+++ b/src/bus_config.h.in
@@ -0,0 +1,12 @@
+// the configured options and settings for Bus
+
+#ifndef __BUS_CONFIG_H__
+#define __BUS_CONFIG_H__
+
+#define B_BUS_VERSION_MAJOR @B_BUS_VERSION_MAJOR@
+#define B_BUS_VERSION_MINOR @B_BUS_VERSION_MINOR@
+#cmakedefine SUPPORT_RDMA
+#define BUILD_@CMAKE_BUILD_TYPE@
+
+
+#endif
\ No newline at end of file
diff --git a/src/logger_factory.cpp b/src/logger_factory.cpp
index c50fb54..9d445fe 100644
--- a/src/logger_factory.cpp
+++ b/src/logger_factory.cpp
@@ -1,3 +1,22 @@
 #include "logger_factory.h"
 
-Logger * LoggerFactory::logger = NULL;
\ No newline at end of file
+Logger * LoggerFactory::logger = NULL;
+
+
+Logger* LoggerFactory::getLogger() {
+//ERROR ALL DEBUG INFO WARN
+	if(logger != NULL)
+		return logger;
+	 
+	LoggerConfig config;
+
+#ifdef BUILD_Debug
+	config.level = Logger::DEBUG;
+#else
+	config.level = Logger::INFO;
+#endif
+	config.logFile =  "bhome_bus.log";
+	config.console = 1;
+	logger = new Logger(config);
+	return logger;
+}
\ No newline at end of file
diff --git a/src/logger_factory.h b/src/logger_factory.h
index 6bbaef0..e736e64 100644
--- a/src/logger_factory.h
+++ b/src/logger_factory.h
@@ -1,6 +1,7 @@
 #ifndef __LOGGER_FACTORY_H__
 #define __LOGGER_FACTORY_H__
 #include "logger.h"
+#include "bus_config.h"
 
 class LoggerFactory {
 private:
@@ -8,18 +9,7 @@
 
 public:
 
-	static Logger* getLogger() {
-//ERROR ALL DEBUG INFO WARN
-		if(logger != NULL)
-			return logger;
-		 
-		LoggerConfig config;
-		config.level = Logger::DEBUG;
-		config.logFile =  "softbus.log";
-		config.console = 1;
-		logger = new Logger(config);
-		return logger;
-	}
+	static Logger* getLogger();
 };
 
 #endif
diff --git a/src/queue/lock_free_queue.h b/src/queue/lock_free_queue.h
index 70b8ef1..4c55f7b 100644
--- a/src/queue/lock_free_queue.h
+++ b/src/queue/lock_free_queue.h
@@ -300,7 +300,7 @@
 int LockFreeQueue<ELEM_T, Allocator, Q_TYPE>::pop(ELEM_T &a_data)
 {
 
-// LoggerFactory::getLogger()->debug("==================LockFreeQueue pop before\n");
+ // LoggerFactory::getLogger()->debug("==================LockFreeQueue pop before\n");
     if (sem_wait(&items) == -1) {
         LoggerFactory::getLogger()->error(errno, "LockFreeQueue pop");
         return errno;
@@ -345,7 +345,7 @@
 {
 // LoggerFactory::getLogger()->debug("=================ts sec = %d, nsec = %ld \n", ts->tv_sec,  ts->tv_nsec );
 
-    // struct timespec timeout_tmp = {1, 0};
+    LoggerFactory::getLogger()->debug("==================LockFreeQueue pop_timeout before\n");   
     struct timespec timeout = PXSemUtil::calc_sem_timeout(ts);
 // LoggerFactory::getLogger()->debug("================== timeout before sec = %d, nsec = %ld \n", timeout.tv_sec,  timeout.tv_nsec );
 
diff --git a/src/socket/shm_mod_socket.cpp b/src/socket/shm_mod_socket.cpp
index 8a9133d..0f55b6b 100644
--- a/src/socket/shm_mod_socket.cpp
+++ b/src/socket/shm_mod_socket.cpp
@@ -9,7 +9,6 @@
 }
 
 ShmModSocket::ShmModSocket() {
-	mod = (socket_mod_t)0;
 	shm_socket = shm_open_socket(SHM_SOCKET_DGRAM);
 	bus_set = new std::set<int>;
 }
@@ -54,20 +53,7 @@
 int ShmModSocket::sendto_nowait( const void *buf, const int size, const int key){
 	return shm_sendto(shm_socket, buf, size, key, NULL, (int)SHM_MSG_NOWAIT);
 }
-
-
-inline int ShmModSocket::_recvfrom_(void **buf, int *size, int *key,  struct timespec *timeout, int flags) {
-
-	if(mod == BUS) {
-		logger->error("Can not use method recvfrom in a Bus");
-		exit(1);
-	}
-// printf("dgram_mod_recvfrom  before\n");
-	int rv = shm_recvfrom(shm_socket, buf, size, key, timeout, flags);
-// printf("dgram_mod_recvfrom  after\n");
-
-	return rv;
-}
+ 
 
 /**
  * 鎺ユ敹淇℃伅
@@ -75,7 +61,7 @@
  * @return 0 鎴愬姛锛� 鍏朵粬鍊� 澶辫触鐨勯敊璇爜
 */
 int ShmModSocket::recvfrom(void **buf, int *size, int *key) {
-	int rv =  _recvfrom_( buf, size, key, NULL, 0);
+	int rv =  shm_recvfrom(shm_socket, buf, size, key, NULL, 0);
 	// logger->error(rv, "ShmModSocket::recvfrom failed!");
   return rv;
 }
@@ -83,12 +69,12 @@
 
 // 鎺ュ彈淇℃伅瓒呮椂杩斿洖銆� @sec 绉� 锛� @nsec 绾崇
 int ShmModSocket::recvfrom_timeout( void **buf, int *size, int *key, struct timespec *timeout) {
-	int rv =  _recvfrom_(buf, size, key, timeout, 0);
+	int rv =  shm_recvfrom(shm_socket, buf, size, key, timeout, 0);
  	return rv;
 }
 
 int ShmModSocket::recvfrom_nowait( void **buf, int *size, int *key){
-	int rv =  _recvfrom_(buf, size, key, NULL, (int)SHM_MSG_NOWAIT);
+	int rv =  shm_recvfrom(shm_socket, buf, size, key, NULL, (int)SHM_MSG_NOWAIT);
 	// logger->error(rv, "ShmModSocket::recvfrom_nowait failed!");
   return rv;
 }
diff --git a/src/socket/shm_mod_socket.h b/src/socket/shm_mod_socket.h
index 4c82497..73c91c3 100644
--- a/src/socket/shm_mod_socket.h
+++ b/src/socket/shm_mod_socket.h
@@ -26,12 +26,10 @@
 friend class BusServerSocket;
 private:
 	shm_socket_t *shm_socket;
-  socket_mod_t mod;
   
 	std::set<int> *bus_set;
 
 private:
-	inline int _recvfrom_(void **buf, int *size, int *key,  struct timespec *timeout, int flags);
 	 
 	int _sub_( char *topic, int size, int key, struct timespec *timeout, int flags);
 	int _pub_( char *topic, int topic_size, void *content, int content_size, int key, struct timespec *timeout, int flags);
diff --git a/src/socket/shm_socket.cpp b/src/socket/shm_socket.cpp
index 9d289cc..672a9a7 100644
--- a/src/socket/shm_socket.cpp
+++ b/src/socket/shm_socket.cpp
@@ -52,7 +52,7 @@
   logger->debug("shm_open_socket\n");
   shm_socket_t *socket = (shm_socket_t *)calloc(1, sizeof(shm_socket_t));
   socket->socket_type = socket_type;
-  socket->key = -1;
+  socket->key = 0;
   socket->force_bind = false;
   socket->dispatch_thread = 0;
   socket->status = SHM_CONN_CLOSED;
@@ -127,7 +127,7 @@
 
   int key;
   hashtable_t *hashtable = mm_get_hashtable();
-  if (socket->key == -1) {
+  if (socket->key == 0) {
     key = hashtable_alloc_key(hashtable);
     socket->key = key;
   } else {
@@ -220,7 +220,7 @@
     return -1;
   }
 
-  if (socket->key == -1) {
+  if (socket->key == 0) {
     socket->key = hashtable_alloc_key(hashtable);
   } else {
     if(!_shm_socket_check_key(socket)) {
@@ -333,7 +333,7 @@
     err_exit(s, "shm_sendto : pthread_mutex_lock");
 
   if (socket->queue == NULL) {
-    if (socket->key == -1) {
+    if (socket->key == 0) {
       socket->key = hashtable_alloc_key(hashtable);
     } else {
 
@@ -415,7 +415,7 @@
     err_exit(s, "shm_recvfrom : pthread_mutex_lock");
  
   if (socket->queue == NULL) {
-    if (socket->key == -1) {
+    if (socket->key == 0) {
       socket->key = hashtable_alloc_key(hashtable);
     } else {
 

--
Gitblit v1.8.0