diff --git a/CMakeModules/astyle.cmake b/CMakeModules/astyle.cmake index 4fb06da8181f694a4546379c31c17c06734be276..17351d0ec244468e6df16bb1ca786d659c5d7216 100644 --- a/CMakeModules/astyle.cmake +++ b/CMakeModules/astyle.cmake @@ -7,7 +7,7 @@ if(ASTYLE_EXECUTABLE) ${ASTYLE_EXECUTABLE} -i --exclude=${PROJECT_BINARY_DIR} --recursive -n --style=google --indent=spaces=4 --max-code-length=120 - --max-instatement-indent=50 --pad-oper --align-pointer=type + --max-instatement-indent=50 --pad-oper --align-pointer=type --quiet "${PROJECT_SOURCE_DIR}/*.cpp" "${PROJECT_SOURCE_DIR}/*.h" WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} VERBATIM diff --git a/common/cpp/src/data_structs/data_structs.cpp b/common/cpp/src/data_structs/data_structs.cpp index 71b58f1ebcefcef61651071d3ac876c2378f5d25..25bd2622004db2b0b1d9cbee3aaf93c132789223 100644 --- a/common/cpp/src/data_structs/data_structs.cpp +++ b/common/cpp/src/data_structs/data_structs.cpp @@ -186,7 +186,7 @@ std::string IsoDateFromEpochNanosecs(uint64_t time_from_epoch_nanosec) { sprintf(buff, "%.4d-%.2d-%.2dT%.2d:%.2d:%.2d", timetm.tm_year + 1900, timetm.tm_mon + 1, timetm.tm_mday, timetm.tm_hour, timetm.tm_min, timetm.tm_sec); if (zz > 0) { - sprintf(buff + 19, ".%.9ld", zz); + sprintf(buff + 19, ".%.9llu", zz); } return buff; diff --git a/common/cpp/src/json_parser/CMakeLists.txt b/common/cpp/src/json_parser/CMakeLists.txt index eddf5735d2efa5be900c33392fbafed3b5111c4c..07bbdb809b9269a1e56a6a9cc6ed712bd19ee212 100644 --- a/common/cpp/src/json_parser/CMakeLists.txt +++ b/common/cpp/src/json_parser/CMakeLists.txt @@ -20,4 +20,6 @@ set(TEST_SOURCE_FILES ../../unittests/json_parser/test_json_parser.cpp) set(TEST_LIBRARIES "${TARGET_NAME};system_io") include_directories(${ASAPO_CXX_COMMON_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/3d_party/rapidjson/include) +include_directories(SYSTEM ${CMAKE_SOURCE_DIR}/3d_party/rapidjson/include) + gtest(${TARGET_NAME} "${TEST_SOURCE_FILES}" "${TEST_LIBRARIES}") diff --git a/consumer/api/cpp/src/tcp_consumer_client.cpp b/consumer/api/cpp/src/tcp_consumer_client.cpp index 7eb9432aa335186766cd067f2b765c5b8e101c01..11ea5626fbc11fff505ebbb5e1093df0a7d6a155 100644 --- a/consumer/api/cpp/src/tcp_consumer_client.cpp +++ b/consumer/api/cpp/src/tcp_consumer_client.cpp @@ -56,6 +56,8 @@ Error TcpConsumerClient::ReceiveResponce(SocketDescriptor sd) const noexcept { case kNetErrorNoData: connection_pool__->ReleaseConnection(sd); break; + default: + break; } return ConvertRdsResponseToError(response.error_code); } diff --git a/consumer/api/cpp/unittests/test_consumer_impl.cpp b/consumer/api/cpp/unittests/test_consumer_impl.cpp index bb279cff58b4e7e3ae99908eee85bc19186a0576..e734a6043627a8a9ed75e4fa2e146e0856aaa4c2 100644 --- a/consumer/api/cpp/unittests/test_consumer_impl.cpp +++ b/consumer/api/cpp/unittests/test_consumer_impl.cpp @@ -1261,7 +1261,7 @@ TEST_F(ConsumerImplTests, FileTransferReadsFileSize) { 5, _)).WillOnce(DoAll( SetArgPointee<5>(HttpCode::OK), - AssignArg3(nullptr), + AssignArg3(false), Return(nullptr) )); diff --git a/consumer/api/python/CMakeLists_Linux.cmake b/consumer/api/python/CMakeLists_Linux.cmake index c099a14d424918d4a3dcdf5dde31cbc949f990e2..35dd630b484e73e604f7ae95111568c103066c3c 100644 --- a/consumer/api/python/CMakeLists_Linux.cmake +++ b/consumer/api/python/CMakeLists_Linux.cmake @@ -19,7 +19,7 @@ set (ASAPO_CONSUMER_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../cpp/include) configure_files(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} @ONLY) -ADD_CUSTOM_TARGET(python-lib-consumer ALL COMMAND ${Python_EXECUTABLE} setup.py build_ext --inplace --force) +ADD_CUSTOM_TARGET(python-lib-consumer ALL COMMAND ${Python_EXECUTABLE} setup.py --quiet build_ext --inplace --force) ADD_DEPENDENCIES(python-lib-consumer asapo-consumer) diff --git a/consumer/api/python/asapo_consumer.pyx.in b/consumer/api/python/asapo_consumer.pyx.in index 1efc446dc622ab7fc7d1043f9a0be1cea6cde6e4..f4232d7c74a914ee65d19a50f82d9782ac7fc977 100644 --- a/consumer/api/python/asapo_consumer.pyx.in +++ b/consumer/api/python/asapo_consumer.pyx.in @@ -7,6 +7,7 @@ import json from cpython.version cimport PY_MAJOR_VERSION from libcpp.string cimport string + np.import_array() cdef extern from "numpy/ndarraytypes.h": @@ -144,7 +145,7 @@ cdef class PyConsumer: cdef char* ptr = <char*> data.release() dims[0] = meta['size'] arr = np.PyArray_SimpleNewFromData(1, dims, np.NPY_BYTE, ptr) - PyArray_ENABLEFLAGS(arr,np.NPY_OWNDATA) + PyArray_ENABLEFLAGS(arr,np.NPY_ARRAY_OWNDATA) return arr,meta def get_next(self, group_id, meta_only = True, stream = "default"): return self._op("next",group_id,stream,meta_only,0) @@ -169,7 +170,7 @@ cdef class PyConsumer: dims[0] = meta['size'] cdef char* ptr = <char*> data.release() arr = np.PyArray_SimpleNewFromData(1, dims, np.NPY_BYTE, ptr) - PyArray_ENABLEFLAGS(arr,np.NPY_OWNDATA) + PyArray_ENABLEFLAGS(arr,np.NPY_ARRAY_OWNDATA) return arr def get_current_size(self, stream = "default"): cdef Error err diff --git a/consumer/api/python/setup.py.in b/consumer/api/python/setup.py.in index 655dd52cb18c5630a51cd97a4c1426aaabc7c146..24a0c166ccbcac6b75d1e5fbfc48b4dc340adedd 100644 --- a/consumer/api/python/setup.py.in +++ b/consumer/api/python/setup.py.in @@ -8,6 +8,7 @@ import numpy module = Extension("asapo_consumer", ["asapo_consumer.pyx"], extra_objects=['$<TARGET_FILE:asapo-consumer>','$<TARGET_FILE:asapo-fabric>', '@CURL_LIBRARIES@'], + define_macros=[("NPY_NO_DEPRECATED_API", "NPY_1_7_API_VERSION")], include_dirs=["@ASAPO_CXX_COMMON_INCLUDE_DIR@","@ASAPO_CONSUMER_INCLUDE_DIR@",numpy.get_include()], extra_compile_args=@EXTRA_COMPILE_ARGS@, extra_link_args=@EXTRA_LINK_ARGS@, @@ -15,6 +16,6 @@ module = Extension("asapo_consumer", ["asapo_consumer.pyx"], ) -ext_modules = cythonize([module],compiler_directives={'embedsignature': True}) +ext_modules = cythonize([module],compiler_directives={'embedsignature': True,'language_level': 2}) setup(ext_modules = ext_modules) diff --git a/examples/producer/dummy-data-producer/dummy_data_producer.cpp b/examples/producer/dummy-data-producer/dummy_data_producer.cpp index d0626ac4910598d259ee6c48c76ffecf57ddeb52..3c0345b09a3f53599caf626fb1c44b0c71a63ec8 100644 --- a/examples/producer/dummy-data-producer/dummy_data_producer.cpp +++ b/examples/producer/dummy-data-producer/dummy_data_producer.cpp @@ -133,7 +133,8 @@ bool SendDummyData(asapo::Producer* producer, size_t number_of_byte, uint64_t it asapo::Error err; if (iterations == 0) { - err = producer->SendMetadata("{\"dummy_meta\":\"test\"}", &ProcessAfterMetaDataSend); + auto mode = asapo::MetaIngestMode{asapo::MetaIngestOp::kReplace, true}; + err = producer->SendBeamtimeMetadata("{\"dummy_meta\":\"test\"}", mode, &ProcessAfterMetaDataSend); if (err) { std::cerr << "Cannot send metadata: " << err << std::endl; return false; diff --git a/producer/api/cpp/include/asapo/producer/producer.h b/producer/api/cpp/include/asapo/producer/producer.h index 9d09d71f8ee4093f503052a0a57df5332ff9ee33..f77aae08db7c90be4c523a48128a01670e8269af 100644 --- a/producer/api/cpp/include/asapo/producer/producer.h +++ b/producer/api/cpp/include/asapo/producer/producer.h @@ -134,6 +134,7 @@ class Producer { //! Sends beamtime metadata to the receiver /*! \param metadata - a JSON string with metadata + \param MetaIngestMode - a JSON string with metadata \param callback - callback function \return Error - will be nullptr on success */ diff --git a/producer/api/python/CMakeLists_Linux.cmake b/producer/api/python/CMakeLists_Linux.cmake index de40245e9da800c6b40124f03d59d855ec7650b0..566598a58ebac1efee88fd1115f49372dca9903e 100644 --- a/producer/api/python/CMakeLists_Linux.cmake +++ b/producer/api/python/CMakeLists_Linux.cmake @@ -15,7 +15,7 @@ configure_files(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} @ONLY) file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/setup.py INPUT ${CMAKE_CURRENT_BINARY_DIR}/setup.py) ADD_CUSTOM_TARGET(python-lib-producer ALL - COMMAND ${Python_EXECUTABLE} setup.py build_ext --inplace --force) + COMMAND ${Python_EXECUTABLE} setup.py --quiet build_ext --inplace --force) ADD_DEPENDENCIES(python-lib-producer asapo-producer) diff --git a/producer/api/python/asapo_producer.pyx.in b/producer/api/python/asapo_producer.pyx.in index d0101a01b7e853d53350f2413296230c7fe6cff7..0f236b9888173fd6a06c1b29258f554ebb043fd0 100644 --- a/producer/api/python/asapo_producer.pyx.in +++ b/producer/api/python/asapo_producer.pyx.in @@ -1,5 +1,5 @@ #distutils: language=c++ - +#cython: language_level=2 cimport asapo_producer import numpy as np diff --git a/producer/api/python/setup.py.in b/producer/api/python/setup.py.in index 75da93f36dc9089f197759b1a042245b2b8eb4c6..00b03adb041f4b9ef219b17d4b5310b133ca3da9 100644 --- a/producer/api/python/setup.py.in +++ b/producer/api/python/setup.py.in @@ -8,15 +8,13 @@ import numpy module = Extension("asapo_producer", ["asapo_producer.pyx"], extra_objects=['$<TARGET_FILE:asapo-producer>', '@CURL_LIBRARIES@'], + define_macros=[("NPY_NO_DEPRECATED_API", "NPY_1_7_API_VERSION")], include_dirs=["@ASAPO_CXX_COMMON_INCLUDE_DIR@","@ASAPO_PRODUCER_INCLUDE_DIR@",numpy.get_include()], extra_compile_args=@EXTRA_COMPILE_ARGS@, extra_link_args=@EXTRA_LINK_ARGS@, language="c++", ) -ext_modules = cythonize([module],compiler_directives={'embedsignature': True}) +ext_modules = cythonize([module],compiler_directives={'embedsignature': True,'language_level': 2}) -setup(ext_modules = ext_modules, - setup_requires=["numpy","cython>=0.28"], - install_requires=["numpy","cython>=0.28"] -) +setup(ext_modules = ext_modules) diff --git a/receiver/src/receiver_data_server/request_handler/receiver_data_server_request_handler.cpp b/receiver/src/receiver_data_server/request_handler/receiver_data_server_request_handler.cpp index 59406f7f2606fb5ac28394527a61d3d1d0166799..6de6edf6f542a6c9c1091ad2ea703cc957b799ff 100644 --- a/receiver/src/receiver_data_server/request_handler/receiver_data_server_request_handler.cpp +++ b/receiver/src/receiver_data_server/request_handler/receiver_data_server_request_handler.cpp @@ -101,6 +101,8 @@ void ReceiverDataServerRequestHandler::HandleInvalidRequest(const ReceiverDataSe case NetworkErrorCode::kNetErrorNotSupported: log__->Error("unsupported client, version: " + std::string(receiver_request->header.api_version)); break; + default: + break; }; } diff --git a/tests/automatic/producer/beamtime_metadata/beamtime_metadata.cpp b/tests/automatic/producer/beamtime_metadata/beamtime_metadata.cpp index 65054a791bdf64f41473bae37a08d33b09e9052e..5bfcc200d8bee4069cf011988795c3caac46250e 100644 --- a/tests/automatic/producer/beamtime_metadata/beamtime_metadata.cpp +++ b/tests/automatic/producer/beamtime_metadata/beamtime_metadata.cpp @@ -53,8 +53,8 @@ void ProcessAfterSend(asapo::RequestCallbackPayload payload, asapo::Error err) { } bool SendMetaData(asapo::Producer* producer) { - - auto err = producer->SendMetadata("hello", &ProcessAfterSend); + auto mode = asapo::MetaIngestMode{asapo::MetaIngestOp::kReplace, true}; + auto err = producer->SendBeamtimeMetadata("hello", mode, &ProcessAfterSend); if (err) { std::cerr << "Cannot send metadata: " << err << std::endl; return false;