* Replaced cpputils with cppcore and cpplogging librarymaster
| @@ -1,3 +1,6 @@ | |||
| [submodule "cmake/modules"] | |||
| path = cmake/modules | |||
| url = b3rgmann@git.bergmann89.de:cpp/CmakeModules.git | |||
| [submodule "/home/bergmann/projects/TotoStarOnline/projects/worker/cppamqp/cmake/modules"] | |||
| path = /home/bergmann/projects/TotoStarOnline/projects/worker/cppamqp/cmake/modules | |||
| url = b3rgmann@git.bergmann89.de:cpp/CmakeModules.git | |||
| @@ -1,15 +1,56 @@ | |||
| # Initialize CMake ################################################################################ | |||
| CMake_Minimum_Required ( VERSION 3.5.1 FATAL_ERROR ) | |||
| Include ( CTest ) | |||
| If ( NOT CMAKE_BUILD_TYPE ) | |||
| Set ( CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build!" FORCE ) | |||
| EndIf ( NOT CMAKE_BUILD_TYPE ) | |||
| Set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} | |||
| "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" | |||
| "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/" ) | |||
| # Projects ######################################################################################## | |||
| Add_SubDirectory ( ${CMAKE_CURRENT_SOURCE_DIR}/src ) | |||
| Add_SubDirectory ( ${CMAKE_CURRENT_SOURCE_DIR}/test ) | |||
| CMake_Minimum_Required ( VERSION 3.12.0 FATAL_ERROR ) | |||
| # Set CMAKE_BUILD_TYPE | |||
| If ( NOT CMAKE_BUILD_TYPE ) | |||
| Set ( CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build!" FORCE ) | |||
| EndIf ( NOT CMAKE_BUILD_TYPE ) | |||
| Set_Property ( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS Debug Release RelWithDebInfo MinSizeRel ) | |||
| # Set CMAKE_MODULE_PATH | |||
| If ( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" ) | |||
| Set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} | |||
| "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" ) | |||
| EndIf ( ) | |||
| If ( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" ) | |||
| Set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} | |||
| "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" ) | |||
| EndIf ( ) | |||
| # Project ######################################################################################### | |||
| Include ( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cppamqp-var.cmake" ) | |||
| Project ( cppamqp | |||
| DESCRIPTION "A simple library" | |||
| VERSION "${CPPAMQP_VERSION}" ) | |||
| Include ( CTest ) | |||
| Include ( GNUInstallDirs ) | |||
| # Subdirectories | |||
| Add_SubDirectory ( ${CMAKE_CURRENT_SOURCE_DIR}/src ) | |||
| Add_SubDirectory ( ${CMAKE_CURRENT_SOURCE_DIR}/test ) | |||
| # Install | |||
| Include ( CMakePackageConfigHelpers ) | |||
| Write_Basic_Package_Version_File ( "${CMAKE_CURRENT_BINARY_DIR}/cmake/cppamqp-config-version.cmake" | |||
| VERSION ${CPPAMQP_VERSION} | |||
| COMPATIBILITY AnyNewerVersion ) | |||
| Configure_File ( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cppamqp-config.cmake" | |||
| "${CMAKE_CURRENT_BINARY_DIR}/cmake/cppamqp-config.cmake" | |||
| @ONLY ) | |||
| Set ( ConfigPackageLocation "${CPPAMQP_INSTALL_DIR_SHARE}/cmake" ) | |||
| Install ( EXPORT | |||
| cppamqp | |||
| NAMESPACE | |||
| cppamqp:: | |||
| DESTINATION | |||
| ${ConfigPackageLocation} ) | |||
| Install ( FILES | |||
| "${CMAKE_CURRENT_BINARY_DIR}/cmake/cppamqp-config.cmake" | |||
| "${CMAKE_CURRENT_BINARY_DIR}/cmake/cppamqp-config-version.cmake" | |||
| DESTINATION | |||
| ${ConfigPackageLocation} | |||
| COMPONENT | |||
| Devel ) | |||
| @@ -1,46 +0,0 @@ | |||
| Include ( ExternalProject ) | |||
| Include ( FindPackageHandleStandardArgs ) | |||
| Set ( CPPUTILS_PATH ${CMAKE_BINARY_DIR}/extern/cpputils ) | |||
| If ( NOT TARGET cpputils_extern ) | |||
| ExternalProject_Add ( cpputils_extern | |||
| PREFIX ${CPPUTILS_PATH} | |||
| TMP_DIR ${CPPUTILS_PATH}/tmp | |||
| STAMP_DIR ${CPPUTILS_PATH}/stamp | |||
| SOURCE_DIR ${CPPUTILS_PATH}/src | |||
| BINARY_DIR ${CPPUTILS_PATH}/build | |||
| INSTALL_DIR ${CPPUTILS_PATH}/install | |||
| GIT_REPOSITORY "https://git.bergmann89.de/cpp/cpputils.git" | |||
| GIT_TAG "master" | |||
| TEST_COMMAND make test | |||
| CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> | |||
| -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} | |||
| -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} | |||
| -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} | |||
| -DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH}) | |||
| EndIf ( ) | |||
| Set ( CPPUTILS_LIBRARY ${CPPUTILS_PATH}/install/lib/libcpputils.so ) | |||
| Set ( CPPUTILS_INCLUDE_DIR ${CPPUTILS_PATH}/install/include ) | |||
| Set ( CPPUTILS_LIBRARIES ${CPPUTILS_LIBRARY} ) | |||
| Set ( CPPUTILS_INCLUDE_DIRS ${CPPUTILS_INCLUDE_DIR} ) | |||
| File ( MAKE_DIRECTORY ${CPPUTILS_INCLUDE_DIR} ) | |||
| Find_Package_Handle_Standard_Args ( cpputils DEFAULT_MSG | |||
| CPPUTILS_LIBRARY | |||
| CPPUTILS_INCLUDE_DIR ) | |||
| If ( NOT TARGET cpputils ) | |||
| Add_Library ( cpputils SHARED IMPORTED ) | |||
| Add_Dependencies ( cpputils cpputils_extern ) | |||
| Set_Property ( TARGET cpputils | |||
| PROPERTY IMPORTED_LOCATION ${CPPUTILS_LIBRARY} ) | |||
| Set_Property ( TARGET cpputils | |||
| PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${CPPUTILS_INCLUDE_DIRS} ) | |||
| Install ( FILES ${CPPUTILS_LIBRARY} DESTINATION lib ) | |||
| If ( CPPHIBERNATE_INSTALL_DEV_FILES ) | |||
| Install ( DIRECTORY ${CPPUTILS_INCLUDE_DIR}/ DESTINATION include ) | |||
| EndIf ( ) | |||
| EndIf ( ) | |||
| @@ -1,33 +0,0 @@ | |||
| Find_Library ( RABBITMQ_LIBRARY | |||
| NAMES rabbitmq | |||
| PATH_SUFFIXES rabbitmq ) | |||
| Find_File ( RABBITMQ_INCLUDE_DIR | |||
| NAMES amqp.h ) | |||
| Get_Filename_Component ( RABBITMQ_INCLUDE_DIR | |||
| ${RABBITMQ_INCLUDE_DIR} | |||
| DIRECTORY ) | |||
| Include ( FindPackageHandleStandardArgs ) | |||
| Find_Package_Handle_Standard_Args ( rabbitmq DEFAULT_MSG | |||
| RABBITMQ_LIBRARY | |||
| RABBITMQ_INCLUDE_DIR ) | |||
| Mark_As_Advanced ( RABBITMQ_LIBRARY | |||
| RABBITMQ_LIBRARIES ) | |||
| If ( RABBITMQ_FOUND ) | |||
| Set ( RABBITMQ_LIBRARIES ${RABBITMQ_LIBRARY} ) | |||
| Set ( RABBITMQ_INCLUDE_DIRS ${RABBITMQ_INCLUDE_DIR} ) | |||
| If ( NOT TARGET rabbitmq ) | |||
| Add_Library ( rabbitmq UNKNOWN IMPORTED ) | |||
| Set_Property ( TARGET rabbitmq | |||
| PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${RABBITMQ_INCLUDE_DIRS}" ) | |||
| Set_Property ( TARGET rabbitmq | |||
| APPEND | |||
| PROPERTY IMPORTED_LOCATION "${RABBITMQ_LIBRARY}") | |||
| EndIf ( ) | |||
| EndIf ( ) | |||
| @@ -0,0 +1,16 @@ | |||
| #pragma once | |||
| #include <amqp.h> | |||
| #include <amqp_tcp_socket.h> | |||
| #cmakedefine CPPAMQP_HAS_CPPLOGGING | |||
| #ifdef CPPAMQP_HAS_CPPLOGGING | |||
| #include <cpplogging/interface.h> | |||
| #define cppamqp_log(p_level) \ | |||
| cpplogging_global_log(p_level) | |||
| #else | |||
| #include <iostream> | |||
| #define cppamqp_log(p_level) \ | |||
| ::std::cout << #p_level << ' ' << __FILE__ << ':' << __LINE__ << " - " | |||
| #endif | |||
| @@ -0,0 +1,10 @@ | |||
| # cppamqp-config.cmake - package configuration file | |||
| Message ( WARNING "Please configure the dependencies of this package!" ) | |||
| # Include ( CMakeFindDependencyMacro ) | |||
| # Find_Dependency ( <dependency> ) | |||
| Include ( FindPackageHandleStandardArgs ) | |||
| Set ( ${CMAKE_FIND_PACKAGE_NAME}_CONFIG ${CMAKE_CURRENT_LIST_FILE} ) | |||
| Find_Package_Handle_Standard_Args ( cppamqp CONFIG_MODE ) | |||
| Include ( "${CMAKE_CURRENT_LIST_DIR}/cppamqp.cmake") | |||
| @@ -0,0 +1,31 @@ | |||
| # Version | |||
| Set ( CPPAMQP_VERSION_MAJOR 1 ) | |||
| Set ( CPPAMQP_VERSION_MINOR 0 ) | |||
| Set ( CPPAMQP_VERSION_PATCH 0 ) | |||
| Set ( CPPAMQP_VERSION_BUILD 0 ) | |||
| Set ( CPPAMQP_VERSION_SHORT "${CPPAMQP_VERSION_MAJOR}.${CPPAMQP_VERSION_MINOR}" ) | |||
| Set ( CPPAMQP_VERSION "${CPPAMQP_VERSION_SHORT}.${CPPAMQP_VERSION_PATCH}.${CPPAMQP_VERSION_BUILD}" ) | |||
| Set ( CPPAMQP_NAME "cppamqp-${CPPAMQP_VERSION_SHORT}" ) | |||
| Set ( CPPAMQP_OUTPUTNAME "cppamqp" ) | |||
| # Install directories | |||
| Set ( CPPAMQP_INSTALL_DIR_INCLUDE "include/${CPPAMQP_NAME}" ) | |||
| Set ( CPPAMQP_INSTALL_DIR_LIB "lib" ) | |||
| Set ( CPPAMQP_INSTALL_DIR_SHARE "share/${CPPAMQP_NAME}" ) | |||
| # C Standard | |||
| Set ( CMAKE_C_STANDARD 11 ) | |||
| Set ( CMAKE_CXX_STANDARD 17 ) | |||
| Set ( CMAKE_C_STANDARD_REQUIRED ON ) | |||
| Set ( CMAKE_CXX_STANDARD_REQUIRED ON ) | |||
| # Git Version | |||
| Include ( git_helper OPTIONAL RESULT_VARIABLE HAS_GIT_HELPER ) | |||
| If ( HAS_GIT_HELPER ) | |||
| GitGetVersion ( ${CMAKE_CURRENT_LIST_DIR}/.. | |||
| CPPAMQP_VERSION_MAJOR | |||
| CPPAMQP_VERSION_MINOR | |||
| CPPAMQP_VERSION_PATCH | |||
| CPPAMQP_VERSION_BUILD | |||
| CPPAMQP_VERSION_HASH ) | |||
| EndIf ( ) | |||
| @@ -1 +1 @@ | |||
| Subproject commit b125a1a176ae0aada1cd2ec90919061d202dcea9 | |||
| Subproject commit 1a32531aef2deeebd5637b1873bc4e976628801c | |||
| @@ -1,6 +0,0 @@ | |||
| Option ( CPPAMQP_BUILD_SHARED | |||
| "Build cppamqp shared library" | |||
| ON ) | |||
| Option ( CPPAMQP_INSTALL_DEV_FILES | |||
| "Install development files of cppamqp" | |||
| ON ) | |||
| @@ -1,4 +0,0 @@ | |||
| #pragma once | |||
| #include <amqp.h> | |||
| #include <amqp_tcp_socket.h> | |||
| @@ -1,7 +1,7 @@ | |||
| #pragma once | |||
| #include <cppamqp/config.h> | |||
| #include <cpputils/misc/flags.h> | |||
| #include <cppcore/misc/flags.h> | |||
| namespace cppamqp | |||
| { | |||
| @@ -28,14 +28,14 @@ namespace cppamqp | |||
| exclusive, | |||
| auto_delete, | |||
| }; | |||
| using queue_flags = utl::shifted_flags<queue_flag>; | |||
| using queue_flags = ::cppcore::shifted_flags<queue_flag>; | |||
| enum class publish_flag | |||
| { | |||
| mandatory, | |||
| immediate, | |||
| }; | |||
| using publish_flags = utl::shifted_flags<publish_flag>; | |||
| using publish_flags = ::cppcore::shifted_flags<publish_flag>; | |||
| enum class consume_flag | |||
| { | |||
| @@ -43,6 +43,6 @@ namespace cppamqp | |||
| no_ack, | |||
| exclusive, | |||
| }; | |||
| using consume_flags = utl::shifted_flags<consume_flag>; | |||
| using consume_flags = ::cppcore::shifted_flags<consume_flag>; | |||
| } | |||
| } | |||
| @@ -3,13 +3,13 @@ | |||
| #include <string> | |||
| #include <cppamqp/enums.h> | |||
| #include <cppamqp/config.h> | |||
| #include <cpputils/misc/exception.h> | |||
| #include <cppcore/misc/exception.h> | |||
| namespace cppamqp | |||
| { | |||
| struct exception | |||
| : public utl::exception | |||
| : public ::cppcore::exception | |||
| { | |||
| amqp_status_enum status { AMQP_STATUS_OK }; | |||
| @@ -18,4 +18,4 @@ namespace cppamqp | |||
| inline exception(const std::string& p_message, amqp_status_enum p_status); | |||
| }; | |||
| } | |||
| } | |||
| @@ -6,18 +6,18 @@ namespace cppamqp | |||
| { | |||
| exception::exception(const std::string& p_message) : | |||
| utl::exception (p_message) | |||
| ::cppcore::exception (p_message) | |||
| { } | |||
| exception::exception(amqp_status_enum p_status) : | |||
| utl::exception (amqp_error_string2(p_status)), | |||
| ::cppcore::exception (amqp_error_string2(p_status)), | |||
| status (p_status) | |||
| { } | |||
| exception::exception(const std::string& p_message, amqp_status_enum p_status) : | |||
| utl::exception (p_message + " - " + amqp_error_string2(p_status) + | |||
| ::cppcore::exception (p_message + " - " + amqp_error_string2(p_status) + | |||
| "(" + std::to_string(static_cast<int>(p_status)) + ")"), | |||
| status (p_status) | |||
| { } | |||
| } | |||
| } | |||
| @@ -2,7 +2,7 @@ | |||
| #include <cppamqp/enums.h> | |||
| #include <cppamqp/config.h> | |||
| #include <cpputils/container/nullable.h> | |||
| #include <cppcore/misc/nullable.h> | |||
| namespace cppamqp | |||
| { | |||
| @@ -15,19 +15,19 @@ namespace cppamqp | |||
| mutable amqp_basic_properties_t _properties; | |||
| public: | |||
| utl::nullable<std::string> content_type; | |||
| utl::nullable<std::string> content_encoding; | |||
| utl::nullable<delivery_mode_t> delivery_mode; | |||
| utl::nullable<uint8_t> priority; | |||
| utl::nullable<std::string> correlation_id; | |||
| utl::nullable<std::string> reply_to; | |||
| utl::nullable<std::string> expiration; | |||
| utl::nullable<std::string> message_id; | |||
| utl::nullable<uint64_t> timestamp; | |||
| utl::nullable<std::string> type; | |||
| utl::nullable<std::string> user_id; | |||
| utl::nullable<std::string> app_id; | |||
| utl::nullable<std::string> cluster_id; | |||
| ::cppcore::nullable<std::string> content_type; | |||
| ::cppcore::nullable<std::string> content_encoding; | |||
| ::cppcore::nullable<delivery_mode_t> delivery_mode; | |||
| ::cppcore::nullable<uint8_t> priority; | |||
| ::cppcore::nullable<std::string> correlation_id; | |||
| ::cppcore::nullable<std::string> reply_to; | |||
| ::cppcore::nullable<std::string> expiration; | |||
| ::cppcore::nullable<std::string> message_id; | |||
| ::cppcore::nullable<uint64_t> timestamp; | |||
| ::cppcore::nullable<std::string> type; | |||
| ::cppcore::nullable<std::string> user_id; | |||
| ::cppcore::nullable<std::string> app_id; | |||
| ::cppcore::nullable<std::string> cluster_id; | |||
| inline publish_options(); | |||
| inline publish_options(const amqp_basic_properties_t& prop); | |||
| @@ -38,4 +38,4 @@ namespace cppamqp | |||
| void reset (); | |||
| }; | |||
| } | |||
| } | |||
| @@ -1,48 +1,147 @@ | |||
| # Initialize ###################################################################################### | |||
| Include ( cotire OPTIONAL ) | |||
| Include ( pedantic OPTIONAL ) | |||
| Include ( strip_symbols OPTIONAL ) | |||
| Include ( cotire OPTIONAL RESULT_VARIABLE HAS_COTIRE ) | |||
| Include ( pedantic OPTIONAL RESULT_VARIABLE HAS_PEDANTIC ) | |||
| Include ( strip_symbols OPTIONAL RESULT_VARIABLE HAS_STRIP_SYMBOLS ) | |||
| Include ( ${CMAKE_CURRENT_SOURCE_DIR}/../cmake/options.cmake ) | |||
| Option ( CPPAMQP_INSTALL_HEADER | |||
| "Install headers of cppamqp." | |||
| ON ) | |||
| Option ( CPPAMQP_INSTALL_STATIC | |||
| "Install static library of cppamqp." | |||
| ON ) | |||
| Option ( CPPAMQP_INSTALL_SHARED | |||
| "Install shared library of cppamqp." | |||
| ON ) | |||
| Option ( CPPAMQP_INSTALL_DEBUG | |||
| "Install the stripped debug informations of cppamqp." | |||
| OFF ) | |||
| Option ( CPPAMQP_NO_STRIP | |||
| "Do not strip debug symbols from binary." | |||
| OFF ) | |||
| Set ( BUILD_SHARED_LIBS ${CPPAMQP_BUILD_SHARED} ) | |||
| Set ( CMAKE_CXX_STANDARD 17 ) | |||
| Set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${PEDANTIC_C_FLAGS}" ) | |||
| Set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${PEDANTIC_CXX_FLAGS}" ) | |||
| # Dependencies #################################################################################### | |||
| Find_Package ( cpputils REQUIRED ) | |||
| Find_Package ( rabbitmq REQUIRED ) | |||
| Find_Package ( cppcore REQUIRED ) | |||
| Find_Package ( cpplogging ) | |||
| If ( cpplogging_FOUND ) | |||
| Set ( CPPAMQP_HAS_CPPLOGGING true ) | |||
| EndIf ( ) | |||
| # Project: cppamqp ############################################################################### | |||
| # Object Library ################################################################################## | |||
| # Build | |||
| Project ( cppamqp VERSION 1.0.0.0 LANGUAGES CXX ) | |||
| Set ( CMAKE_POSITION_INDEPENDENT_CODE ON ) | |||
| Set ( CPPAMQP_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../include ) | |||
| File ( GLOB_RECURSE SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp ) | |||
| Add_Library ( cppamqp ${SOURCE_FILES} ) | |||
| Target_Include_Directories ( cppamqp | |||
| PUBLIC ${CPPAMQP_INCLUDE_DIR} ) | |||
| Target_Link_Libraries ( cppamqp | |||
| cpputils | |||
| rabbitmq ) | |||
| Set ( CPPAMQP_GENERATED_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/generated/include ) | |||
| Configure_File ( ${CMAKE_CURRENT_SOURCE_DIR}/../cmake/config.h.in | |||
| ${CPPAMQP_GENERATED_INCLUDE_DIR}/cppamqp/config.h ) | |||
| File ( GLOB_RECURSE CPPAMQP_HEADER_FILES ${CPPAMQP_INCLUDE_DIR}/*.h ) | |||
| File ( GLOB_RECURSE CPPAMQP_INLINE_FILES ${CPPAMQP_INCLUDE_DIR}/*.inl ) | |||
| File ( GLOB_RECURSE CPPAMQP_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp ) | |||
| Add_Library ( cppamqp-objects | |||
| OBJECT | |||
| ${CPPAMQP_HEADER_FILES} | |||
| ${CPPAMQP_INLINE_FILES} | |||
| ${CPPAMQP_SOURCE_FILES} ) | |||
| Target_Include_Directories ( cppamqp-objects | |||
| PUBLIC | |||
| $<BUILD_INTERFACE:${CPPAMQP_INCLUDE_DIR}> | |||
| $<BUILD_INTERFACE:${CPPAMQP_GENERATED_INCLUDE_DIR}> | |||
| $<INSTALL_INTERFACE:${CPPAMQP_INSTALL_DIR_INCLUDE}> ) | |||
| Target_Link_Libraries ( cppamqp-objects | |||
| PUBLIC | |||
| cppcore::cppcore ) | |||
| If ( CPPAMQP_HAS_CPPLOGGING ) | |||
| Target_Link_Libraries ( cppamqp-objects | |||
| PUBLIC | |||
| cpplogging::cpplogging-shared ) | |||
| EndIf ( ) | |||
| # Static Library ################################################################################## | |||
| Add_Library ( cppamqp-static STATIC $<TARGET_OBJECTS:cppamqp-objects> ) | |||
| Set_Target_Properties ( cppamqp-static | |||
| PROPERTIES | |||
| OUTPUT_NAME "${CPPAMQP_OUTPUTNAME}" | |||
| VERSION ${CPPAMQP_VERSION} ) | |||
| Target_Include_Directories ( cppamqp-static | |||
| PUBLIC | |||
| $<BUILD_INTERFACE:${CPPAMQP_INCLUDE_DIR}> | |||
| $<BUILD_INTERFACE:${CPPAMQP_GENERATED_INCLUDE_DIR}> | |||
| $<INSTALL_INTERFACE:${CPPAMQP_INSTALL_DIR_INCLUDE}> ) | |||
| If ( CPPAMQP_HAS_CPPLOGGING ) | |||
| Target_Link_Libraries ( cppamqp-static | |||
| PUBLIC | |||
| rabbitmq::rabbitmq-static | |||
| cpplogging::cpplogging-static ) | |||
| EndIf ( ) | |||
| # Shared Library ################################################################################## | |||
| Add_Library ( cppamqp-shared SHARED $<TARGET_OBJECTS:cppamqp-objects> ) | |||
| Set_Target_Properties ( cppamqp-shared | |||
| PROPERTIES | |||
| OUTPUT_NAME "${CPPAMQP_OUTPUTNAME}" | |||
| VERSION ${CPPAMQP_VERSION} | |||
| SOVERSION ${CPPAMQP_VERSION_SHORT} ) | |||
| Target_Include_Directories ( cppamqp-shared | |||
| PUBLIC | |||
| $<BUILD_INTERFACE:${CPPAMQP_INCLUDE_DIR}> | |||
| $<BUILD_INTERFACE:${CPPAMQP_GENERATED_INCLUDE_DIR}> | |||
| $<INSTALL_INTERFACE:${CPPAMQP_INSTALL_DIR_INCLUDE}> ) | |||
| If ( CPPAMQP_HAS_CPPLOGGING ) | |||
| Target_Link_Libraries ( cppamqp-shared | |||
| PUBLIC | |||
| rabbitmq::rabbitmq-shared | |||
| cpplogging::cpplogging-shared ) | |||
| EndIf ( ) | |||
| # Optimization #################################################################################### | |||
| # pedantic | |||
| If ( HAS_PEDANTIC ) | |||
| Pedantic_Apply_Flags_Target ( cppamqp-objects ALL ) | |||
| Pedantic_Apply_Flags_Target ( cppamqp-static ALL ) | |||
| Pedantic_Apply_Flags_Target ( cppamqp-shared ALL ) | |||
| EndIf ( ) | |||
| # cotire | |||
| If ( HAS_COTIRE ) | |||
| Cotire ( cppamqp-objects ) | |||
| Cotire ( cppamqp-static ) | |||
| Cotire ( cppamqp-shared ) | |||
| EndIf ( ) | |||
| # Install ######################################################################################### | |||
| # Header | |||
| If ( CPPAMQP_INSTALL_HEADER ) | |||
| Install ( FILES ${CPPAMQP_INCLUDE_DIR}/cppamqp.h | |||
| DESTINATION ${CPPAMQP_INSTALL_DIR_INCLUDE} ) | |||
| Install ( DIRECTORY ${CPPAMQP_INCLUDE_DIR}/cppamqp | |||
| DESTINATION ${CPPAMQP_INSTALL_DIR_INCLUDE} ) | |||
| Install ( DIRECTORY ${CPPAMQP_GENERATED_INCLUDE_DIR}/cppamqp | |||
| DESTINATION ${CPPAMQP_INSTALL_DIR_INCLUDE} ) | |||
| EndIf ( ) | |||
| # Install | |||
| If ( BUILD_SHARED_LIBS OR CPPAMQP_INSTALL_DEV_FILES ) | |||
| Install ( TARGETS cppamqp DESTINATION lib ) | |||
| # Static | |||
| If ( CPPAMQP_INSTALL_STATIC ) | |||
| Install ( TARGETS cppamqp-static | |||
| EXPORT cppamqp | |||
| DESTINATION ${CPPAMQP_INSTALL_DIR_LIB} ) | |||
| EndIf ( ) | |||
| If ( CPPAMQP_INSTALL_DEV_FILES ) | |||
| Install ( FILES ${CPPAMQP_INCLUDE_DIR}/cppamqp.h DESTINATION include ) | |||
| Install ( DIRECTORY ${CPPAMQP_INCLUDE_DIR}/cppamqp DESTINATION include ) | |||
| # Shared | |||
| If ( CPPAMQP_INSTALL_SHARED ) | |||
| Install ( TARGETS cppamqp-shared | |||
| EXPORT cppamqp | |||
| DESTINATION ${CPPAMQP_INSTALL_DIR_LIB} ) | |||
| EndIf ( ) | |||
| # Optimize | |||
| If ( __COTIRE_INCLUDED ) | |||
| Cotire ( cppamqp ) | |||
| # Debug | |||
| If ( HAS_STRIP_SYMBOLS AND NOT CPPAMQP_NO_STRIP ) | |||
| Strip_Symbols ( cppamqp-shared CPPAMQP_DBG_FILE ) | |||
| If ( CPPAMQP_INSTALL_DEBUG ) | |||
| Install ( FILES ${CPPAMQP_DBG_FILE} | |||
| DESTINATION ${CPPAMQP_INSTALL_DIR_LIB} ) | |||
| EndIf ( ) | |||
| EndIf ( ) | |||
| If ( __STRIP_SYMBOLS_INCLUDED AND BUILD_SHARED_LIBS ) | |||
| Strip_Symbols ( cppamqp DBG_FILE ) | |||
| EndIf () | |||
| @@ -11,7 +11,7 @@ channel::internal::internal(const cppamqp::connection& p_connection, channel_num | |||
| , handle (p_handle) | |||
| { | |||
| if (handle <= 0) | |||
| throw utl::argument_exception("handle", "handle must be greater than 0"); | |||
| throw ::cppcore::argument_exception("handle", "handle must be greater than 0"); | |||
| amqp_channel_open(connection.handle(), handle); | |||
| __impl::check_and_raise( | |||
| amqp_get_rpc_reply(connection.handle()), | |||
| @@ -152,4 +152,4 @@ void channel::close(int status) | |||
| false); | |||
| _internal->handle = 0; | |||
| _internal.reset(); | |||
| } | |||
| } | |||
| @@ -1,4 +1,4 @@ | |||
| #include <cpputils/misc/time.h> | |||
| #include <cppcore/conversion/time.h> | |||
| #include <cppamqp/helper.h> | |||
| #include <cppamqp/message.inl> | |||
| @@ -100,7 +100,7 @@ channel connection::open_channel(channel_number c) | |||
| consume_result connection::consume_message(const std::chrono::milliseconds& timeout) | |||
| { | |||
| ::timeval tv = utl::duration_cast<::timeval>(timeout); | |||
| ::timeval tv = ::cppcore::duration_cast<::timeval>(timeout); | |||
| internal_envelope envelope; | |||
| amqp_maybe_release_buffers(handle()); | |||
| auto ret = amqp_consume_message( | |||
| @@ -163,4 +163,4 @@ void connection::close(int status, bool force) | |||
| _internal->auto_close = false; | |||
| _internal->reply_code = status; | |||
| _internal.reset(); | |||
| } | |||
| } | |||
| @@ -1,6 +1,6 @@ | |||
| #include <cppamqp/helper.h> | |||
| #include <cppamqp/exception.inl> | |||
| #include <cpputils/logging/global.h> | |||
| #include <cpplogging/interface.h> | |||
| void ::cppamqp::__impl::check_and_raise(int returnCode, std::string msg, bool logOnly) | |||
| { | |||
| @@ -11,7 +11,7 @@ void ::cppamqp::__impl::check_and_raise(int returnCode, std::string msg, bool lo | |||
| if (!msg.empty()) | |||
| msg += " - "; | |||
| msg += amqp_error_string2(returnCode); | |||
| log_global_message(error, msg); | |||
| cppamqp_log(error) << msg; | |||
| } | |||
| else | |||
| throw cppamqp::exception(msg, static_cast<amqp_status_enum>(returnCode)); | |||
| @@ -30,7 +30,7 @@ void ::cppamqp::__impl::check_and_raise(const amqp_rpc_reply_t& reply, std::stri | |||
| msg += " - "; | |||
| msg += std::string("Server error: ID=") + std::to_string(reply.reply.id); | |||
| if (logOnly) { | |||
| log_global_message(error, msg); | |||
| cppamqp_log(error) << msg; | |||
| } else { | |||
| throw cppamqp::exception(msg); | |||
| } | |||
| @@ -47,7 +47,7 @@ void ::cppamqp::__impl::check_and_raise(const amqp_rpc_reply_t& reply, std::stri | |||
| msg += " - "; | |||
| msg += "unknown reply"; | |||
| if (logOnly) { | |||
| log_global_message(error, msg); | |||
| cppamqp_log(error) << msg; | |||
| } else { | |||
| throw cppamqp::exception(msg); | |||
| } | |||
| @@ -12,7 +12,7 @@ inline amqp_bytes_t simpleConvert<amqp_bytes_t, std::string>(const std::string& | |||
| { return __impl::make_bytes(value); } | |||
| template<class T, class S> | |||
| inline void addProperty(amqp_basic_properties_t& properties, amqp_flags_t flag, T amqp_basic_properties_t::*member, const utl::nullable<S>& value) | |||
| inline void addProperty(amqp_basic_properties_t& properties, amqp_flags_t flag, T amqp_basic_properties_t::*member, const ::cppcore::nullable<S>& value) | |||
| { | |||
| if (value) | |||
| { | |||
| @@ -1,30 +1,43 @@ | |||
| # Initialize ###################################################################################### | |||
| Include ( cotire OPTIONAL ) | |||
| Include ( pedantic OPTIONAL ) | |||
| Include ( cmake_tests OPTIONAL ) | |||
| Include ( ${CMAKE_CURRENT_SOURCE_DIR}/../cmake/options.cmake ) | |||
| Set ( CMAKE_CXX_STANDARD 17 ) | |||
| Set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${PEDANTIC_C_FLAGS}" ) | |||
| Set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${PEDANTIC_CXX_FLAGS}" ) | |||
| # Project: test_cppamqp ########################################################################## | |||
| Project ( test_cppamqp ) | |||
| File ( GLOB_RECURSE SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp ) | |||
| Add_Executable ( test_cppamqp EXCLUDE_FROM_ALL ${SOURCE_FILES} ) | |||
| Target_Link_Libraries ( test_cppamqp | |||
| cppamqp | |||
| gmock_main | |||
| gmock | |||
| gtest | |||
| pthread ) | |||
| If ( __COTIRE_INCLUDED ) | |||
| Cotire ( test_cppamqp ) | |||
| Include ( cotire OPTIONAL RESULT_VARIABLE HAS_COTIRE ) | |||
| Include ( pedantic OPTIONAL RESULT_VARIABLE HAS_PEDANTIC ) | |||
| Include ( cmake_tests OPTIONAL RESULT_VARIABLE HAS_CMAKE_TESTS ) | |||
| # Test ############################################################################################ | |||
| Find_Package ( GTest ) | |||
| If ( NOT "${GTest_FOUND}" ) | |||
| Return ( ) | |||
| EndIf ( ) | |||
| If ( __CMAKE_TESTS_INCLUDED ) | |||
| Add_CMake_Test ( NAME cppamqp | |||
| TARGET test_cppamqp ) | |||
| File ( GLOB_RECURSE CPPAMQP_TEST_HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.h ) | |||
| File ( GLOB_RECURSE CPPAMQP_TEST_INLINE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.inl ) | |||
| File ( GLOB_RECURSE CPPAMQP_TEST_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp ) | |||
| Add_Executable ( cppamqp-test | |||
| EXCLUDE_FROM_ALL | |||
| ${CPPAMQP_TEST_HEADER_FILES} | |||
| ${CPPAMQP_TEST_INLINE_FILES} | |||
| ${CPPAMQP_TEST_SOURCE_FILES} ) | |||
| Target_Link_Libraries ( cppamqp-test | |||
| PUBLIC | |||
| cppamqp-objects | |||
| GMock::Main ) | |||
| # pedantic | |||
| If ( HAS_PEDANTIC ) | |||
| Pedantic_Apply_Flags_Target ( cppamqp-test ALL ) | |||
| EndIf ( ) | |||
| # optimization | |||
| If ( HAS_COTIRE ) | |||
| Cotire ( cppamqp-test ) | |||
| EndIf ( ) | |||
| # test | |||
| If ( HAS_CMAKE_TESTS ) | |||
| Add_CMake_Test ( NAME cppamqp TARGET cppamqp-test ) | |||
| Else ( ) | |||
| Add_Test ( NAME cppamqp COMMAND cppamqp-test ) | |||
| EndIf ( ) | |||
| @@ -117,4 +117,7 @@ int amqp_basic_publish(amqp_connection_state_t state, amqp_channel_t channel, am | |||
| { return (amqp_mock_instance ? amqp_mock_instance->amqp_basic_publish(state, channel, exchange, routing_key, mandatory, immediate, properties, body) : 0); } | |||
| amqp_basic_consume_ok_t* amqp_basic_consume(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, amqp_bytes_t consumer_tag, amqp_boolean_t no_local, amqp_boolean_t no_ack, amqp_boolean_t exclusive, amqp_table_t arguments) | |||
| { return (amqp_mock_instance ? amqp_mock_instance->amqp_basic_consume(state, channel, queue, consumer_tag, no_local, no_ack, exclusive, arguments) : nullptr); } | |||
| { return (amqp_mock_instance ? amqp_mock_instance->amqp_basic_consume(state, channel, queue, consumer_tag, no_local, no_ack, exclusive, arguments) : nullptr); } | |||
| amqp_basic_qos_ok_t* amqp_basic_qos(amqp_connection_state_t state, amqp_channel_t channel, uint32_t prefetch_size, uint16_t prefetch_count, amqp_boolean_t global) | |||
| { return (amqp_mock_instance ? amqp_mock_instance->amqp_basic_qos(state, channel, prefetch_size, prefetch_count, global) : nullptr); } | |||
| @@ -34,6 +34,7 @@ public: | |||
| MOCK_METHOD6(amqp_queue_bind, amqp_queue_bind_ok_t* (amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, amqp_bytes_t exchange, amqp_bytes_t routing_key, amqp_table_t arguments)); | |||
| MOCK_METHOD8(amqp_basic_publish, int (amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t exchange, amqp_bytes_t routing_key, amqp_boolean_t mandatory, amqp_boolean_t immediate, struct amqp_basic_properties_t_ const *properties, amqp_bytes_t body)); | |||
| MOCK_METHOD8(amqp_basic_consume, amqp_basic_consume_ok_t* (amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, amqp_bytes_t consumer_tag, amqp_boolean_t no_local, amqp_boolean_t no_ack, amqp_boolean_t exclusive, amqp_table_t arguments)); | |||
| MOCK_METHOD5(amqp_basic_qos, amqp_basic_qos_ok_t* (amqp_connection_state_t state, amqp_channel_t channel, uint32_t prefetch_size, uint16_t prefetch_count, amqp_boolean_t global)); | |||
| static amqp_connection_state_t defaultConnectionState; | |||
| static amqp_socket_t* defaultSocket; | |||
| @@ -44,4 +45,4 @@ public: | |||
| ~AmqpMock() | |||
| { clearInstance(this); } | |||
| }; | |||
| }; | |||