Commit Graph

111 Commits

Author SHA1 Message Date
Martchus db4cba4fe5 Add NativeFileStream overloads to CopyHelper
In a future version these overloads could use native APIs such
as POSIX sendfile() to improve the speed. Libraries such as
tagparser will benefit from this change automatically when in
places where NativeFileStream is already used anyways.
2019-08-13 00:32:59 +02:00
Martchus 5bed21c9d2 Improve NativeFileStream
* Expose native file descriptor/handle to be able to
  use native APIs like POSIX sendfile()
* Fix using Boost.Iostreams under Windows
    * Make it compile
    * Workaround issue with append flag
2019-08-13 00:28:25 +02:00
Martchus 6b1a9cec01 Fix build with NativeFileStream for Windows 2019-06-25 10:20:48 +02:00
Martchus b48b2f5c06 Have everything in one top-level namespace 2019-06-10 21:56:46 +02:00
Martchus c701fc25ee Remove directoryEntries() 2019-06-05 23:50:38 +02:00
Martchus 579199fa73 Fix missing std:: in BinaryWriter::writeByte 2019-06-05 23:48:33 +02:00
Martchus 96dda1b862 Prevent use of extra buffer in BinaryReader::readTerminatedString() 2019-06-04 19:40:12 +02:00
Martchus 0f2f98393f Allow inlining more BinaryReader/BinaryWriter functions 2019-06-04 19:27:49 +02:00
Martchus d8a70bb795 Fix implicit signedness conversion 2019-06-04 19:12:08 +02:00
Martchus f95e16bc80 Remove readMultibyteTerminatedString*() functions 2019-06-04 19:10:52 +02:00
Martchus 5a8029692b Fix some Doxygen warnings 2019-06-01 15:07:08 +02:00
Martchus 9a50d2b8df Remove types 2019-04-13 20:33:39 +02:00
Marius Kittler 132f936c57 Remove workaround for GCC Bug 66145 2019-04-13 20:33:39 +02:00
Marius Kittler 73ddc55702 Inline some methods of BinaryReader/BinaryWriter 2019-04-13 20:33:39 +02:00
Marius Kittler 07a74d5fa8 Rename openFromFileDescriptor() to open() 2019-04-13 20:33:39 +02:00
Marius Kittler 4449198711 Remove file handle from NativeFileStream 2019-04-13 20:33:39 +02:00
Martchus 62902f98e8 Remove settingsDirectory() 2019-04-13 20:33:39 +02:00
Martchus da0cf4ff29 Fix build under Android platform >= 24
This alters the ABI but it is ok since with that config
a build was previously impossible anyways.
2019-02-04 00:40:50 +01:00
Martchus ec39e2f5d2 Add Phrases::SubError and Phrases::SubWarning 2018-11-11 22:34:38 +01:00
Martchus 82816d7653 Fix creating new file if using NativeFileStream with ios_base::out 2018-11-02 23:06:30 +01:00
Martchus 7c4cd6ee7d Set permissions to 644 when creating a file via open() 2018-10-07 19:16:41 +02:00
Martchus 7b04bd8ef5 Fix building NativeFileStream with libc++
Note: std::iostream has no default c'tor according to
the standard (although a protected default c'tor is
provided by libstdc++).
2018-10-07 19:13:57 +02:00
Martchus 5356d793fc Make all tests pass under Windows
* Workaround some issues
* Disable some tests (better than not running tests
  at all)
2018-10-03 22:37:55 +02:00
Martchus 8e3c40abb5 Make conversion from multi byte to wide string generic 2018-10-03 21:26:41 +02:00
Martchus c1cc495908 Fix typo 2018-09-30 14:23:37 +02:00
Martchus e023c1af79 Declare throwIoFailure() as [[noreturn]] 2018-09-30 13:56:25 +02:00
Martchus 749eea2ab6 Support NativeFileStream via Boost.Iostreams
So it can also be enabled when not using libstdc++.
2018-09-30 13:55:30 +02:00
Martchus 2186ce15d9 Use using instead of typedef 2018-09-16 00:25:16 +02:00
Martchus 5c9a834236 Implement NativeFileStream under Unix/Linux/Android as well
* Like the Windows implementation this is disabled by default and
  can be enabled via compile-time switch which will affect the ABI.
* Add support for opening a file from a file descriptor.
2018-09-05 00:21:40 +02:00
Martchus 61f7ce90e1 Improve coding style (after running clang-tidy) 2018-08-12 22:09:22 +02:00
Martchus d82e7bb869 Fix warning regarding multi-line comment 2018-08-04 15:20:54 +02:00
Martchus 0c7e7eb91d Fix BinaryReader::read(int32 &one32BitInt) 2018-06-21 23:25:14 +02:00
Martchus 5deb077fe5 Extend Binary{Reader,Writer} to ease binary (de)serialization
To implement reflection-enabled binary (de)serialization
in https://github.com/Martchus/reflective-rapidjson.
2018-06-20 23:07:08 +02:00
Martchus 1aa8b387e1 Apply clang-format 2018-05-08 00:35:51 +02:00
Martchus a4435bbcf3 Fix usage of enable_if with GCC 8
Seems like the trick with the three dots isn't working
with GCC 8 anymore. So let's make it a default template
parameter then.

Not sure whether GCC 8 is here correct and whether this
workaround causes further trouble.
2018-05-07 23:22:43 +02:00
Martchus 64be5bce63 Document the whole story behind catchiofailure.cpp 2018-04-14 14:48:36 +02:00
Martchus 51e87f3740 Don't wrongly detect libstdc++ 6.4 as >= 7
6.4 has been release after 20170502 but still throws
ios_base::failure with old ABI. It is not a good idea
to use the timestamp to distinguish release versions.

Note that _GLIBCXX_RELEASE is not defined in older
GCC versions. But if the macro is not present, we also
know that it will throw the old version.
2018-04-14 14:43:35 +02:00
Martchus 557856dc5c Apply clang-format 2018-04-01 23:08:41 +02:00
Martchus 8bc3cf9615 Add phrase for overriding current line 2018-04-01 23:08:31 +02:00
Martchus 76ee4a158b Add color overload for ANSI escape codes 2018-03-25 20:02:21 +02:00
Martchus e2e4b4641f Add EscapeCodes::Strikethrough 2018-03-25 20:00:01 +02:00
Martchus df7a3ee93c Apply clang-format from LLVM 6 2018-03-24 17:00:30 +01:00
Martchus cdecc48a1d Fix warning about signedness conversion in BinaryReader
Length is expected to be positive
2018-03-04 21:06:29 +01:00
Martchus b375ea80b0 Deprecate BinaryReader::readTerminatedString() methods 2018-01-29 16:30:46 +01:00
Martchus 209a59106e Fix BinaryReader::readMultibyteTerminatedStringXX methods 2018-01-29 16:29:49 +01:00
Martchus d6361e1cfd Fix some mistakes in ANSI escape codes 2018-01-29 16:26:28 +01:00
Martchus fe3929c340 Add phrase for info 2017-11-27 10:25:41 +01:00
Martchus 9829dbe727 Make use of escape codes configurable 2017-10-17 00:00:46 +02:00
Martchus 4011040e57 Add Phrases::EndFlush 2017-10-09 20:43:18 +02:00
Martchus 0b19d0b523 Export std::ostream&operator<<(std::ostream&,Phrases) correctly 2017-10-07 22:52:06 +02:00