diff --git a/CMakeLists.txt b/CMakeLists.txt index 84426e951ad268fdddbac89a61700f96d10fc8c8..84299a75a24e093527305f41c39c973e92cd7377 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,6 +5,7 @@ IF(WIN32) set(CMAKE_CXX_FLAGS_DEBUG "/MTd") set(CMAKE_CXX_FLAGS_RELEASE "/MT") add_definitions(-DWIN32) + add_definitions(-D_CRT_SECURE_NO_WARNINGS) ELSEIF(CMAKE_C_COMPILER_ID STREQUAL "GNU") SET( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libgcc -static-libstdc++") #todo: added fPIC to be able to create shared libs for Python - check it does not change performance diff --git a/common/cpp/src/system_io/system_io.cpp b/common/cpp/src/system_io/system_io.cpp index 89c8292180b04ee82a9ab3a11906ad74aa3e79c1..7dd9819da5710221a8ce433cecb0eea6d8675e2c 100644 --- a/common/cpp/src/system_io/system_io.cpp +++ b/common/cpp/src/system_io/system_io.cpp @@ -72,7 +72,7 @@ std::unique_ptr<std::tuple<std::string, uint16_t>> SystemIO::SplitAddressToHostn uint8_t* AllocateArray(uint64_t fsize, Error* err) { uint8_t* data_array = nullptr; try { - data_array = new uint8_t[fsize]; + data_array = new uint8_t[(size_t)fsize]; } catch (...) { *err = ErrorTemplates::kMemoryAllocationError.Generate(); return nullptr; @@ -103,7 +103,7 @@ FileData SystemIO::GetDataFromFile(const std::string& fname, uint64_t* fsize, Er return nullptr; } - Read(fd, data_array, *fsize, err); + Read(fd, data_array, (size_t)*fsize, err); if (*err != nullptr) { (*err)->Append(fname); Close(fd, nullptr); @@ -194,7 +194,7 @@ std::string SystemIO::ReadFileToString(const std::string& fname, Error* err) con return ""; } - return std::string(reinterpret_cast<const char*>(data.get()), size); + return std::string(reinterpret_cast<const char*>(data.get()), (size_t)size); } std::unique_ptr<std::thread> SystemIO::NewThread(std::function<void()> function) const { diff --git a/producer/api/src/producer_impl.cpp b/producer/api/src/producer_impl.cpp index f86003f65e9d62a8617beb847a0cf45f576717d9..026e224f669eb30863c8c881a252a00e70ec2006 100644 --- a/producer/api/src/producer_impl.cpp +++ b/producer/api/src/producer_impl.cpp @@ -50,7 +50,7 @@ Error ProducerImpl::Send(const EventHeader& event_header, FileData data, std::string full_path, RequestCallback callback) { - auto err = CheckProducerRequest(event_header.file_size, event_header.file_name.size()); + auto err = CheckProducerRequest((size_t)event_header.file_size, event_header.file_name.size()); if (err) { log__->Error("error checking request - " + err->Explain()); return err; diff --git a/producer/api/src/receiver_discovery_service.cpp b/producer/api/src/receiver_discovery_service.cpp index ebf87761f06eaf6a75fc0e319f3305cd33826cb1..2f10a3152a80d9f53b2cf675be504a9096c23c77 100644 --- a/producer/api/src/receiver_discovery_service.cpp +++ b/producer/api/src/receiver_discovery_service.cpp @@ -100,7 +100,7 @@ ReceiversList ReceiverDiscoveryService::RotatedUriList(uint64_t nthread) { } ReceiversList list{uri_list_}; lock.unlock(); - auto shift = nthread % size; + auto shift = (int) nthread % size; std::rotate(list.begin(), list.begin() + shift, list.end()); return list; } diff --git a/producer/api/src/request_handler_filesystem.cpp b/producer/api/src/request_handler_filesystem.cpp index dcd27a114943b303ba3e6965861f819a16b314d7..ac49aea6e39319c54f2438ceb279d21685e6b154 100644 --- a/producer/api/src/request_handler_filesystem.cpp +++ b/producer/api/src/request_handler_filesystem.cpp @@ -25,7 +25,7 @@ Error RequestHandlerFilesystem::ProcessRequestUnlocked(GenericRequest* request) } err = io__->WriteDataToFile(destination_folder_, request->header.message, (uint8_t*)producer_request->data.get(), - request->header.data_size, true); + (size_t)request->header.data_size, true); if (producer_request->callback) { producer_request->callback(request->header, std::move(err)); } diff --git a/producer/api/src/request_handler_tcp.cpp b/producer/api/src/request_handler_tcp.cpp index e7cb40916124f5f9d45b009f702a7ed70b2fb805..5d6cb9dc9a72a6614713cd45d4cc30df868ffd82 100644 --- a/producer/api/src/request_handler_tcp.cpp +++ b/producer/api/src/request_handler_tcp.cpp @@ -55,7 +55,7 @@ Error RequestHandlerTcp::SendHeaderAndData(const ProducerRequest* request) { return io_error; } - io__->Send(sd_, (void*) request->data.get(), request->header.data_size, &io_error); + io__->Send(sd_, (void*) request->data.get(), (size_t)request->header.data_size, &io_error); if(io_error) { return io_error; } diff --git a/producer/api/unittests/test_request_handler_filesystem.cpp b/producer/api/unittests/test_request_handler_filesystem.cpp index c3f69e5a4708b50efc8515772c727c85f07a82d6..f0093d4bbab4483ac696ca8670e3eb5ce17e0237 100644 --- a/producer/api/unittests/test_request_handler_filesystem.cpp +++ b/producer/api/unittests/test_request_handler_filesystem.cpp @@ -90,7 +90,7 @@ MATCHER_P2(M_CheckSendDataRequest, file_id, file_size, } TEST_F(RequestHandlerFilesystemTests, CallBackErrorIfCannotSaveFile) { - EXPECT_CALL(mock_io, WriteDataToFile_t(expected_destination, expected_file_name, nullptr, expected_file_size, true)) + EXPECT_CALL(mock_io, WriteDataToFile_t(expected_destination, expected_file_name, nullptr, (size_t)expected_file_size, true)) .WillOnce( Return( asapo::IOErrorTemplates::kUnknownIOError.Generate().release()) @@ -105,7 +105,7 @@ TEST_F(RequestHandlerFilesystemTests, CallBackErrorIfCannotSaveFile) { } TEST_F(RequestHandlerFilesystemTests, WorksWithemptyCallback) { - EXPECT_CALL(mock_io, WriteDataToFile_t(expected_destination, expected_file_name, nullptr, expected_file_size, true)) + EXPECT_CALL(mock_io, WriteDataToFile_t(expected_destination, expected_file_name, nullptr,(size_t) expected_file_size, true)) .WillOnce( Return(nullptr) ); @@ -140,7 +140,7 @@ TEST_F(RequestHandlerFilesystemTests, FileRequestOK) { Return(nullptr) )); - EXPECT_CALL(mock_io, WriteDataToFile_t(expected_destination, expected_file_name, nullptr, expected_file_size, true)) + EXPECT_CALL(mock_io, WriteDataToFile_t(expected_destination, expected_file_name, nullptr, (size_t)expected_file_size, true)) .WillOnce( Return(nullptr) ); @@ -152,7 +152,7 @@ TEST_F(RequestHandlerFilesystemTests, FileRequestOK) { TEST_F(RequestHandlerFilesystemTests, TransferOK) { - EXPECT_CALL(mock_io, WriteDataToFile_t(expected_destination, expected_file_name, nullptr, expected_file_size, true)) + EXPECT_CALL(mock_io, WriteDataToFile_t(expected_destination, expected_file_name, nullptr,(size_t) expected_file_size, true)) .WillOnce( Return( nullptr) diff --git a/producer/api/unittests/test_request_handler_tcp.cpp b/producer/api/unittests/test_request_handler_tcp.cpp index e8e18a2a1878a7ee3c2de3ac058e17b8feb0fdd8..3583c722a223011e8ccf555262f55565d98800eb 100644 --- a/producer/api/unittests/test_request_handler_tcp.cpp +++ b/producer/api/unittests/test_request_handler_tcp.cpp @@ -247,7 +247,7 @@ void RequestHandlerTcpTests::ExpectFailSendHeader(bool only_once) { void RequestHandlerTcpTests::ExpectFailSendData(bool only_once) { int i = 0; for (auto expected_sd : expected_sds) { - EXPECT_CALL(mock_io, Send_t(expected_sd, nullptr, expected_file_size, _)) + EXPECT_CALL(mock_io, Send_t(expected_sd, nullptr,(size_t) expected_file_size, _)) .Times(1) .WillOnce( DoAll( @@ -305,12 +305,12 @@ void RequestHandlerTcpTests::ExpectFailReceive(bool only_once) { void RequestHandlerTcpTests::ExpectOKSendData(bool only_once) { for (auto expected_sd : expected_sds) { - EXPECT_CALL(mock_io, Send_t(expected_sd, nullptr, expected_file_size, _)) + EXPECT_CALL(mock_io, Send_t(expected_sd, nullptr,(size_t)expected_file_size, _)) .Times(1) .WillOnce( DoAll( testing::SetArgPointee<3>(nullptr), - Return(expected_file_size) + Return((size_t) expected_file_size) )); if (only_once) break; } diff --git a/producer/event_monitor_producer/src/main_eventmon.cpp b/producer/event_monitor_producer/src/main_eventmon.cpp index 4191bfbd4648f0642a825a839fdb33a93156d2ac..e780754ad5644028846b042f01991c07ade799a6 100644 --- a/producer/event_monitor_producer/src/main_eventmon.cpp +++ b/producer/event_monitor_producer/src/main_eventmon.cpp @@ -38,7 +38,7 @@ std::unique_ptr<Producer> CreateProducer() { Error err; - auto producer = Producer::Create(config->asapo_endpoint, config->nthreads, + auto producer = Producer::Create(config->asapo_endpoint,(uint8_t) config->nthreads, config->mode, config->beamtime_id, &err); if(err) { std::cerr << "cannot create producer: " << err << std::endl; diff --git a/receiver/src/request.cpp b/receiver/src/request.cpp index 7a857f2f633c927b6da6b84e932c55442ade3e21..9f22f81a27e61f73fb4f3dfae0c3ea2cc664c780 100644 --- a/receiver/src/request.cpp +++ b/receiver/src/request.cpp @@ -13,7 +13,7 @@ Request::Request(const GenericRequestHeader& header, Error Request::PrepareDataBuffer() { if (cache__ == nullptr) { try { - data_buffer_.reset(new uint8_t[request_header_.data_size]); + data_buffer_.reset(new uint8_t[(size_t)request_header_.data_size]); } catch(std::exception& e) { auto err = ErrorTemplates::kMemoryAllocationError.Generate(); err->Append(e.what()); @@ -36,7 +36,7 @@ Error Request::ReceiveData() { if (err) { return err; } - io__->Receive(socket_fd_, GetData(), request_header_.data_size, &err); + io__->Receive(socket_fd_, GetData(),(size_t) request_header_.data_size, &err); if (slot_meta_) { cache__->UnlockSlot(slot_meta_); } diff --git a/receiver/src/request_handler_file_write.cpp b/receiver/src/request_handler_file_write.cpp index dc074ca8ca95262a4108355a7ba28f6cce7590a1..4119f4f97f537bc1993f4a3ef68ce2ad133fd9ae 100644 --- a/receiver/src/request_handler_file_write.cpp +++ b/receiver/src/request_handler_file_write.cpp @@ -19,7 +19,7 @@ Error RequestHandlerFileWrite::ProcessRequest(Request* request) const { auto root_folder = GetReceiverConfig()->root_folder + kPathSeparator + request->GetBeamline() + kPathSeparator + request->GetBeamtimeId(); - auto err = io__->WriteDataToFile(root_folder, fname, (uint8_t*)data, fsize, true); + auto err = io__->WriteDataToFile(root_folder, fname, (uint8_t*)data,(size_t) fsize, true); if (!err) { log__->Debug("saved file of size " + std::to_string(fsize) + " to " + root_folder + kPathSeparator + fname); } diff --git a/receiver/src/statistics.cpp b/receiver/src/statistics.cpp index eac194d0441161e194bcd7adb77ff07c941261d1..e334213850ce9a1d2c965411d9616e39ee6c8324 100644 --- a/receiver/src/statistics.cpp +++ b/receiver/src/statistics.cpp @@ -39,7 +39,7 @@ uint64_t Statistics::GetTotalElapsedMs() const noexcept { void Statistics::SetWriteInterval(uint64_t interval_ms) { - write_interval_ = interval_ms; + write_interval_ = (size_t) interval_ms; } void Statistics::ResetStatistics() noexcept { diff --git a/worker/api/cpp/src/folder_data_broker.cpp b/worker/api/cpp/src/folder_data_broker.cpp index 8115ffaa91716464f9c4b22b7abf2bf6c7ce537d..6214c505f8e68b9216df612f152a4581f8459193 100644 --- a/worker/api/cpp/src/folder_data_broker.cpp +++ b/worker/api/cpp/src/folder_data_broker.cpp @@ -48,7 +48,7 @@ Error FolderDataBroker::GetFileByIndex(uint64_t nfile_to_get, FileInfo* info, Fi return err; } - *info = filelist_[nfile_to_get]; + *info = filelist_[(size_t)nfile_to_get]; if (data == nullptr) { return nullptr; diff --git a/worker/api/cpp/src/tcp_client.cpp b/worker/api/cpp/src/tcp_client.cpp index eff190999c3a87b9ef70e4aeea288ace826151b7..61ed3580cce0b70df72bc1c9341139d55a8881c4 100644 --- a/worker/api/cpp/src/tcp_client.cpp +++ b/worker/api/cpp/src/tcp_client.cpp @@ -68,12 +68,12 @@ Error TcpClient::ReceiveData(SocketDescriptor sd, const FileInfo* info, FileData Error err; uint8_t* data_array = nullptr; try { - data_array = new uint8_t[info->size]; + data_array = new uint8_t[(size_t)info->size]; } catch (...) { connection_pool__->ReleaseConnection(sd); return ErrorTemplates::kMemoryAllocationError.Generate(); } - io__->Receive(sd, data_array, info->size, &err); + io__->Receive(sd, data_array, (size_t)info->size, &err); connection_pool__->ReleaseConnection(sd); if (!err) { *data = FileData{data_array}; diff --git a/worker/api/cpp/unittests/test_tcp_client.cpp b/worker/api/cpp/unittests/test_tcp_client.cpp index 55342f0ac590fd77847e4f246d344cd1802b58ca..eab268a57fb7e6fe04fabe7d62374e28b6707129 100644 --- a/worker/api/cpp/unittests/test_tcp_client.cpp +++ b/worker/api/cpp/unittests/test_tcp_client.cpp @@ -128,7 +128,7 @@ class TcpClientTests : public Test { void ExpectGetData(asapo::SocketDescriptor sd, bool ok) { - EXPECT_CALL(mock_io, Receive_t(sd, _, expected_size, _)) + EXPECT_CALL(mock_io, Receive_t(sd, _,(size_t) expected_size, _)) .WillOnce( DoAll( testing::SetArgPointee<3>(ok ? nullptr : asapo::IOErrorTemplates::kTimeout.Generate().release()), diff --git a/worker/api/python/setup.py.in b/worker/api/python/setup.py.in index 6d61825cfe2fd12b06616132409605cd204ffcfd..fce22d782e0d2364d211eeec477c307ff4a8a8c6 100644 --- a/worker/api/python/setup.py.in +++ b/worker/api/python/setup.py.in @@ -1,6 +1,6 @@ from distutils.core import setup from distutils.core import Extension - +import setuptools from Cython.Build import cythonize import numpy @@ -14,6 +14,14 @@ module = Extension("asapo_worker", ["asapo_worker.pyx"], language="c++", ) -ext_modules = cythonize([module]) +setup(ext_modules=cythonize("asapo_worker.pyx", extra_objects=['@ASAPO_WORKER_LIB@', + '@CURL_LIBRARIES@'], + include_dirs=["@ASAPO_CXX_COMMON_INCLUDE_DIR@","@ASAPO_WORKER_INCLUDE_DIR@",numpy.get_include()], + extra_compile_args=@EXTRA_COMPILE_ARGS@, + extra_link_args=@EXTRA_LINK_ARGS@, + language="c++", + build_dir="build"), + script_args=['build'], + options={'build':{'build_lib':'.'}}) + -setup(ext_modules = ext_modules) diff --git a/worker/tools/folder_to_db/src/folder_db_importer.cpp b/worker/tools/folder_to_db/src/folder_db_importer.cpp index 0116d8a5a79c77155965db0193479540f1e779ff..75f5263fb605696cb720f752ad1cc80537dc7eb0 100644 --- a/worker/tools/folder_to_db/src/folder_db_importer.cpp +++ b/worker/tools/folder_to_db/src/folder_db_importer.cpp @@ -27,7 +27,7 @@ Error FolderToDbImporter::ImportSingleFile(const std::unique_ptr<asapo::Database Error FolderToDbImporter::ImportFilelistChunk(const std::unique_ptr<asapo::Database>& db, const FileInfos& file_list, uint64_t begin, uint64_t end) const { for (auto i = begin; i < end; i++) { - auto err = ImportSingleFile(db, file_list[i]); + auto err = ImportSingleFile(db, file_list[(size_t)i]); if (err != nullptr) { return err; }