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