* 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
* fix(ActiveRecord): missing ActiveRecordLib_API definitions for clang/gcc.
* fix(FPEnvironment): export FPEnvironmentImpl classes (#4393, #3331)
* fix(Crypto): export *Impl classes used from inlines (#4393, #3331)
* fix(Dynamic): explicitly instantiate and export Dynamic::Struct for string and int (-fvisibility=hidden) (#4393, #3331)
* fix(JSON): explicitly instantiate and export SharedPtr for JSON::Array and JSON::Object (-fvisibility=hidden) (#4393, #3331)
* enh(CMake): Set symbol visibility to hidden (#4393, #3331)
* enh(configure): user c++17 standard for iphone, Darwin and ARM-Linux.
* fix(UTF): explicitly instantiate and export 16 and 32-bit strings (-fvisibility=hidden) (#4393, #3331)
* fix(RecordSet): make Extraction.h internal and instantiate RecordsSet::column template functions only for supported types. (-fvisibility=hidden) (#4393, #3331)
* fix(UTF): fix explicitly instantiation on Windows (-fvisibility=hidden) (#4393, #3331)
* enh(CMake): Add github jobs for macOS with visibility set to hidden (#4393, #3331)
* fix(CppParser): Add missing declarations for CppParser_API (#4393, #3331)
* enh(CMake): Enable more options in github jobs for macOS with visibility set to hidden (#4393, #3331)
* fix(MongoDB): Add missing MongoDB_API (#4393, #3331)
* Debian: Use null as device file as console might not be there
* Debian: Add GNU Hurd support
* Debian: Includes not available on Hurd
* Debian: Disable SHA2 test on platforms where it's broken
* Debian: Set POCO_NO_FPENVIRONMENT for armel
---------
Co-authored-by: Jochen Sprickerhof <git@jochen.sprickerhof.de>
* fix(Data::AbstracSessionImpl): protect autocommit feature handlers #4261
* chore(CI): re-enable mysql
* MySQL SessionImpl: make sure autocommit mode is on when session is openend or reset.
* PostgreSQL SessionImpl: reuse autocommit flag of AbstractSessionImpl.
* Github workflow: re-activated linux-gcc-make-postgres
* Fixed indentation in ci.yml
* Fix for DataTest SQLExecutor: use connector
* Data::Session: when parser is not used and autocommit mode is off, assume any SQL statement begins a transaction.
* PostgreSQL: don't use SQL parser (it currently cannot handle placeholders).
* PostgreSQL: added test sessionTransactionNoAutoCommit
* PostgreSQL test suite: removed reference to generic SQLExecutor
* PostgreSQL: fixes for sessionTransactionNoAutoCommit.
* MySQL: added test sessionPoolAndUnicode (from #2801)
* Fixed #define in sql-parser
* Data generic testsuite: support numbered placeholders
* PostgreSQL test suite: added missing include directory to Makefile.
* Attempt to fix PostgreSQL Makefiles
* PostgreSQL testsuite: added include path to Makefile
* PostgreSQL testsuite: added PocoDataTest library to Makefile
* DataTest SQLExecutor::formatSQL: don't use string_view
* PostgreSQL test suite: delegated most tests to Poco::Data::Test
* Makefile: added dependencies on Data-Tests
* Weaken assumptions about async in generic transaction tests
* Makefile: added dependency for Prometheus samples
* Fix deadlock in DataTest SQLExecutor
* PostgreSQL tests SQLExecutor: cleanup
* feat(Data::AbstractSessionImpl): add autoCommit property and tests #4261
* Brought MySQL backend in line with _autoCommit flag of AbstractSessionImpl.
---------
Co-authored-by: Friedrich Wilckens <frwilckens@gmail.com>
Co-authored-by: Friedrich Wilckens <friedrich.wilckens@ingramcontent.com>
* directoryiterator: Fix missing inline
Add missing inline to inline function.
This was found with clang-tidy check: misc-definitions-in-headers
* Convert deprecated throw() to noexcept
throw() has been deprecated in standar in C++17. It has been removed in
C++20. Code still compiles but let's just define these at those should
be.
These where found with clang-tidy check: modernize-use-noexcept
* Fix unnecessary copy initializations
Clang-tidy did find these with check:
performance-unnecessary-copy-initialization
* Fix some strings not references
Looks like these are just missing reference marks.
---------
Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
* Remove _WIN32_WCE macro
Poco now use C++17 and Windows CE does not support it and VS2017 does
also not support it so we can just remove Windows CE code. First remove
all macro usages from our own files.
* Remove WinCE support from build files
Poco now use C++17 and Windows CE does not support it and VS2017 does
also not support it so we can just remove Windows CE code. Remove all
references from build systems / scripts.
* Remove Windows CE related source and header files
Poco now use C++17 and Windows CE does not support it and VS2017 does
also not support it so we can just remove Windows CE code. First remove
all macro usages from our own files.
* Remove wcelibcex folder
Poco now use C++17 and Windows CE does not support it and VS2017 does
also not support it so we can just remove Windows CE code. First remove
all macro usages from our own files.
* Remove rest Windows CE mentions
There where some Windows CE mentions left. Remove those.
* Update Windows CE documentation
We should keep documentation some time so people can find reason for
remove.
---------
Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
Poco now use C++17. We can take some old code away because of that. We
also raise requiments for C++17 so everything works as excpected with
it.
Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
* GH #569: Cherry pick and correct code from devel-experimental.
* GH #569: Add missing timezone codes.
* enh(Foundation): DateTimeParser: stricter checks of timezones, more tests for invalid inputs. (#569)
* enh(Foundation): Small fixes of issues detected by CodeQL
---------
Co-authored-by: Alex Fabijanic <alex@pocoproject.org>
* add sendfile method for streamsocket
* add mswsock.lib to the project files and templates
* remove /DPOCO_NO_AUTOMATIC_LIBS for cmake windows build
* merge from upstream
* merge from upstream
* fix code stile
add NotImplemented exception for unsupported platforms
exculude <sys/sendfile.h> for POCO_EMSCRIPTEN, because https://
github.com/emscripten-core/emscripten/pull/16234
* add iostream include for std::cout
* fix compilation for emscripten (wrap sendfile)
* Merge remote-tracking branch 'jackywoo/add_self_to_path' into 2282-path-self
* fix(Foundation): minor code cleanup. #2282
* enh(Foundation): Windows unit test for Path::self and exception for non-implemented platform.
* fix(Foundation): Path::self() throws SystemException when the path can't be acquired. #2282
Co-developed-by: Jackie Woo <wuchienchao@qq.com>
Co-developed-by: Matej Kenda <matejken@gmail.com>
* Made it possible to use lowercase hex numbers, also when encoding JSON (#3102)
Co-authored-by: Thomas Weyn <Thomas.Weyn@cebir.be>
* fix(JSONString): Remove deprecated toJSON functions #4305
* fix(NumericString): conversions inconsistencies #4304
---------
Co-authored-by: Archipel <thomas@weynwebworks.com>
Co-authored-by: Thomas Weyn <Thomas.Weyn@cebir.be>
Common knowledge in reference counting is "on assignment increment first
then decrement", because "just to be deleted" object could hold last
reference to "just to be assigned" one.
Fixes#3979
* add visitor pattern implementation for Poco::Dynamic::Var
* add changes to Makefile and vcxproj for VarVisitor
* resolve review comments Poco::Dynamic::Var
---------
Co-authored-by: Alexander B <bas524@ya.ru>
* fix(Net): Add Unix socket support on windows #4208
* feat(Net): add abstract local socket support #4208
* fix(PollSet): use localhost socket in PollSet on windows when available #4208
* fix(PollSetTest): comment checking unconnected sockets status (Linux epoll signals them as readable/writable)
/data/mwrep/res/osp/Poco/Foundation/23-0-0-0/include/Poco/Dynamic/VarHolder.h: In instantiation of 'void Poco::Dynamic::VarHolder::checkUpperLimit(const F&) const [with F = signed char; T = unsigned int; typename std::enable_if<std::is_integral<_Tp>::value, bool>::type <anonymous> = true]':
/data/mwrep/res/osp/Poco/Foundation/23-0-0-0/include/Poco/Dynamic/VarHolder.h:361:23: required from 'void Poco::Dynamic::VarHolder::convertSignedToUnsigned(const F&, T&) const [with F = signed char; T = unsigned int]'
/data/mwrep/res/osp/Poco/Foundation/23-0-0-0/include/Poco/Dynamic/VarHolder.h:799:26: required from here
/data/mwrep/res/osp/Poco/Foundation/23-0-0-0/include/Poco/Dynamic/VarHolder.h:405:26: error: comparison of integer expressions of different signedness: 'const signed char' and 'unsigned int' [-Werror=sign-compare]
405 | if (from > std::numeric_limits<T>::max())
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Instead, replace it with std::max_align_t in the Any implementation, as
really we would like to be able to store any object with any alignment
in the small object optimization case. Typically the size and alignment
of std::max_align_t is 8 or 16 on most platforms. Added a static assert
to ensure that this change doesn't result in wasting more unused memory
in case the size of the storage buffer is smaller than this maximum
alignment (which is right now 64, so shall be ok on all platforms).
* Complimentary to #3918
I think that we can use Poco::Mutex and Poco::FastMutex as wrappers for std::recursive_mutex and std::mutex instead of replacing
For using std::*mutexes switch on cmake-option POCO_ENABLE_STD_MUTEX
* add define POCO_ENABLE_STD_MUTEX to the Config.h
remove empty if-else from CMakeLists.txt