* 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>
* fix#4536
I've add transaction isolation support for SQLite
Warning! SQLite transactions are [serializable by design](https://
www.sqlite.org/isolation.html) but my implementation retuns false in
function hasTransactionIsolation and throw an exception in
setTransactionIsolation
* disable shared cache in TearDown()
* chore(doc): reword documentation
* we should waitresult of select before rollback (#4718)
---------
Co-authored-by: Alexander B <ale.bychuk@gmail.com>
* 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>
* 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>
* 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)
On today's `gcc-15` poco fails to build as:
In file included from /build/source/Data/include/Poco/Data/Statement.h:27,
from /build/source/Data/include/Poco/Data/Session.h:23,
from /build/source/Data/include/Poco/Data/ArchiveStrategy.h:22,
from /build/source/Data/src/ArchiveStrategy.cpp:15:
/build/source/Data/include/Poco/Data/SimpleRowFormatter.h:114:21: error: declaration of 'std::_Require<std::__not_<std::__is_tuple_like<_Tp> >, std::is_move_construc
tible<_Tp>, std::is_move_assignable<_Tp> > std::swap(_Tp&, _Tp&) noexcept [with _Tp = Poco::Data::SimpleRowFormatter; _Require<__not_<__is_tuple_like<_Tp> >, is_move_constructible<_Tp>, is_move_assignable<_Tp> > = void]' has a different exception specifier
114 | inline void swap<Poco::Data::SimpleRowFormatter>(Poco::Data::SimpleRowFormatter& s1,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /nix/store/...-gcc-15.0.0/include/c++/15.0.0/bits/new_allocator.h:36,
from /nix/store/...-gcc-15.0.0/include/c++/15.0.0/x86_64-unknown-linux-gnu/bits/c++allocator.h:33,
from /nix/store/...-gcc-15.0.0/include/c++/15.0.0/bits/allocator.h:46,
from /nix/store/...-gcc-15.0.0/include/c++/15.0.0/string:43,
from /build/source/Foundation/include/Poco/Foundation.h:94,
from /build/source/Data/include/Poco/Data/Data.h:23,
from /build/source/Data/include/Poco/Data/ArchiveStrategy.h:21:
/nix/store/...-gcc-15.0.0/include/c++/15.0.0/bits/move.h:214:5: note: from previous declaration 'std::_Require<std::__not_<std::__is_tuple_like<_Tp> >, std::is_move_constructible<_Tp>, std::is_move_assignable<_Tp> > std::swap(_Tp&, _Tp&) noexcept (false) [with _Tp = Poco::Data::SimpleRowFormatter; _Require<__not_<__is_tuple_like<_Tp> >, is_move_constructible<_Tp>, is_move_assignable<_Tp> > = void]'
214 | swap(_Tp& __a, _Tp& __b)
| ^~~~
Possibly because `SimpleRowFormatter` does not have constructors and
assignment operators that involve rvalue references?
Updated `noexcept` condition. Fixes the build on` gcc-15`. Still
compiles on `gcc-13`.