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