aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Bump v0.13.0: jau::io changes for robust and simplified ByteInStream usage ↵v0.13.0Sven Gothel2022-06-049-77/+595
| | | | | | | | | | | | | | | | | | sourced as file or via remote URL * `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()`. * Added convenient `jau::io::std::unique_ptr<ByteInStream> to_ByteInStream()` - Returning either a `jau::io::ByteInStream_File`, `jau::io::ByteInStream_URL` or nullptr if `path_or_url` is not supported * Make Java class `org.jau.ney.Uri` standalone, drop dependencies for easier reusage.
* Fix ByteInStream_Recorder::start_recording(): Always reset m_buffer, ↵Sven Gothel2022-06-031-3/+1
| | | | regardless whether its recording or not.
* README v0.12.0v0.12.0Sven Gothel2022-06-031-0/+8
|
* JNI: Add convert_jlist_string_to_vector(), the reverse function of ↵Sven Gothel2022-06-032-0/+23
| | | | convert_vector_string_to_jarraylist()
* helper_jni.*: Add getObjectFieldValue(), getStringFieldValue(), ↵Sven Gothel2022-06-022-0/+52
| | | | getLongFieldValue() and convert_vector_string_to_jarraylist()
* ByteInStream_URL, ByteInStream_Feed: Pass fraction by referenceSven Gothel2022-06-022-4/+4
|
* DONT_USE_RTTI: Explicitly set '-frtti' option if enabled to be sureSven Gothel2022-05-301-0/+5
| | | | Note: STATIC_LINKER_FLAG is unused, as it uses 'ar' and should just obey the object files setup.
* io::read_url_stream(): Fix using std::string -> char * in ERR_PRINTSven Gothel2022-05-301-4/+4
|
* ByteInStream_[URL|Feed]::close(): Only change m_result if still NONE, then ↵v0.11.2Sven Gothel2022-05-291-2/+6
| | | | write SUCCESS (close success, no error)
* README: v0.11.1v0.11.1Sven Gothel2022-05-291-0/+9
|
* test_bytestream01: test22_copy_fed_irq(): interrupt early after 1024 bytes ↵Sven Gothel2022-05-291-6/+3
| | | | already, so we have 2 different irq points.
* io::read_url_stream: Fix content_length (-1 == unknown), add consume_header ↵Sven Gothel2022-05-295-58/+428
| | | | | | | | | | | | | | | | | | | | | | w/ response_code for errors >= 400 and buffer.interruptReader() - curl replies -1 for unknown content_length - also consume the curl header to detect response_code errors >= 400 (404 not found) - in case of an error, we need to interrupt the ringbuffer-reader thread -> buffer.interruptReader(), otherwise the thread would be blocked until timeout and renders application to not be responsive. - interruptReader() has been added for the synchronous- and asynchronous read_url_stream() functions - interruptReader() has been exposed as ByteInStream_Feed::interruptReader() and added to ByteInStream_Feed::set_eof(). - the above is tested via test_iostream01 for synchronous- and asynchronous read_url_stream() functions using a non-existing URL entity - the above is tested via test_bytestream01 for ByteInStream_URL using a non-existing URL entity and for and ByteInStream_Feed having the feeder thread prematurely end transmission.
* ringbuffer: Add interruptReader() if intended to abort writing and to ↵Sven Gothel2022-05-291-5/+41
| | | | interrupt the reader thread's potentially blocked read-access call
* scripts/rebuild-doc.sh: Remove target before rebuilding docSven Gothel2022-05-291-0/+1
|
* README: Add IOUtils to directorySven Gothel2022-05-291-0/+1
|
* README.md: tag v0.11.0v0.11.0Sven Gothel2022-05-291-1/+1
|
* Bump README for v0.11.0Sven Gothel2022-05-291-1/+4
|
* ByteInStream: Add content_size methods and replace exp_size, mark/implement ↵Sven Gothel2022-05-296-314/+739
| | | | all methods noexcept, see Botan related notes; Add test_bytestream01 unit tests.
* test_fileutils01: Add 2nd project_root location for unit tests hosted as ↵Sven Gothel2022-05-291-4/+19
| | | | submodule
* io::read*(): Document API and have 'em all noexcept while catching potential ↵Sven Gothel2022-05-292-32/+55
| | | | exception on consumer_fn call
* file_stats: Retrieve symlink data and have fmode_bits::LINK additionally ↵Sven Gothel2022-05-2911-48/+197
| | | | set; Add follow_sym_link_dirs to visit() and remove()
* Add IOUtils Module/Group; Rename Byte{->In}Stream interface and implementationsSven Gothel2022-05-285-172/+201
|
* Add unit test for jau::fs::get_cwd()Sven Gothel2022-05-281-0/+16
|
* test_iostream01: Test w/ actual file_sizeSven Gothel2022-05-281-0/+6
|
* Fix to_integer(): Clear errno before std::strtoll()Sven Gothel2022-05-281-0/+1
|
* README: Update and fixSven Gothel2022-05-281-3/+12
|
* Integrating byte_stream.* and io_util.* incl. unit test from Elevator ↵Sven Gothel2022-05-287-0/+1791
| | | | | | | | | | project for better encapsulation, test and generic use Fixed: ByteStream_File::check_available(): 'm_bytes_consumed - m_content_size >= n', missed subtracting m_content_size (duh) test_iostream01 uses the fragile std::system() call to start/stop mini_httpd as the http server for testing streaming with curl.
* Add jau::fs::get_cwd()Sven Gothel2022-05-282-0/+15
|
* Add callocator_sec, a secure callocator variant w/ scrubbing before free and ↵Sven Gothel2022-05-281-0/+174
| | | | | | w/o realloc To scrub memory, we use `::explicit_bzero(p, n)`, i.e. non-optomized away bzero.
* callocator: Call anonymous c-func w/ '::', e.g. ::free(..)Sven Gothel2022-05-281-10/+7
|
* Add RuntimeException types: NotImplementedError and IOErrorSven Gothel2022-05-281-0/+13
|
* function_def: Doc: Remove repetitive 'only'Sven Gothel2022-05-231-1/+1
|
* FunctionDef: Complete documentation, refine namesSven Gothel2022-05-232-92/+347
|
* Add Module/Group SysUtilsv0.10.1Sven Gothel2022-05-222-0/+9
|
* Add default ctor to file_stats and dir_item; file_stats::to_string() uses ↵Sven Gothel2022-05-202-1/+13
| | | | decimal string for file size in bytes
* Make `DONT_USE_RTTI` optional CMake flag, default enabled.Sven Gothel2022-05-182-9/+17
|
* fraction_timespec::normalize(): Fix underflow case, allow multiple of ns_per_secSven Gothel2022-05-182-4/+37
|
* fraction*: move test 04.00 -> 03.00 `struct timespec type validation Test 03.00`Sven Gothel2022-05-182-52/+53
|
* fraction*: Use pass by reference consistentlySven Gothel2022-05-181-4/+4
|
* Bump README.mdSven Gothel2022-05-181-0/+5
|
* Add file_util.hpp: File Utilities for platform agnostic C++ handling of file ↵Sven Gothel2022-05-185-0/+795
| | | | stats and directory traversal, etc
* Refining fraction_timespec: Add notion of 'struct timespec' year 2038 issue, ↵Sven Gothel2022-05-183-9/+112
| | | | to_timespec() conversion, to_iso8601_string()
* README: v0.10.0v0.10.0Sven Gothel2022-05-161-1/+1
|
* JaulibSetup.cmake: Also use 'no-rtti' for DEBUG buildSven Gothel2022-05-161-0/+3
|
* Bump README.mdSven Gothel2022-05-151-0/+2
|
* jau::latch: Extend functionality with count_up(), allowing to dynamically ↵Sven Gothel2022-05-152-7/+71
| | | | add *events* to required to complete
* debug.hpp: Fix API doc: Mention 'function name' in outputSven Gothel2022-05-151-8/+8
|
* Fix call_on_release: Skip calling `release_func` if resource has been marked ↵Sven Gothel2022-05-132-3/+15
| | | | | | orderly released, avoid use after free. Detected via valgrind.
* Use `std::shared_ptr<T>` instead of a `naked pointer` for sane lifcycle, see ↵Sven Gothel2022-05-093-180/+387
| | | | | | | | | | shared_ptr_ref<>; Drop all unique_ptr<> funcs; - Store `std::shared_ptr<T>*` in `long nativeInstance` - Introduced `shared_ptr_ref<T>`, managing the `std::shared_ptr<T>*` preserved instances. - All historic TinyB code removed
* ~JNIGlobalRef(): Only show brief error message if ↵Sven Gothel2022-05-091-7/+24
| | | | root_environment::is_terminating() at exit: Reason is that we can't attach to JVM after shutdown initiated.