* 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>
* 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>
* 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>
* 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>
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.
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
* 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>
* 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
* 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
* 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.
* 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)
* fix(platform): MinGW Compile and link errors: undefined reference to `WinMain'
* fix(platform): MinGW compile UUID tests (conflicting UUID defined as GUID in rpcdce.h via windows.h)
* 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>