843 Commits

Author SHA1 Message Date
Günter Obiltschnig
529783952e enh(Foundation): Windows Eventviewer not able to find PocoFoundation DLL #3304 2025-02-11 12:34:19 +01:00
Matej Kenda
674e2bae97 fix(templates): Corrected explicit template instantiations to avoid multiple instances. 2025-01-14 15:13:49 +01:00
Günter Obiltschnig
e732c50f96 enh: added Poco::ResourceLimitException 2024-11-28 08:32:22 +01:00
Günter Obiltschnig
cecccf7b74 enh(Foundation): add Poco::Process::timesMicroseconds() 2024-11-21 08:50:49 +01:00
Matej Kenda
52959b91da
DB logger sample (#4759)
* sample(DBLogger): New sample to demonstrate DB logging to a file. (#4750)

* sample(DBLogger): Create messages via SQL logger in a thread (#4750)

* sample(DBLogger): Save messages from SQL files to an SQL database (works with SQLite) (#4750)

* chore(Makefile): Data samples depend on PocoUtil (#4750)

* sample(DBLogger): Refactored DBLogger with std::filesystem::directory_iterator and std::thread.

* sample(DBLogger): Add missing include <condition_variable>

* sample(DBLogger): Extracted log scanning and inserting functionality to class SQLLogInserter.

* sample(DBLogger): Create new logging table only when using demo messages option.

* feat(DBLogger): VS projects

* sample(DBLogger): Acquire options from configuration file.

* feat(DBLogger): regenerate VS projects (progen file change)

* sample(DBLogger): Add example DBLogger.properties file.

* sample(DBLogger): Process as much as possible when stopping processing.

* sample(DBLogger): Meaningful defaults in properties file.

* sample(DBLogger): Verify validity of database session on startup.

* sample(DBLogger): Configure demo SQL channel in properties file.

* chore(DBLogger): style and warnings

---------

Co-authored-by: Aleksandar Fabijanic <aleks-f@users.noreply.github.com>
Co-authored-by: Alex Fabijanic <alex@pocoproject.org>
2024-11-18 17:06:20 +01:00
Eric Eichhorn
82c17ea813 fix: aix build #4742 2024-10-23 13:51:06 +02:00
Matej Kenda
c735162abc
fix(NamedEvent): Release semaphore ID in dtor when created with semget (fixes #2971) (#4357)
* fix(NamedEvent): Release semaphore ID in dtor when created with semget (#2971)

* Temporary: trying to solve for non-Linux semaphores.

* chore(NamedEvent): Cleanup of Posix NamedEvent and fixes of unit test.
2024-10-20 10:05:50 +02:00
Aleksandar Fabijanic
e5752a5c6d
File lock (#4734)
* add RWLock implementation for file [posix]

* add implementation FileStreamRWLock for windows
replace FileStreamRWLock to the Process package

* add files FileStreamRWLock* into makefile and vcproj

* remove unnecessary file from makefile

* use absolute path to the TesApp with ProcessRunner

* fix vc*.proj

* add new test files into vc.proj.filters

* fix comments

* fix spelling fo PR #4723
add atomic_bool _locked and check if FileStreamRWLock is locked on
destruction for force unlock

* add atomic header

* File lock (#4740)

* throw error on any errno not only on EDEADLK

* fix function naming

* fix windows build

* fix windows build

---------

Co-authored-by: Alexander B <ale.bychuk@gmail.com>
Co-authored-by: bas524 <bas524@ya.ru>
2024-10-16 23:58:00 +02:00
Aleksandar Fabijanic
71a085c1dc
chore(JSON): add stringify unicode tests #4707 (#4720)
* chore(JSON): add stringify unicode tests #4707

* enh(Mutex): Error code for pthread_mutex_lock failure #4712
2024-10-14 13:48:45 +02:00
Aleksandar Fabijanic
8e958f685f
2808 data nullable (#4729)
* chore(CppUnit): disable MSVC secure warning

* chore(Data): regenerate VS projects

* chore(DataTest): regenerate VS projects

* chore(Data/testsuite): regenerate VS projects

* chore(DataTest): fix VS90 project

* fix(ODBC): Failed to insert Poco::Nullable< Poco::Data::Date> data into MSSQL using ODBC #2808

* chore(Foundation): add Trace to VS project

* chore(Trace): add Trace VS projects #4692

* fix: g++ and clang build #2808
2024-10-12 20:42:39 +02:00
Matej Kenda
c038b52f36 chore(Poco): Resolve a lot of warnings, reported by g++ 13. 2024-10-10 10:41:24 +02:00
Aleksandar Fabijanic
eaabd3ff8d
Stack trace (#4691)
* chore(Trace): add dev env settings

* add(Trace): init add Poco::trace and libbacktrace files

* feat(Exception): generate stack trace if enabled at compile time

* chore(DNSSD): remove binaries from git

* fix(Trace): build

* chore(ci): exclude exception text tests for trace build; add debug test script params

* chore(build): mac (dl)

* chore(cmake): Changes to build Trace with CMake.

* chore(cmake): Changes to build Trace on Windows

* chore(cmake): Improvements to include trace sample.

* chore(cmake): Fixes to properly build/link Trace on Linux

* chore(cmake): add_definitions --> add_compile_definitions

* chore(cmake): Build Trace as static and don't export it.

* chore(make): Link Trace with built-in libbacktrace on Linux

* chore(Trace): remove unnecessary sources for libbacktrace.

* chore(github): enable trace on a few github checks

* chore(cmake): Build Trace with clang++ on Linux.

* chore(cmake): Properly set POCO_ENABLE_TRACE globally when needed.

* fix(cmake): Trace: corrected include for clang on Linux

---------

Co-authored-by: Matej Kenda <matejken@gmail.com>
2024-10-10 10:36:13 +02:00
Matej Kenda
a1efeaa72d
GitHub runner ubuntu 24.04 and resolve some issues (#4727) 2024-10-09 21:53:49 +02:00
Matej Kenda
aab4058bae
Hide zlib and expat libs from the user of Poco libraries (replaces #4579) (#4724)
* foundation: Remove unused ucp.h

Nothing use this and it is not even included in Visual Studio project
files. Remove it so it will not confuse any more.

* foundation: Hide zlib from user

Hide zlib completly from user. This way we do not need to publish zlib.h
or zconfig.h.

As we now have two different pointer initalizing in constructor I choose
to use unique pointers so it is more obvious those are safe. I also
choose to use make_unique which default initalize z_stream_t. This makes
code more readable as we do not need to specifie every field of
z_stream_t. It really should not matter much if we initialize couple
field for nothing. If does we should add comment about that. Still
keeping _buffer without inializing as it is quite big.

* xml: Hide expat and ParserEngine from user

Hide expat completly from user. This way we do not need to publish
expat.h or expat_external.h.

I move also headers to orignal locations so diff is smaller compared to
original.

* chore(Foundation): Compression level constants

---------

Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
2024-10-04 09:50:39 +02:00
Aleksandar Fabijanic
af3b3b1902
Poco::DateTime uses assertions for validation #1540 (#4640)
* Poco::DateTime uses assertions for validation #1540

* fix(DateTime): fix ASAN buf overflow

* fix(DateTime): allow negative year (TODO: 0 Julian day Gregorian year value)
2024-10-03 10:58:13 +02:00
vfjpl
64c751f3a3
Add missing relational operators to VarIterator (#4714)
* Add missing relational operators to VarIterator

* Add tests for relational operators of VarIterator
2024-10-03 10:52:45 +02:00
Matej Kenda
f3975eba96
pcre2: Version 10.44 (#4478) (#4678)
* update(pcre2): Version 10.44 (#4478)

* update(pcre2): Add new file to VS project files (version 10.44) (#4478)

* fix(RegEx): Use generic pcre2 function names (without suffix _8).

* update(pcre2): Fix configuration (define PCRE2_STATIC) (#4478)
2024-10-03 10:49:27 +02:00
Günter Obiltschnig
91b9ae8f29 feat(Foundation): added JSONFormatter, supporting JSON-formatted logging 2024-09-27 20:58:05 +02:00
Günter Obiltschnig
92e06497f5 feat(Foundation): Include utf8proc for enhanced Unicode support (#4710) 2024-09-27 12:46:13 +02:00
Günter Obiltschnig
072e980e1d feat(Foundation): Poco::UUID/UUIDGenerator: add support for Version 6 and 7 UUIDs (#4580) 2024-09-26 13:27:47 +02:00
Günter Obiltschnig
54bc0fcb47 enh(Foundation): #4690: protect against buffer overflow caused by buggy TextEncoding implementations 2024-09-26 10:26:22 +02:00
siren186
71a9bdafbd
4557 ndc thread local (#4682)
* fix(NestedDiagnosticContext): NDC crashed in multi-thread environment

* fix(NestedDiagnosticContext): TestCase output redirect

* enh(NestedDiagnosticContext): replace Poco::ThreadLocal to C++ standard thread_local so that objects can dtor when thread exit

* enh(NestedDiagnosticContext): remove unused header files

* chore(NDCTest): verify dump content

* chore(NDCTest): use __FILE__ macro

* fix(NDCTest): fix codeql warning

* fix(NDCTest): remove temp code

* enh(NestedDiagnosticContext): add nameOnly for dump

---------

Co-authored-by: Alex Fabijanic <alex@pocoproject.org>
2024-09-12 12:26:49 +02:00
siren186
94a693dff5
enh(Path): ensure directory path ends with separator (#4679) 2024-09-12 09:58:12 +02:00
Aleksandar Fabijanic
0bce71de24
ProcessRunner erases its PID file name #4648 (#4649) 2024-09-11 20:01:52 +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
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 cba4673b47761192d118eadf320b92f880071404.

* 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
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
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
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
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
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
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
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
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
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