Mapped jau::io::to_ByteInStream() to
org.jau.nio.ByteInStream.create()
Mapped jau::io::uri to
org.jau.nio.Uri
Add jau::fs::mount_image() and umount()
mount_image() is currently only supported on
Linux
Enable testing on Linux via
-DTEST_WITH_SUDO=ON as it requires root
permissions.
Require to be called as user with capabilities
cap_sys_admin,cap_setuid,cap_setgid+eip or as root via
sudo
Uses fork() to have child-process seteuid(0) if not already for
loop-control and mount only.
Update Catch2 to v3.0.1, generated 2022-05-17 and adopt build and
tests
Use libcurl optional, enable via cmake option
-DUSE_LIBCURL=ON and remove dependencies if unused.
libunwind default is disabled (must be explicitly
enabled via -DUSE_LIBUNWIND=ON)
Fix issues with gcc 9.4 used on Ubuntu 20.04
file_util, namespace jau::fs
file_stats fully maps symbolic links via
link_target() and exposing stored
link_target_path()
dir_item reduces . and .. in
given path, drop taking splitted dirname and basename arguments
fmode_{bits->t}: Add full POSIX protection bit
support
file_stats: Use statx() or { lstat64() and stat64() },
maintain retrieved field_t, contain the linked-target as
std::shared_ptr<file_stats>.
Add dirname() and basename()
Add fmode_t POSIX protection bits to mkdir() and
touch()
Add traverse_event as path_visitor()
argument and traverse_options - both supporting visit();
remove() uses traverse_options
Add jau::fs::copy() with [recursive,
follow_symlinks, overwrite,
preserve_all, sync] copy_options,
using visit()
Move JavaVM Group to namespace jau::jni
Security
ringbuffer<T>: Add clear() argument bool
zeromem=false, allowing to explicitly zero memory if used w/o
sec_mem
ByteInStream_URL, ByteInStream_Feed: Zero
ringbuffer at close()/dtor() to be on par with
ByteInStream_SecMemory and ByteInStream_File +
secure_vector<T> usage.
Add secure_string typedef along with
secure_vector using ::explicit_bzero()jau::callocator_sec<T>
Add jau::io::uri to Group IOUtils
0.13.0
string_util.hpp: Add jau::to_string()
support for std::string and std::string_view
as well as for std::vector<T> lists
Add namespace jau::io::uri, limited URI scheme
functionality to query whether implementation may handle the protocol.
Query libcurl supported protocols at runtime
Test for local file protocol
Test whether protocol in given uri is supported by
libcurl
jau::io::read_url_stream(), sync and async, return
immediately if protocol in given url is not supportet
async variant returns
std::unique_ptr<std::thread>, where a nullptr is used
for no support
jau::io::ByteInStream_File recognizes the local file
protocol and cuts off file:// is used.
Fix: Recognition of a non-existing path, unaccessbile path or
non-file case properly
jau::io::ByteInStream_URL recognizes a non supported
protocol via async jau::io::read_url_stream().
Add sleep_for(), sleep_until() and wait_for() & wait_until()
using fraction, fraction_timespec, as well as choice over clock
type.
Introduce new types: fraction, fraction_timespec; its constants
& literals as well adoption in latch, ringbuffer, service_runner and
simple_timer.
int_math.hpp: Add Integer overflow aware arithmetic, use Integer
Overflow Builtins if available (GCC + Clang)
Refine sign(), invert_sign(), abs() and digits10() template funcs:
Better type and signed/unsigned variant for invert_sign() and abs()
Add stdint literals in namespace jau::int_literals,
e.g. 3_i64 for (int64_t)3 for all stdint
signed and unsigned 8-64 bit wide types
Always add libatomic (will be required for new fraction)
0.8.6
Enhance service_runner and fix
simple_timer, i.e. end waiting if stopped
Disable libunwind on
armhf/arm32 for stability, see
USE_LIBUNWIND cmake variable above
OpenJDK 17 compatible w/o warnings, use if available via build
scripts.
0.8.0
Enhance service_runner: fix using
service_shutdown_timeout_ms(), add join(),
remove service_end_post_notify (leak),
Add simple_timer: A simple timer for timeout and
interval applications, using one dedicated service_runner
thread per instance.
Fix EUI48[Sub] ctor with byte-ptr: Don't swap if given
byte_order == endian::native, we store in native order
uint[128,192,256]_t: Add ctor with given byte array in
native byte order, useful for const initialization
SIGSEGV workaround in jau::get_backtrace(..) of
libunwind [1.3 - 1.6.2]'s unw_step(..) using g++ 10.2.1
aarch64: Disable Optimization
0.7.12
git version info: Added post-tag: VERSION_COMMITS and
VERSION_SHA1_SHORT. VERSION_LONG reflects
post-tag and dirty. Added mapping to project version var-names.