Commit Graph

1729 Commits

Author SHA1 Message Date
Aleksandar Fabijanic
0bce71de24
ProcessRunner erases its PID file name #4648 (#4649) 2024-09-11 20:01:52 +02:00
siren186
201d32137b
fix(build): Foundation VS project files (#4660) 2024-09-10 16:52:05 +02:00
Matej Kenda
91c256095f
enh(FileStream): Add FileStreamBuf::resizeBuffer to set larger internal buffers. (#4621)
Larger buffers improve performance significantly when streaming large quantity of data on very fast devices.
2024-09-09 17:33:50 +02:00
Alexander B
710c2a41f3
Using native sendfile from OS for HttpServer (#4351)
* add possibility to use native sendFile from OS for HttpServerResponse
add option POCO_USE_SENDFILE_FOR_HTTPSERVER, default - OFF
add test for HttpServer - testFile
add define fro Config.h POCO_USE_SENDFILE_FOR_HTTPSERVER

* my fail, be carefull with macro and brackets

* replace option POCO_USE_SENDFILE_FOR_HTTPSERVER with compiletime
detected macro POCO_HAVE_SENDFILE
replace types for sendFile with platform depended
wrap possibility of using sendFile with macro, if sendFile doesn't exist
in OS, then all methods don't exist

* remove option POCO_USE_SENDFILE_FOR_HTTPSERVER from ci.yml

* wrap testSendFile in the suite with define POCO_HAVE_SENDFILE

* try fix compile problem with emscripten

* oh, emscripten again

* fix logical error in testSendFile

* fix problem with cmake-specific macro when usinf make-project

* revert types from platform depended to Poco::Int64 and Poco::UInt64
for sendfile
2024-09-01 20:45:33 +02:00
siren186
73df3689bf
enh(Poco::ActiveThreadPool): make it easy to use correctly (#4624)
* make Poco::ActiveThreadPool easy to use (#4544)

* code format

* Fix ThreadSanitizer thread leak error

* enh(ActivePooledThread): Change pointers to references

* enh(ActivePooledThread): remove unused method

* enh(Poco::ActiveThreadPool): Use std::unique_ptr instead of raw pointer

* enh(Poco::ActiveThreadPool): Use C++ static_cast instead of C casting

* enh(Poco::ActiveThreadPool): Use standard containers instead of implementing own

* enh(Poco::ActiveThreadPool): Change pointer to reference

* enh(Poco::ActiveThreadPool): Use smart pointers instead of bare pointers

* enh(Poco::ActiveThreadPool): Fix codeql warning: A stack address which arrived via a  may be assigned to a non-local variable.

* enh(Poco::ActiveThreadPool): More test case

* enh(Poco::ActiveThreadPool): std::optional::value unavailable on earlier macOS versions

* enh(Poco::ActiveThreadPool): Fix compare function for make heap

* enh(Poco::ActiveThreadPool): Add more test case

* enh(Poco::ActiveThreadPool): Add more test case

* enh(Poco::ActiveThreadPool): Code style

* enh(Poco::ActiveThreadPool): Test case

* enh(Poco::ActiveThreadPool): Test case

* enh(Poco::ActiveThreadPool): Fix test case error

* Revert "enh(Poco::ActiveThreadPool): std::optional::value unavailable on earlier macOS versions"

This reverts commit cba4673b47.

* enh(macOS): require min deployment macOS version 10.15 which has full support for C++17

* enh(Poco::ActiveThreadPool): Remove useless "{}"

* enh(Poco::ActiveThreadPool): Rename member variable m_impl to _impl

---------

Co-authored-by: Matej Kenda <matejken@gmail.com>
2024-08-30 11:54:44 +02:00
siren186
aa8084c6a0
enh(ScopedLockWithUnlock): make it more alike std::unique_lock (#4652) 2024-08-29 22:03:33 +02:00
Matej Kenda
7345bf34f9
fix(SimpleFileChannel): unify default "flush" to be false as it is in "FileChannel" (#4591) (#4622) 2024-08-17 07:31:06 +02:00
Aleksandar Fabijanic
669be63134
Allow set enum as json value (#4363) (#4434)
* Allow set enum as json value (#4363)

* fix issue #4341
add testEnum
if you set enum as json value then it will be cast to int

* add behavour for enum into VarHolderImpl
add tests for enum classes with differnent underline integral types

* replace static_cast with convertTo* methods, they can chaeck types and
limits

* fix missing types for convert methods

* fix code style
add testEnumType to the VarTest.cpp, extract() works

* enh(VarHolder): replace ::value and ::type with shortcuts

---------

Co-authored-by: Alexander B <ale.bychuk@gmail.com>
2024-07-29 23:30:51 +02:00
Aleksandar Fabijanic
3656f069e1
enh(ProcessRunner): does not detect launch errors #4482 (#4483)
* enh(ProcessRunner): does not detect launch errors #4482

* enh(File): add absolutePath and existsAnywhere() #4482

* fix windows build and tsan fail

* fix tsan

* fix windows file tests

* comment out some CI env path -related issues

* fix tsan and windows build

* try to fix ci

* ignore ProcessRunner test fail on windows cmake

* enh(File): canExecute throws FileNotFoundException if the file to be executed can't be found in the path.

* Few C++ modernisation changes.

* enh(File): Windows specifics of File::canExecute. Returns false if the file to be executed can't be found using absolutePath.

---------

Co-authored-by: Matej Kenda <matejken@gmail.com>
2024-07-29 20:16:18 +02:00
Matej Kenda
f24547cdcf enh(Poco): Mark deprecated functionality with C++ attributes and resolve internal usage of deprecated functions (#4551)
* enh(poco): Replace deprecated comments with C++ deprecated attribute.

* enh(Poco): Replace some deprecated functionality in Poco sources. (#4426)

* enh(Poco): Replace more deprecated functionality in Poco sources. (#4426)

* fix(CMake): Variable BUILD_SHARED_LIBS must be defined properly to create valid binaries.

* enh: Code improvements done while resolving deprecated functionality (#4426)

* Un-deprecate LocalDateTme (#4426)

* enh(Poco): Replace usage of deprecated functionality with other functions/classes (#4426)

* chore(SSL): temporarily un-deprecate SSL-related functionality (#4426)

* chore(SSL): temporarily un-deprecate old MongoDB protocol functionality (#4426)

* enh(Poco): Minor Hash improvements (#4426)

* enh(Foundation): Compile deprecated hash tests only when POCO_TEST_DEPRECATED is enabled (#4426)

* enh(Net): Compile deprecated Socket::select functionality only when POCO_TEST_DEPRECATED is enabled (#4426)

* enh(Bonjour): Replace deprecated Socket::select with PollSet (#4426)

* enh(Poco): Introduce POCO_DEPRECATED macro to have the ability to disable deprecation warnings in applications (#4426)

* test(ODBC): add few asserts to testStoredProcedureDynamicVar

* fix(ODBC): rename DynamicAny -> DynamicVar in tests

* fix(ODBC): make Dignostics static members inline to prevent explicit instantiation warnings on windows

---------

Co-authored-by: Alex Fabijanic <alex@pocoproject.org>
2024-07-29 08:37:35 +02:00
Alexander B
a6762f51cf
fix #4576 (#4595)
Resolve unresolved macro _NTO_THREAD_NAME_MAX and undeclared array tName
2024-07-24 10:30:32 +02:00
Aleksandar Fabijanic
1edabc19d8 seekg position should be relative to beginning #4413 aleph-us/devs#397 2024-07-18 14:21:30 +02:00
Aleksandar Fabijanic
ed181d99dc
4529 sql logger shutdown (#4530)
* enh(ThreadTest): add join test

* enh(SQLLogger): #4529 (wip)

* enh(SQLChannel): just few C++17 modernisations.

* enh(SQLiteTest): extend unit test to destroy SQL channel while it has pending messages. (#4529)

* enh(ODBC): improve exception descriptions and add string/batch size tests

* feat(SQLChannel): add store-and-forward mode

* fix(DataTest): SQLChannel *nix build and test run #4529

* fix(DataTest): CodeQL warning #4529

* chore(ODBCTest): lower the number of max statements in big batch

* feat(SQLChannel): add flush property #4529

* enh(SQLChannel): use event for interruptible sleep; reduce code duplication with lambda; update comments #4529

* fix(SQLChannel): flush time determination #4529

---------

Co-authored-by: Matej Kenda <matejken@gmail.com>
2024-07-16 20:03:32 +02:00
Andrew Auclair
a82b766628
DateTimeParser Validation and Performance Improvements (#4593) 2024-06-29 22:13:51 +02:00
Matej Kenda
2681b0a3ac enh(zlib): Upgrade bundled zlib to 1.3.1 (#4585, #4586) 2024-06-18 12:10:27 +02:00
Jouke Witteveen
e00b4de672
Allow ADL for swapping Optional values (#4569)
Some types support being swapped but may not have declared their
std::swap overloads when Poco/Optional.h is first included. This is the
case for instance with

    #include <Poco/Optional.h>
    #include <array>

    using Problematic = Poco::Optional<std::array<int, 42> >;

With an unqualified call to swap, preceded by using std::swap, we allow
argument-dependent lookup to find suitable implementations of swap.
2024-06-17 16:52:49 +02:00
Günter Obiltschnig
3092ba5455 enh(Foundation): add Poco::secureClear() for securely clearing a string by first overwriting it with zeroes. 2024-06-11 10:42:49 +02:00
Alexander B
4552df2f2e
fix(Logger): Autodetect line number type from __LINE__ (#4553)
MS Visual Studio can use type long for __LINE__ macro when /ZI
compilation flag is used - https://learn.microsoft.com/en-us/cpp/build/
reference/z7-zi-zi-debug-information-format?view=msvc-170#zi-1
This breaks some poco interfaces, for ex. logger
We should fix type for line number
2024-05-15 13:43:24 +02:00
Matej Kenda
ad72b25ace enh: resolve unit test and few other warnings. 2024-05-08 13:25:56 +02:00
Matej Kenda
065f9a0ff9
feature(FileStream): Allow using Poco::FileStream to wrap arbitrary file handles/descriptors as C++ streams (#4424)
* Allow using Poco::FileStream to wrap arbitrary file handles/descriptors as C++ streams (#3444).

* Allow opening a file descriptor/HANDLE as C++ stream.

* FileStream: treat read from closed pipe as EOF.

* chore(Filestream): conde style (naming)

Co-Authored-By: Alex Fabijanic <alex@pocoproject.org>
Co-Authored-By: Matej Kenda <matejken@gmail.com>

* enh(FileStream): make FileIOS::open a virtual function. (#3444)

* test(FileStream): unit test for FileStream::openHandle (#3444)

* Update CONTRIBUTORS.

* test(FileStream): Win32 unit test fix.

* build(CMake): Require policy minimum version 3.15.

---------

Co-authored-by: Daniel Grunwald <grunwald@axivion.com>
Co-authored-by: Alex Fabijanic <alex@pocoproject.org>
2024-05-08 11:53:43 +02:00
Jeremy Rifkin
b1f28c42eb
Remove zero-width space from start of file 2024-04-20 15:42:17 -05:00
Matej Kenda
bd4560123f Sync differences from branch 'master' into 'devel' after release 1.13.3 2024-04-06 10:21:08 +02:00
Günter Obiltschnig
c8bb5b8cac chore(build): re-generated VS project files 2024-04-03 12:33:13 +02:00
Günter Obiltschnig
cd22900a37 enh(build): vcpkg support, cleanup/consistency 2024-04-03 09:20:14 +02:00
Günter Obiltschnig
f46e496fdc fix(build): Foundation VS project files 2024-04-03 09:01:34 +02:00
Günter Obiltschnig
cbdaa1f369 style 2024-04-03 07:21:30 +02:00
Günter Obiltschnig
4892d97f51 fix(BinaryWriter): warning due to implicit cast 2024-04-03 07:12:03 +02:00
Günter Obiltschnig
a25cdac549 fix(Process): CloseHandle() on an null/invalid handle will throw an exception in the debugger 2024-04-03 07:09:37 +02:00
Aleksandar Fabijanic
0818febed3
3857 os tid (#4519)
* fix(Thread_POSIX): Thread_POSIX.cpp shouldn't convert thread IDs to long #3857;
FreeBSD build errors fixes

* chore(StreamTokenizerTest): fix warnings

* fix(build): FreeBSD config

* fix(ThreadTest): some tests checking nothing; temporatily comment FreeBSD threadStackSize test (segfaults on pthread_join)

* fix(Thread_POSIX): handle emscripten in currentOsTidImpl

* chore: fix emscripten define

* chore: fix some clang warnings; add sanitizer flag to FreeBSD linux compat build config
2024-04-02 23:36:06 +02:00
Günter Obiltschnig
5fec3deeb9 fix(Foundation): Poco::BasicMemoryStreamBuf is missing seekpos() #4492 2024-03-22 08:53:14 +01:00
Alex Fabijanic
e078dbb84e fix(URI): don't lowercase host part if it's a Unix domain socket #4468 2024-03-20 12:33:31 -05:00
Aleksandar Fabijanic
0c333cbe88
DateTimeFormat RFC1036 Sunday name is short (should be long) #4486 (#4487) 2024-03-11 10:26:51 +01:00
Matej Kenda
bf164a85a4
LogFile uses FileOutputStream instead of custom platform implementations (#4431) (#4484) 2024-03-09 12:00:15 +01:00
Pavle Dragisic
8119259c89
Add copyStreamRange to StreamCopier (#4474)
* feat(Foundation): StreamCopier copyStreamRange #4413

* chore(ci): disable instalation of unused databases in odbc job

---------

Co-authored-by: Pavle <pavle@debian-gnu-linux-11.localdomain>
Co-authored-by: Alex Fabijanic <alex@pocoproject.org>
2024-02-28 12:23:42 +01:00
Günter Obiltschnig
37e17092ff chore: fix vs project files 2024-02-19 22:29:26 +01:00
Alex Fabijanic
8460105d5a fix(Any): nullptr_t usage #4465 2024-02-19 10:52:33 +01:00
Aleksandar Fabijanic
88be66972a
AsyncObserver (#4444)
* feat(AsyncObserver): Improve NotificationCenter speed and usability #4414

* fix(Notification): add missing header

* feat(Any): add checkers for holding nullptr #4447

* feat(NotificationCenter): g++ build and refactoring #4414

* fix(Observer): compile errors on some compilers #4414

* fix(NotificationCenter): compile errors #4414

* chore(ParallelSocketAcceptor): remove unnecessary include and using from header

* feat(AsyncNotificationCenter): add #4414

* test(AsyncNotificationCenter): add mixed observer types to the test #4414

* fix(AsyncNotificationCenter): hangs on program exit #4414

* fix(dev): friend not honored, temporarily make private members public

* fix(AsyncNotificationCenter); remove default #4414
2024-02-16 09:34:19 +01:00
Günter Obiltschnig
7ffdcf97d4 fix: make headers parseable by CppParser/PocoDoc 2024-02-06 10:00:48 +01:00
Matej Kenda
695f813eb6 Release 1.13.1: Update release notes, changelog, contributors, version files. (#4440) 2024-02-05 13:43:55 +01:00
Matej Kenda
9aec79719b fix(logs): synchronise log file rotation and compression. 2024-02-01 13:42:38 +01:00
Aleksandar Fabijanic
c7d16b2a7e
4368 oracle odbc tests (#4410)
* feat(format): Add string_view format type spec #4409

* chore(Types): add demangle

* fix(Data): Oracle failing ODBC tests #4368

* fix some CQL and fuzz warnings; add Var::typeName()

* fix(build): -std=c++17 and c11

* fix windows build

* fix(Foundation): test apps vs projects c++17

* chore(build): remove uneeded compiler flag

* fix(VarHolder): number of digits range check for int->float conversion (reported by CIFuzz)

* fix(test): CIFuzz

* fix(CIFuzz): another attempt

* fix(progen): add LanguageStandard (stdcpp17, stdc11); regenerate vs170 projects

* fix(CiFuzz): add int->float precision loss barrier; fix erroneous number of digits logic

* enh(Var): silent loss of precision on int->float conversion #4423

* enh(Var): silent loss of precision on int->float conversion #4423

* chore(build): remove old build files

* chore: fix missing parens warning

* enh(Thread_POSIX): prevent double-joining; add error description to exceptions

* fix(Data): unresolved Column<long> linkage in test

* fix(demangle): determine type name from template parameter; add eror diagnostic for demangling failures

* chore(buildwin): remove old vs versions from build and progen scripts; update documentation

* chore(buildwin): remove leftover closing curly
2024-01-31 22:07:07 +01:00
Matej Kenda
eb51c78305 fix(LogFile): Unify flushing behaviour of WIN32 and STD implementation (#2443) 2024-01-31 14:35:47 +01:00
Matej Kenda
41ce8be229 enh(tests): Ability to enable/disable testing of deprecated functionality. (#4425) 2024-01-30 21:53:42 +01:00
Matej Kenda
6456d03df7 enh(File): Linux, macOS: microsecond precision for file times (create and modification time). 2024-01-30 10:27:44 +01:00
Günter Obiltschnig
d5a5ebc2d7 enh: #3890: Get rid of SingletonHolder 2024-01-30 09:56:27 +01:00
Günter Obiltschnig
33638df51e enh: #4216: use std::string literals 2024-01-30 09:35:35 +01:00
Matej Kenda
d3525945bd test(ThreadPool): unit test for thread pool shutdown when no worker is running. (#2450) 2024-01-29 14:03:24 +01:00
Andrew Auclair
ae341843e9
Implement GetAdaptersAddresses API (#4419)
* Upgrade from GetAdaptersInfo to GetAdaptersAddresses API. The code has been swapped back to a buffer of bytes because the data structure built by GetAdaptersAddresses is a linked list and the returned size is not a multiple of the IP_ADAPTERS_ADDRESSES struct.

* Adding back Poco/UnWindows.h

* Undoing indents.
2024-01-29 09:32:07 +01:00
Aron Budea
ee8935e27a fix: NULL pointer strategy when setting rotation never #4411
Regression from 66e93f98cc.
2024-01-24 09:52:02 +01:00
Aleksandar Fabijanic
6d7a4ffd7b
fix(Thread_POSIX): qnx build error: 'prctl' was not declared in this scope #4404 (#4407) 2024-01-20 00:41:58 +01:00