ObjFW  History of src/OFStream.h of cc3ad3ddd3744a81

History of file src/OFStream.h at check-in cc3ad3ddd3744a81

2024-10-27
17:45
OFStream: Rework blocks-based API file: [f7c20b4fad] check-in: [9808f35fb3] user: js, branch: trunk, size: 72706 [annotate] [blame] [check-ins using] [diff]
2024-10-19
11:38
Add -[OFStream asyncReadString] file: [cb4dc06f17] check-in: [95e2910172] user: js, branch: trunk, size: 57533 [annotate] [blame] [check-ins using] [diff]
11:09
Add -[OFStream tryReadStringWithEncoding:] file: [cca724d404] check-in: [6e91e313a5] user: js, branch: trunk, size: 53492 [annotate] [blame] [check-ins using] [diff]
2024-06-17
21:08
Always use <ObjFW/ObjFW.h> in documentation file: [47b9cf3e36] check-in: [164f2fb4bf] user: js, branch: trunk, size: 51834 [annotate] [blame] [check-ins using] [diff]
2024-04-14
11:51
OFStream: Add missing newline in documentation file: [bfdbdea6e5] check-in: [2d5166ab47] user: js, branch: trunk, size: 51840 [annotate] [blame] [check-ins using] [diff]
2024-04-03
02:16
Change license to LGPLv3 only file: [0ff1cfaec5] check-in: [7413a728a7] user: js, branch: trunk, size: 51837 [annotate] [blame] [check-ins using] [diff]
2024-02-27
00:57
OFStream: Minor documentation fix file: [5a98180f2e] check-in: [f111a22ede] user: js, branch: 1.0, size: 51240 [annotate] [blame] [check-ins using] [diff]
00:57
OFStream: Minor documentation fix file: [9aa2149368] check-in: [ed4319fab0] user: js, branch: trunk, size: 51629 [annotate] [blame] [check-ins using] [diff]
2024-02-03
11:41
Update copyright file: [745393b39b] check-in: [7324ec8590] user: js, branch: 1.0, size: 51232 [annotate] [blame] [check-ins using] [diff]
09:08
OFStream: Documentation fix file: [aab01b4829] check-in: [92585439fc] user: js, branch: 1.0, size: 51232 [annotate] [blame] [check-ins using] [diff]
09:08
OFStream: Documentation fix file: [2e6542e905] check-in: [2bbd2a4548] user: js, branch: trunk, size: 51621 [annotate] [blame] [check-ins using] [diff]
08:53
Fix typos in documentation found by spell checker file: [33a0ad2c84] check-in: [19f3948a26] user: js, branch: 1.0, size: 51319 [annotate] [blame] [check-ins using] [diff]
08:49
Fix typos in documentation found by spell checker file: [5cd04837f8] check-in: [f97dc452b1] user: js, branch: trunk, size: 51708 [annotate] [blame] [check-ins using] [diff]
2024-01-02
17:17
Update copyright file: [80480e6665] check-in: [26ddd2e4e4] user: js, branch: trunk, size: 51698 [annotate] [blame] [check-ins using] [diff]
2023-10-15
12:32
Add -[OFStream lowlevelIsAtEndOfStream]

This allows for a much cleaner solution to avoid the internal read
buffer of e.g. a TLS connection never being processed while waiting for
a delimiter. file: [bdf949a291] check-in: [a61e0594b4] user: js, branch: trunk, size: 51698 [annotate] [blame] [check-ins using] [diff]

2023-08-25
12:25
Minor documentation improvement file: [99614e7bb2] check-in: [29bbfc3e47] user: js, branch: trunk, size: 51309 [annotate] [blame] [check-ins using] [diff]
2023-01-06
09:04
Update copyright file: [5e35ef7c78] check-in: [8939cbdb52] user: js, branch: trunk, size: 51238 [annotate] [blame] [check-ins using] [diff]
2022-10-17
23:27
Document more exceptions file: [a93512463b] check-in: [d92d094980] user: js, branch: trunk, size: 51238 [annotate] [blame] [check-ins using] [diff]
2022-09-24
17:03
Document more exceptions file: [2f37969ef7] check-in: [5202319334] user: js, branch: trunk, size: 49466 [annotate] [blame] [check-ins using] [diff]
2022-08-30
01:34
OFStream: readTillDelimiter -> readUntilDelimiter file: [3c7c1feb54] check-in: [30492a6b61] user: js, branch: trunk, size: 43594 [annotate] [blame] [check-ins using] [diff]
01:29
OFStream: A few minor documentation fixes file: [328ae5c229] check-in: [11627c18de] user: js, branch: trunk, size: 43586 [annotate] [blame] [check-ins using] [diff]
2022-06-12
08:50
Remove unneeded arguments from blocks file: [2b820d15bb] check-in: [b489d6188d] user: js, branch: trunk, size: 43560 [annotate] [blame] [check-ins using] [diff]
2022-02-12
07:46
Update copyright file: [b3e894dafd] check-in: [1a86b8175b] user: js, branch: trunk, size: 43726 [annotate] [blame] [check-ins using] [diff]
2022-01-28
19:34
Don't assume EWOULDBLOCK and EAGAIN are the same file: [6e060142f4] check-in: [d9586ed175] user: js, branch: trunk, size: 43726 [annotate] [blame] [check-ins using] [diff]
2021-12-17
17:53
OFStream: Remove methods for typed/swapped arrays

Those are never used in practice. file: [d8c22a2ea2] check-in: [808601a0cc] user: js, branch: trunk, size: 43637 [annotate] [blame] [check-ins using] [diff]

2021-11-07
19:44
Let -[OFStream flushWriteBuffer] return a bool file: [cc6c0f009b] check-in: [7faf776e26] user: js, branch: trunk, size: 53015 [annotate] [blame] [check-ins using] [diff]
2021-11-06
15:57
OFStream: New write API

The old write API made it too easy to lose bytes when a stream is set to
non-blocking mode. The new API always throws when not all bytes were
written, which forces handling the number of bytes being written being
smaller than the number of bytes requested to be written. file: [0bf8c49ae4] check-in: [d1d36ae522] user: js, branch: trunk, size: 52835 [annotate] [blame] [check-ins using] [diff]

2021-05-24
22:37
OFStream.h: Remove double nonatomic file: [90ab6262e8] check-in: [4d656c340e] user: js, branch: trunk, size: 51213 [annotate] [blame] [check-ins using] [diff]
2021-04-17
03:37
of_run_loop_mode_t -> OFRunLoopMode file: [b19f1dd539] check-in: [b480ef54db] user: js, branch: new-naming-convention, size: 51224 [annotate] [blame] [check-ins using] [diff]
03:21
Rename all blocks file: [478b508e50] check-in: [c4e0e56fa3] user: js, branch: new-naming-convention, size: 51274 [annotate] [blame] [check-ins using] [diff]
02:10
of_string_encoding_t -> OFStringEncoding file: [68d6326585] check-in: [255f21fb3d] user: js, branch: new-naming-convention, size: 51386 [annotate] [blame] [check-ins using] [diff]
01:32
of_unichar_t -> OFUnichar file: [b9dd2fdfa3] check-in: [2d3790870d] user: js, branch: new-naming-convention, size: 51460 [annotate] [blame] [check-ins using] [diff]
2021-03-07
02:36
Style change: Allow more than 1 argument per line

This is only migrating some places, others will be migrated as they are
touched. file: [7fe1e202cf] check-in: [a0fd103a0b] user: js, branch: trunk, size: 51472 [annotate] [blame] [check-ins using] [diff]

2021-01-02
22:04
Update copyright file: [d7b8ceded5] check-in: [374e1a1bfa] user: js, branch: trunk, size: 51576 [annotate] [blame] [check-ins using] [diff]
2020-10-03
11:35
Use /** */ instead of /*! */ for documentation file: [c1d35377bc] check-in: [163a4a5a2e] user: js, branch: trunk, size: 51665 [annotate] [blame] [check-ins using] [diff]
2020-09-26
21:58
Don't require __COUNTER__ for OF_RESERVE_IVARS

__COUNTER__ does not exist in GCC 4.2, and Apple GCC 4.2 is still the
newest compiler available for macOS 10.5. file: [8fe05ff320] check-in: [ef614a225d] user: js, branch: trunk, size: 51665 [annotate] [blame] [check-ins using] [diff]

2020-05-06
00:32
Improve names of several properties file: [cac7e1c78f] check-in: [bc67e98833] user: js, branch: trunk, size: 51655 [annotate] [blame] [check-ins using] [diff]
2020-04-29
23:59
Add OFSPXSocket file: [849d120fde] check-in: [857f8edc09] user: js, branch: trunk, size: 51718 [annotate] [blame] [check-ins using] [diff]
2020-04-26
19:39
Remove redundant arguments from blocks

Arguments that can just be captured by the block don't need to be
repeated as an argument. A lot of arguments passed to a delegate are
therefore not needed for a block. file: [854f995c5b] check-in: [d7ddb3dbc7] user: js, branch: trunk, size: 51753 [annotate] [blame] [check-ins using] [diff]

16:21
Add OFSequencedPacketSocket

This is intended for SCTP and SPX. file: [190450d179] check-in: [e5b2ee56ff] user: js, branch: trunk, size: 52150 [annotate] [blame] [check-ins using] [diff]

2020-04-19
15:24
Several documentation improvements file: [24a98018d3] check-in: [f27905c199] user: js, branch: trunk, size: 52154 [annotate] [blame] [check-ins using] [diff]
2020-01-02
01:51
Update copyright file: [7421ae1300] check-in: [c7f0229795] user: js, branch: trunk, size: 51419 [annotate] [blame] [check-ins using] [diff]
2019-09-29
20:53
Reduce ivar scopes file: [0663f8f188] check-in: [e0a330b377] user: js, branch: trunk, size: 51416 [annotate] [blame] [check-ins using] [diff]
19:48
Documentation fixes file: [b92e531fc2] check-in: [3be624ded9] user: js, branch: trunk, size: 51427 [annotate] [blame] [check-ins using] [diff]
19:35
Either restrict subclassing or reserve ivar space

This allows ABI stability with the fragile ABI. file: [a643169c96] check-in: [496695d778] user: js, branch: trunk, size: 51523 [annotate] [blame] [check-ins using] [diff]

2019-03-08
00:35
Use dot syntax file: [437fb045ff] check-in: [bceb7ed4c9] user: js, branch: trunk, size: 51502 [annotate] [blame] [check-ins using] [diff]
2019-01-03
19:13
Update copyright file: [ea84bca9b5] check-in: [0509d7a844] user: js, branch: trunk, size: 51604 [annotate] [blame] [check-ins using] [diff]
2018-12-18
21:17
Use OFData instead of a buffer for async UDP sends

This avoids the entire problem of keeping the buffer alive until the
send finished. file: [123c708db9] check-in: [0f3ae90eef] user: js, branch: trunk, size: 51598 [annotate] [blame] [check-ins using] [diff]

16:41
Add -[OFStream asyncWriteString:] file: [b1f1d40d96] check-in: [6b35b78f94] user: js, branch: trunk, size: 51543 [annotate] [blame] [check-ins using] [diff]
14:14
Use OFData instead of a buffer for async writes

This avoids the entire problem of keeping the buffer alive until the
write finished. file: [a9818d561e] check-in: [f218986f51] user: js, branch: trunk, size: 46548 [annotate] [blame] [check-ins using] [diff]

2018-12-11
22:57
Include an exception in delegate methods

Otherwise, there would be two methods for every operation: One for
success and one for failure. It also makes it easy to forget about
handling failure, so it's better to always pass an optional exception. file: [ba57cd6e80] check-in: [064dbe5127] user: js, branch: trunk, size: 47916 [annotate] [blame] [check-ins using] [diff]

2018-12-08
16:53
Separate error methods for async method delegates file: [ea19b2f833] check-in: [2b6a12065e] user: js, branch: trunk, size: 48228 [annotate] [blame] [check-ins using] [diff]
16:05
OFTCPSocket: Use a delegate for async operations file: [c566a77887] check-in: [27153bf8cf] user: js, branch: trunk, size: 47900 [annotate] [blame] [check-ins using] [diff]
2018-12-07
01:33
OFStream: Use a delegate for async operations

The target / selector approach had several drawbacks:

* It was inconvenient to use, as for every read or write, a target,
selector and context would need to be specified.
* It lacked any kind of type-safety and would not even warn about using
a callback method with the wrong number of parameters.
* It encouraged using a different callback method for each read or
write call, which results in code that is hard to follow and also
slower (as it needs to recreate the async operation with a new
callback every time). file: [aea2292c00] check-in: [d16ad96cbd] user: js, branch: trunk, size: 47919 [annotate] [blame] [check-ins using] [diff]

2018-09-24
22:14
OFStream: Allow specifying the run loop mode file: [e5256c18dc] check-in: [cf93ca4b21] user: js, branch: trunk, size: 51817 [annotate] [blame] [check-ins using] [diff]
2018-09-23
15:19
OFTCPSocket: SOCKS5 support for async connect file: [bf33920a4c] check-in: [228ac2af9b] user: js, branch: trunk, size: 41734 [annotate] [blame] [check-ins using] [diff]
2018-08-26
12:46
Initial support for async connect without threads file: [cfbdba3736] check-in: [1e79c0a969] user: js, branch: trunk, size: 41696 [annotate] [blame] [check-ins using] [diff]
2018-02-18
00:20
OFHTTPClient: Add a callback for the request body

This is in preparation for removing the body from OFHTTPRequest.
Having it as OFData that is part of the OFHTTPRequest was a bad idea, as
it does not allow streaming. file: [99b8fab82d] check-in: [8681bba25e] user: js, branch: trunk, size: 41706 [annotate] [blame] [check-ins using] [diff]

2018-01-03
19:49
Update copyright notice file: [983b16c830] check-in: [7e5c81e186] user: js, branch: trunk, size: 41592 [annotate] [blame] [check-ins using] [diff]
2017-11-19
11:04
Do not conform to OFReadyFor*Observing by default

Instead of letting OFStream conform to it, which itself does not really
conform to it, let all the subclasses that actually do conform to it. file: [cfa0bd1248] check-in: [69749b6a5b] user: js, branch: trunk, size: 41569 [annotate] [blame] [check-ins using] [diff]

2017-11-18
18:50
Documentation: Use @brief for all properties file: [9a95fdcb49] check-in: [cc3ad3ddd3] user: js, branch: trunk, size: 42251 [annotate] [blame] [check-ins using] [diff]
17:45
Fix several Doxygen warnings file: [12097ea11a] check-in: [31e6b7ce9c] user: js, branch: trunk, size: 42209 [annotate] [blame] [check-ins using] [diff]
2017-10-29
21:58
Convert methods to properties where appropriate

This improves Swift compatibility. file: [7eb7553262] check-in: [f3ccf14461] user: js, branch: trunk, size: 42215 [annotate] [blame] [check-ins using] [diff]

2017-09-26
22:01
Many nullability fixes file: [1cb5dc2e2d] check-in: [319709fff1] user: js, branch: 0.90, size: 39201 [annotate] [blame] [check-ins using] [diff]
21:53
Many nullability fixes file: [af410db94f] check-in: [52011fbfd6] user: js, branch: trunk, size: 42776 [annotate] [blame] [check-ins using] [diff]
2017-09-24
17:35
OFUDPSocket: Add support for async sending file: [66d00ee4d4] check-in: [842c55dd83] user: js, branch: trunk, size: 42740 [annotate] [blame] [check-ins using] [diff]
16:34
Minor documentation fix file: [62644beb20] check-in: [a0394db776] user: js, branch: trunk, size: 42633 [annotate] [blame] [check-ins using] [diff]
15:13
OFStream: More flexible repeating async writes file: [c63c26554d] check-in: [1084b23ef7] user: js, branch: trunk, size: 42318 [annotate] [blame] [check-ins using] [diff]
13:15
Return a bool from async write handlers

This allows performing another write with the same buffer, length and
callback, which is useful for asynchronously writing in chunks. file: [7472119df2] check-in: [47db5636d7] user: js, branch: trunk, size: 41700 [annotate] [blame] [check-ins using] [diff]

12:24
OFStream: Add support for async writes file: [2480f89bb9] check-in: [481225349f] user: js, branch: trunk, size: 41460 [annotate] [blame] [check-ins using] [diff]
11:24
Change type for async exceptions to id file: [1ebe98026c] check-in: [f8498bb114] user: js, branch: trunk, size: 39301 [annotate] [blame] [check-ins using] [diff]
2017-09-23
22:07
Support for passing a context to async IO handlers file: [39526e7198] check-in: [958da109d3] user: js, branch: trunk, size: 39379 [annotate] [blame] [check-ins using] [diff]
2017-07-22
20:50
Split OFDataArray into OFData and OFMutableData file: [fc84511d6f] check-in: [c8f7b90082] user: js, branch: trunk, size: 39165 [annotate] [blame] [check-ins using] [diff]
2017-05-07
20:10
Small code style change

Casts are now written like types in variable declarations. file: [dce22ba2cb] check-in: [4af49a13c3] user: js, branch: trunk, size: 39288 [annotate] [blame] [check-ins using] [diff]

2017-02-04
21:37
OFRunLoop: Refactor read queue handling file: [a07511dad6] check-in: [6ae356af85] user: js, branch: trunk, size: 39209 [annotate] [blame] [check-ins using] [diff]
18:23
Minor documentation improvements file: [b9b7b417fc] check-in: [c6d77093f7] user: js, branch: trunk, size: 39583 [annotate] [blame] [check-ins using] [diff]
17:45
Fix typos in comments and strings found by aspell file: [a1ad529878] check-in: [5a31a537a1] user: js, branch: trunk, size: 39578 [annotate] [blame] [check-ins using] [diff]
2017-01-09
17:36
Update copyright

Forgot to add 2017, even though I already did quite some changes in
2017. file: [2a211758fc] check-in: [44f45c2e35] user: js, branch: trunk, size: 39564 [annotate] [blame] [check-ins using] [diff]

2016-06-07
22:56
Add support for reusing OFStreams after close

Right now, this is only useful for OFTCPSocket, as this is the only
class so far not establishing the stream in the init method. However,
this adds the general infrastructure to allow reuse to all subclasses of
OFStream. file: [c3708c076a] check-in: [1de551cb5f] user: js, branch: trunk, size: 39558 [annotate] [blame] [check-ins using] [diff]

2016-05-16
11:14
Minor documentation improvements file: [38cc11b62a] check-in: [5a3133f9d8] user: js, branch: trunk, size: 39489 [annotate] [blame] [check-ins using] [diff]
2016-05-05
19:54
OFStream: Cache small reads to reduce syscalls

In some situations, this is 50x faster. file: [f5d7e92017] check-in: [a7d66e7ab2] user: js, branch: trunk, size: 39462 [annotate] [blame] [check-ins using] [diff]

2016-01-03
00:43
Update copyright

While at it, also update the mail address. file: [01d31991cc] check-in: [cec0f072f8] user: js, branch: 0.8, size: 39587 [annotate] [blame] [check-ins using] [diff]

00:41
Update copyright

While at it, also update the mail address. file: [87f1020ea1] check-in: [2a27cf3000] user: js, branch: trunk, size: 39442 [annotate] [blame] [check-ins using] [diff]

2015-11-29
11:43
Make properties a requirement and clean up code

This increases the required GCC version from 4.0 to 4.6 (exception:
Apple GCC, which already supports this with >= 4.0 starting with OS X
10.5). Since even GCC 4.6 is really old by now, there is no point in
still supporting something even older and making the code ugly because
of that. While some hardware and OS support was dropped from GCC 4.6
compared to GCC 4.0, there is nothing in there that would be an
interesting target with the exception of BeOS maybe - but a port to BeOS
can also be achieved using the Haiku support. The other dropped OSes are
mostly old versions of OSes while newer ones are still being supported
(and those newer versions of those OSes still support the same
hardware). file: [ceee33b1c7] check-in: [48980f2297] user: js, branch: trunk, size: 39438 [annotate] [blame] [check-ins using] [diff]

2015-11-28
19:47
Minor documentation improvements file: [eaef7f1c66] check-in: [650b4be224] user: js, branch: trunk, size: 39637 [annotate] [blame] [check-ins using] [diff]
2015-11-21
18:35
Remove OF_NULLABLE / OF_NONNULL

Now that Clang switched to use _Nullable and _Nonnull instead of
__nullable / __nonnull, there is no longer a conflict with glibc, which
means we can just define _Nullable / _Nonnull to nothing if they are not
understood by the compiler (which did not work with __nullable /
__nonnull due to this conflict).

This also defines _Null_unspecified to nothing if unavailable. file: [4dfb1471ce] check-in: [d526d938d7] user: js, branch: trunk, size: 39577 [annotate] [blame] [check-ins using] [diff]

2015-06-14
10:45
Add OF_NONNULL / OF_NULLABLE and use that instead

Using __nonnull directly doesn't work on systems using glibc, as glibc
defines __nonnull as a parameterized define. While this does not fix the
problem of Clang introducing __nonnull even though it conflicts with
glibc, this at least means it's possible again to compile things with
versions of Clang that don't support __nonnull on systems with glibc. file: [66ebb7f50c] check-in: [b7097a67b6] user: js, branch: trunk, size: 39583 [annotate] [blame] [check-ins using] [diff]

2015-06-13
22:26
Add support for and use the new nullability file: [af476e35d4] check-in: [9e76144ef8] user: js, branch: trunk, size: 39580 [annotate] [blame] [check-ins using] [diff]
2015-04-26
08:10
Minor improvements, no functional change file: [4c3277f2ac] check-in: [57b6030b14] user: js, branch: trunk, size: 39378 [annotate] [blame] [check-ins using] [diff]
2015-01-19
22:29
OFStream: writeBufferEnabled -> writeBuffered file: [b3138c427b] check-in: [afb42d363d] user: js, branch: trunk, size: 39376 [annotate] [blame] [check-ins using] [diff]
2015-01-03
20:57
Update copyright file: [89a2ac053e] check-in: [cfd374b906] user: js, branch: trunk, size: 39401 [annotate] [blame] [check-ins using] [diff]
2014-08-18
10:53
OFTCPSocket: Clear read buffer for new connection

This prevents reading old data when closing and reconnecting the socket. file: [58a6fa04a7] check-in: [c6a4b0a95f] user: js, branch: trunk, size: 39395 [annotate] [blame] [check-ins using] [diff]

2014-07-19
16:16
Fix MinGW32 build file: [ef98567a77] check-in: [083e05b444] user: js, branch: trunk, size: 39360 [annotate] [blame] [check-ins using] [diff]
2014-05-31
17:57
OFStream: Add -[hasDataInReadBuffer].

This replaces -[numberOfBytesInReadBuffer], as it's not always known how
many bytes there are exactly and thus the number would often be wrong
(e.g. because data is compressed). file: [10f43f7343] check-in: [acc999a75e] user: js, branch: trunk, size: 39343 [annotate] [blame] [check-ins using] [diff]

2014-02-18
18:50
Documentation: Show correct imports file: [16a1b1d069] check-in: [246cfe0807] user: js, branch: trunk, size: 39327 [annotate] [blame] [check-ins using] [diff]
2014-02-12
00:10
Fix --disable-sockets file: [84d33ed0b9] check-in: [611838d62d] user: js, branch: trunk, size: 39277 [annotate] [blame] [check-ins using] [diff]
2014-02-10
10:46
-[cancelAsyncRequests] documentation: Add warning file: [4f20417c15] check-in: [048c4912d6] user: js, branch: trunk, size: 39211 [annotate] [blame] [check-ins using] [diff]
2014-01-30
22:02
OFUDPSocket: Add async resolve / receive file: [76d6ca8c67] check-in: [ff3c507941] user: js, branch: trunk, size: 38840 [annotate] [blame] [check-ins using] [diff]
2014-01-29
15:54
Generalize OFKernelEventObserver

It is no longer limited to streams now. file: [f656291875] check-in: [c694569d86] user: js, branch: trunk, size: 38832 [annotate] [blame] [check-ins using] [diff]

2014-01-04
00:24
Update copyright. file: [ac84d7179d] check-in: [3b97fc3cd9] user: js, branch: trunk, size: 37666 [annotate] [blame] [check-ins using] [diff]
2013-11-24
17:28
of_asprintf: Change %k to %C and %K to %S.

This reverts 2943b43. It turned out that using %C and %S is possible,
even when mixing code with Cocoa code, as it is possible to introduce
__attribute__((format(__OFString__, ...))) to Clang which just handles
%C and %S as being of_unichar_t instead of unichar like they are handled
for __attribute__((format(__NSString__, ...))).

The Clang patch for __attribute__((format(__OFString__, ...))) has been
submitted, but is not upstream yet, thus the changes for that are not
being committed yet. file: [af49de697f] check-in: [4b56450a24] user: js, branch: trunk, size: 37660 [annotate] [blame] [check-ins using] [diff]

2013-11-23
17:48
of_asprintf: Add %K format specifier.

%K is for const of_unichar_t*. file: [a037efd8d4] check-in: [945ff1043d] user: js, branch: trunk, size: 37660 [annotate] [blame] [check-ins using] [diff]

03:24
of_asprintf: Change %C to %k.

In Cocoa, %C means unichar, which is unsigned short and thus compilers
expect %C to be unichar when the language is set to ObjC. It would be
hard to let compilers detect whether %C should be unichar or
of_unichar_t, especially when mixing ObjFW and Cocoa code, thus the
change to %k. file: [72c5abcbb8] check-in: [5eada9f7b0] user: js, branch: trunk, size: 37604 [annotate] [blame] [check-ins using] [diff]

2013-11-22
19:27
of_asprintf: Add %C format specifier. file: [0895acb1d9] check-in: [e803913a9d] user: js, branch: trunk, size: 37604 [annotate] [blame] [check-ins using] [diff]
2013-10-10
13:18
Add OFDeflateStream.

No compression support yet, only decompression.

Decompression speed is acceptable for productive use, but there is still
a lot of room for optimization as this is a very straightforward
implementation without much optimization. file: [e0f5011968] check-in: [d83d3aa719] user: js, branch: trunk, size: 37556 [annotate] [blame] [check-ins using] [diff]

02:26
OFStream: Add -[unreadFromBuffer:length:]. file: [bfaab86a9d] check-in: [138a7a1934] user: js, branch: trunk, size: 37555 [annotate] [blame] [check-ins using] [diff]
2013-08-15
19:00
Move private methods into private headers. file: [95be3e6746] check-in: [1d7a1cbca0] user: js, branch: trunk, size: 36514 [annotate] [blame] [check-ins using] [diff]
2013-06-17
08:44
Rename -[OFDataArray readDataArrayWithSize:].

It is now called -[readDataArrayWithCount:]. file: [27c14268e9] check-in: [eceebefeab] user: js, branch: trunk, size: 36549 [annotate] [blame] [check-ins using] [diff]

2013-04-26
19:42
Make it possible to disable sockets. file: [b114d5af52] check-in: [590c377d8a] user: js, branch: trunk, size: 36546 [annotate] [blame] [check-ins using] [diff]
2013-03-08
22:44
Document the block types.

This also removes "bool *stop" from some blocks where it does not make
sense. file: [05795f4687] check-in: [e8473b9db8] user: js, branch: trunk, size: 36418 [annotate] [blame] [check-ins using] [diff]

2013-03-04
17:20
Replace BOOL with bool.

The only places where BOOL is left are those where they are required by
the ABI. file: [d1cbeea7d2] check-in: [c5ef582958] user: js, branch: trunk, size: 35612 [annotate] [blame] [check-ins using] [diff]

2013-02-18
21:53
Rename -[OFStream pendingBytes].

It is now called -[numberOfBytesInReadBuffer].

Additionally, this commit renames OFStream's _cache to _readBuffer. file: [74effa40b4] check-in: [efe7be259d] user: js, branch: trunk, size: 35572 [annotate] [blame] [check-ins using] [diff]

2013-02-12
18:22
Prefix all ivars with an underscore. file: [57e418e361] check-in: [e40729d406] user: js, branch: trunk, size: 35567 [annotate] [blame] [check-ins using] [diff]
2013-01-25
22:39
Make -[OFStream setBlocking:] more robust.

-[setBlocking:] correctly works for unidirectional streams now. file: [6b4f15f3b1] check-in: [436f274d65] user: js, branch: trunk, size: 35560 [annotate] [blame] [check-ins using] [diff]

2013-01-22
02:31
OFStream: Add property for writeBufferEnabled.

This also renames the getter to -[isWriteBufferEnabled]. file: [79e322d7a8] check-in: [b96b150ce3] user: js, branch: trunk, size: 35568 [annotate] [blame] [check-ins using] [diff]

2013-01-14
23:56
OFStream: Rename -[write*:usingEncoding:].

It is now -[write*:encoding:]. file: [7c8c68988a] check-in: [5405bd5c5f] user: js, branch: trunk, size: 35501 [annotate] [blame] [check-ins using] [diff]

19:02
Documentation improvements. file: [aa6a3707b4] check-in: [30ab311006] user: js, branch: trunk, size: 35508 [annotate] [blame] [check-ins using] [diff]
2013-01-10
22:52
Fix all Doxygen warnings. file: [0a1063d1c6] check-in: [365d74aa27] user: js, branch: trunk, size: 35565 [annotate] [blame] [check-ins using] [diff]
2013-01-09
22:24
Update copyright. file: [0413580462] check-in: [813c00ccf0] user: js, branch: trunk, size: 35556 [annotate] [blame] [check-ins using] [diff]
2012-12-19
20:55
Make it possible to cancel async requests. file: [15b2bdf6af] check-in: [dc7b33cd6b] user: js, branch: trunk, size: 35550 [annotate] [blame] [check-ins using] [diff]
2012-12-16
01:18
Add -[OFStream write{String,Line}:usingEncoding:]. file: [bcd97aa0de] check-in: [8f6d44074d] user: js, branch: trunk, size: 35446 [annotate] [blame] [check-ins using] [diff]
2012-10-30
18:50
Async I/O: Pass a context. file: [3161b39141] check-in: [13ea2fc8b1] user: js, branch: trunk, size: 35077 [annotate] [blame] [check-ins using] [diff]
2012-10-29
13:37
Documentation improvements (add references). file: [47ab0fd36d] check-in: [1bcd4b3d46] user: js, branch: 0.7, size: 34668 [annotate] [blame] [check-ins using] [diff]
13:35
Documentation improvements (add references). file: [c7b337bee8] check-in: [e685b742d9] user: js, branch: trunk, size: 34668 [annotate] [blame] [check-ins using] [diff]
08:00
Documentation improvements. file: [bf0c605954] check-in: [7a3977d7fd] user: js, branch: 0.7, size: 34590 [annotate] [blame] [check-ins using] [diff]
07:59
Documentation improvements. file: [16acb784a6] check-in: [63bf4de97b] user: js, branch: trunk, size: 34590 [annotate] [blame] [check-ins using] [diff]
2012-10-28
12:38
Switch to a headerdoc-compatible doc format. file: [03e8d32455] check-in: [1ad9565253] user: js, branch: trunk, size: 34683 [annotate] [blame] [check-ins using] [diff]
2012-10-17
20:16
Pass exceptions on async I/O.

This makes it possible to handle exceptions that occurred during async
I/O in the specified handler. file: [6c1eafc699] check-in: [6343e04dcd] user: js, branch: trunk, size: 34683 [annotate] [blame] [check-ins using] [diff]

2012-09-19
23:02
Make async I/O possible without blocks.

Async connecting is still missing. file: [8627416ee2] check-in: [4d9a641d87] user: js, branch: trunk, size: 34418 [annotate] [blame] [check-ins using] [diff]

2012-09-17
15:48
Add -[asyncReadIntoBuffer:exactLength:block:]. file: [428dff50a5] check-in: [be6adc6e06] user: js, branch: trunk, size: 30610 [annotate] [blame] [check-ins using] [diff]
2012-09-16
15:43
OFStream: Use lowlevel as prefix instead of _. file: [67eb3e5d0e] check-in: [61c1932caf] user: js, branch: trunk, size: 29356 [annotate] [blame] [check-ins using] [diff]
15:27
Prefix all private methods with OF_. file: [1a309ecdea] check-in: [c137da5e5b] user: js, branch: trunk, size: 28467 [annotate] [blame] [check-ins using] [diff]
2012-09-15
12:20
OFThread: Implement the OFCopying protocol. file: [adf57753c4] check-in: [2929f89f3e] user: js, branch: trunk, size: 28438 [annotate] [blame] [check-ins using] [diff]
2012-09-14
05:20
Implement async reading (into buffers and lines). file: [d3c9a265b1] check-in: [a2b309b38a] user: js, branch: trunk, size: 28438 [annotate] [blame] [check-ins using] [diff]
2012-09-12
17:27
Split -[OFStream fileDescriptor].

It is now -[fileDescriptorForReading] and -[fileDescriptorForWriting].
The split was necessary as some stream types (e.g. OFProcess) don't have
a single file descriptor, but two. This allows to use those stream types
with OFStreamObserver as well. file: [fb448f8379] check-in: [440e95fd4a] user: js, branch: trunk, size: 26216 [annotate] [blame] [check-ins using] [diff]

2012-06-07
12:03
Rework OFStream API. file: [aea1f2dd6e] check-in: [0d4059306a] user: js, branch: trunk, size: 25995 [annotate] [blame] [check-ins using] [diff]
2012-02-29
21:12
\cond internal is not needed anymore. file: [5cd3180445] check-in: [95db0335d8] user: js, branch: 0.6, size: 25910 [annotate] [blame] [check-ins using] [diff]
2012-02-25
11:24
Always define __STDC_{CONSTANT,LIMIT}_MACROS before libc includes.
This is necessary for ObjC++.
file: [f035f41374] check-in: [99ed50a5e4] user: js, branch: 0.6, size: 25942 [annotate] [blame] [check-ins using] [diff]
2012-02-01
13:42
Clean up the properties mess. file: [cedd7eb4aa] check-in: [c1b35e1495] user: js, branch: trunk, size: 25807 [annotate] [blame] [check-ins using] [diff]
2012-01-05
00:56
Update copyright. file: [c614ad19f2] check-in: [ce70e17b38] user: js, branch: trunk, size: 25815 [annotate] [blame] [check-ins using] [diff]
2011-12-08
04:19
Add a property for -[OFStream isAtEndOfStream].
This makes stream.atEndOfStream work.
file: [7727de6ef5] check-in: [d64e1d5727] user: js, branch: trunk, size: 25809 [annotate] [blame] [check-ins using] [diff]
2011-11-23
00:26
Make use of \warning in documentation. file: [73c72f5177] check-in: [a49eec5be4] user: js, branch: trunk, size: 25744 [annotate] [blame] [check-ins using] [diff]
2011-09-19
19:12
Make it possible to use an OFStream as a key for a dictionary. file: [10e2127f1f] check-in: [9aa9d6d075] user: js, branch: trunk, size: 25699 [annotate] [blame] [check-ins using] [diff]
16:40
Add a few private methods to the headers to have type checking. file: [d01ccdc23f] check-in: [6a25d1d677] user: js, branch: trunk, size: 25315 [annotate] [blame] [check-ins using] [diff]
16:22
Make using -[tryReadLine] + OFStreamObserver safe.

This makes it impossible for the developer to accidentally create a DoS.
When data has been received after calling -[tryReadLine] and the string
is still incomplete, -[streamIsReadyForReading:] will not be called
anymore until new data has been received, thus preventing spinning in a
loop. file: [3697389637] check-in: [535c2d5d9b] user: js, branch: trunk, size: 25173 [annotate] [blame] [check-ins using] [diff]

12:34
BOOL naming conventions. file: [d46e5522c2] check-in: [d43eb177bc] user: js, branch: trunk, size: 25079 [annotate] [blame] [check-ins using] [diff]
2011-09-15
10:57
Add -[tryReadTillDelimiter:]. file: [cfff676663] check-in: [bd923d90c7] user: js, branch: trunk, size: 25085 [annotate] [blame] [check-ins using] [diff]
2011-09-14
23:28
Add -[tryReadLine] to OFStream. file: [32b37edb3b] check-in: [6e8023786a] user: js, branch: trunk, size: 24184 [annotate] [blame] [check-ins using] [diff]
2011-09-11
17:09
Documentation improvements. file: [5f309aff43] check-in: [8d554c0421] user: js, branch: trunk, size: 23527 [annotate] [blame] [check-ins using] [diff]
2011-07-09
03:10
Emphasize that -[readNBytes:intoBuffer:] reads at most n bytes. file: [f806e93da6] check-in: [e1285e3ba9] user: js, branch: trunk, size: 22258 [annotate] [blame] [check-ins using] [diff]
2011-07-07
17:03
Add a note about the %@ format specifier. file: [4d0c3ac318] check-in: [d0085d2c5d] user: js, branch: trunk, size: 22058 [annotate] [blame] [check-ins using] [diff]
2011-07-06
22:55
Only allow an OFConstantString as format. file: [a5c5c3482e] check-in: [7558e235fe] user: js, branch: trunk, size: 21842 [annotate] [blame] [check-ins using] [diff]
2011-06-28
22:56
Add -[readStringWithLength:] to OFStream. file: [4293607bf6] check-in: [90a9d9475a] user: js, branch: trunk, size: 21826 [annotate] [blame] [check-ins using] [diff]
2011-06-26
12:48
Add methods to read/write arrays with correct byte ordering to OFStream. file: [11ac1a2f52] check-in: [1ccbecd52a] user: js, branch: trunk, size: 20362 [annotate] [blame] [check-ins using] [diff]
2011-06-20
19:26
Let -[writeNBytes:fromBuffer:] return void. file: [848fb0d1e3] check-in: [2a2d5c4c47] user: js, branch: trunk, size: 11669 [annotate] [blame] [check-ins using] [diff]
2011-06-16
02:33
-[readNBytes:intoBuffer:] & -[writeNBytes:fromBuffer:] take a void* now. file: [a6e5a685c5] check-in: [8440a70457] user: js, branch: trunk, size: 11712 [annotate] [blame] [check-ins using] [diff]
2011-06-05
18:32
Add methods to read / write floats and doubles to OFStream. file: [14891818f4] check-in: [f31197a153] user: js, branch: trunk, size: 11712 [annotate] [blame] [check-ins using] [diff]
2011-04-25
11:39
Add -[OFDataArray readDataArrayWithNItems:]. file: [576cb8fb89] check-in: [8c45d72a13] user: js, branch: trunk, size: 9976 [annotate] [blame] [check-ins using] [diff]
2011-04-22
18:00
More style improvements. file: [0372616946] check-in: [4814266280] user: js, branch: trunk, size: 9596 [annotate] [blame] [check-ins using] [diff]
2011-04-06
18:35
This ivar does not need to be @public anymore as well. file: [0de1b69c7e] check-in: [d9c7249304] user: js, branch: trunk, size: 9513 [annotate] [blame] [check-ins using] [diff]
2011-04-03
19:52
Add -[pendingBytes] to OFStream.

This way, the method to determine whether OFStreamSocket should
call the delegate can be overriden by subclasses, for example
for SSL sockets. file: [30f45428be] check-in: [f4151a36e3] user: js, branch: trunk, size: 9698 [annotate] [blame] [check-ins using] [diff]

2011-03-25
02:51
Work around a bug in gcc 4.4.4 (possibly only in Haiku). file: [24a5771adb] check-in: [8ba403b013] user: js, branch: trunk, size: 9597 [annotate] [blame] [check-ins using] [diff]
2011-01-15
18:17
Define enums as types. file: [74be59fb41] check-in: [b5ec30fa9d] user: js, branch: trunk, size: 9431 [annotate] [blame] [check-ins using] [diff]
2011-01-01
20:19
Change license. file: [0a6b8c3f80] check-in: [da6b3d26cb] user: js, branch: trunk, size: 9433 [annotate] [blame] [check-ins using] [diff]
2010-12-12
14:18
Fix missing colon. file: [8829984161] check-in: [54dda023d6] user: js, branch: trunk, size: 9177 [annotate] [blame] [check-ins using] [diff]
2010-12-09
19:04
Move -[setBlocking] to OFStream. file: [bd24a85393] check-in: [beb4a0d036] user: js, branch: trunk, size: 9176 [annotate] [blame] [check-ins using] [diff]
2010-10-24
13:15
Rename a few methods returning BOOL. file: [d7703b509d] check-in: [b6a39dd3d1] user: js, branch: trunk, size: 8744 [annotate] [blame] [check-ins using] [diff]
2010-09-20
11:26
Better API for the writte buffer of streams.
Can now be disabled without flushing and then be flushed later.
file: [0915ec3638] check-in: [c3c2bcca46] user: js, branch: trunk, size: 8738 [annotate] [blame] [check-ins using] [diff]
2010-09-19
02:52
Improve OFStreamObserver.

It also looks at the cache of each stream now and does not block if
there is still data in the cache. file: [dd21d0d02a] check-in: [b554732eae] user: js, branch: trunk, size: 8577 [annotate] [blame] [check-ins using] [diff]

2010-07-07
20:46
Add -[fileDescriptor] to OFStream. file: [c21dc06749] check-in: [9d064462a3] user: js, branch: trunk, size: 8550 [annotate] [blame] [check-ins using] [diff]
2010-04-30
13:59
Documentation improvement (replaced "an uint*" with "a uint*"). file: [447ea06b1e] check-in: [e259d77a62] user: js, branch: trunk, size: 8471 [annotate] [blame] [check-ins using] [diff]
2010-04-23
14:02
Add a warning to OFStream documentation. file: [39142061c5] check-in: [83b2a5d5d7] user: js, branch: trunk, size: 8499 [annotate] [blame] [check-ins using] [diff]
2010-04-17
22:27
New ivar naming convention.

ivars are now named like this: thisIsAnIVar. If an accessor exists for
the ivar, the ivar is named like the accessor. This is required for
@property to work. file: [a95808e9fd] check-in: [37db8f0fb3] user: js, branch: trunk, size: 7415 [annotate] [blame] [check-ins using] [diff]

15:46
Don't return self where not necessary, return void or something useful. file: [fde24b0fcf] check-in: [062a052b50] user: js, branch: trunk, size: 7418 [annotate] [blame] [check-ins using] [diff]
2010-04-10
16:13
Add -[writeFormat:withArguments:] to OFStream. file: [d0c23abdf8] check-in: [948a5c25ce] user: js, branch: trunk, size: 7400 [annotate] [blame] [check-ins using] [diff]
2010-04-09
20:11
Rename -[cacheWrites] to -[bufferWrites]. file: [33ab04595d] check-in: [c5c17fdd30] user: js, branch: trunk, size: 7120 [annotate] [blame] [check-ins using] [diff]
15:22
Add -[{read,write}LittleEndianInt{16,32,64}{,:}] to OFStream. file: [8e74551eac] check-in: [6217d56014] user: js, branch: trunk, size: 7114 [annotate] [blame] [check-ins using] [diff]
14:59
Better hiding of the internal OFStream methods. file: [9b81961a45] check-in: [2a9e91b67c] user: js, branch: trunk, size: 6110 [annotate] [blame] [check-ins using] [diff]
00:55
Add an optional write cache to OFStream. file: [f77e6ede23] check-in: [66c1d7718d] user: js, branch: trunk, size: 7568 [annotate] [blame] [check-ins using] [diff]
2010-04-08
23:48
Add -[writeInt8:] and -[writeBigEndianInt{16,32,64}:] to OFStream. file: [c88d590591] check-in: [978e88a43c] user: js, branch: trunk, size: 6706 [annotate] [blame] [check-ins using] [diff]
23:37
Add -[readInt8] and -[readBigEndianInt{16,32,64}] to OFStream. file: [b0e6f5f9a4] check-in: [c82e7f02f0] user: js, branch: trunk, size: 6152 [annotate] [blame] [check-ins using] [diff]
23:26
Add -[readDataArrayWithItemSize:andNItems:] to OFStream. file: [11233aa834] check-in: [3006cccbb9] user: js, branch: trunk, size: 5519 [annotate] [blame] [check-ins using] [diff]
23:10
Add -[readExactlyNBytes:intoBuffer:] to OFStream. file: [c52cf90821] check-in: [96c8753847] user: js, branch: trunk, size: 5176 [annotate] [blame] [check-ins using] [diff]
21:23
Add -[writeDataArray:] to OFStream. file: [6261e9a8b9] check-in: [967a5e6a40] user: js, branch: trunk, size: 4662 [annotate] [blame] [check-ins using] [diff]
2010-04-07
18:43
Add -[writeFormat:] to OFStream. file: [ed7d8ab9b7] check-in: [fe3b6e5457] user: js, branch: trunk, size: 4452 [annotate] [blame] [check-ins using] [diff]
2010-04-04
16:41
Add -[readDataArrayTillEndOfStream] to OFStream. file: [ad729fbb54] check-in: [1813376c4a] user: js, branch: trunk, size: 4273 [annotate] [blame] [check-ins using] [diff]
2010-04-03
01:34
Add -[writeLine:] to OFStream. file: [6718a13472] check-in: [da71912af5] user: js, branch: trunk, size: 4071 [annotate] [blame] [check-ins using] [diff]
2010-02-24
22:56
Merge to fix wrong parent of last commit. file: [abdf3e16b1] check-in: [b190519866] user: js, branch: trunk, size: 3853 [annotate] [blame] [check-ins using] [diff]
2010-02-20
14:44
Add -[readTillDelimiter:] to OFStream and improve -[readLine]. file: [3e6cb38d4d] check-in: [cb70f59a63] user: js, branch: trunk, size: 3853 [annotate] [blame] [check-ins using] [diff]
2010-02-19
16:36
Update copyright. file: [c1f2dd3939] check-in: [42886185fd] user: js, branch: trunk, size: 3129 [annotate] [blame] [check-ins using] [diff]
2010-02-11
14:58
Documentation improvements. file: [8ae41c981b] check-in: [72caeab860] user: js, branch: trunk, size: 3129 [annotate] [blame] [check-ins using] [diff]
2010-01-16
15:05
Reduce dependencies between headers. file: [1635dfcf25] check-in: [1433aef0d0] user: js, branch: trunk, size: 3150 [annotate] [blame] [check-ins using] [diff]
2009-12-03
18:50
Make OFStream caching invisible to the programmer. file: [15f483123e] check-in: [fc0b2500b9] user: js, branch: trunk, size: 3153 [annotate] [blame] [check-ins using] [diff]
2009-11-09
22:45
Rename libobjfw to ObjFW. file: [f0bc557550] check-in: [a3cc34b139] user: js, branch: trunk, size: 2727 [annotate] [blame] [check-ins using] [diff]
2009-09-27
15:04
Small documentation addendum. file: [a724d38486] check-in: [ada9f37216] user: js, branch: trunk, size: 2730 [annotate] [blame] [check-ins using] [diff]
2009-07-21
23:25
Add -[readLineWithEncoding:] to read in the specified encoding. file: [d7a78fa6d9] check-in: [9d93300b4e] user: js, branch: trunk, size: 2554 [annotate] [blame] [check-ins using] [diff]
2009-06-30
12:55
Add some missing documentation. file: [937b4422c4] check-in: [973e19f23c] user: js, branch: trunk, size: 2141 [annotate] [blame] [check-ins using] [diff]
2009-06-02
19:25
Improve -[readLine] in OFStream. file: [a8f3308e3a] check-in: [f1dae95070] user: js, branch: trunk, size: 2125 [annotate] [blame] [check-ins using] [diff]
2009-05-15
20:01
Use OFString as much as possible. file: [29bc7e1e05] check-in: [67066be692] user: js, branch: trunk, size: 1969 [annotate] [blame] [check-ins using] [diff]
2009-05-03
17:19
Make OFStream a class instead of a protocol and move readLine there. file: [b001002c07] check-in: [7bf4b144ad] user: js, branch: trunk, size: 1962 [annotate] [blame] [check-ins using] [diff]
2009-04-09
13:55
Use char* instead of uint8_t* for OFStreams and OFHashes.
This way, less casts are needed when using C libraries.
file: [7f1379bb1f] check-in: [722b6213c0] user: js, branch: trunk, size: 1268 [annotate] [blame] [check-ins using] [diff]
2009-04-07
15:44
Returning newly allocated buffers on reading is a bad idea.
The programmer might forget that some of the data is arbitrary because
there was less data than he requested which might lead to serious
problems.
file: [ed38ea4d16] check-in: [09e6b3fc7b] user: js, branch: trunk, size: 1274 [annotate] [blame] [check-ins using] [diff]
2009-01-24
15:24
Adjust API to introduction of OFAutoreleasePool. file: [ae18f564f1] check-in: [1496808b81] user: js, branch: trunk, size: 1519 [annotate] [blame] [check-ins using] [diff]
2009-01-05
00:59
Update copyright. file: [63e211130f] check-in: [f1b749d113] user: js, branch: trunk, size: 1479 [annotate] [blame] [check-ins using] [diff]
2008-12-11
13:43
Remove - close from OFStream protocol.
The reason is that closing a file isn't too useful, because an OFFile
object can't be reused, whereas an OFTCPSocket can. So only the
OFTCPSocket should have closed. Plus, we don't need to handle the case
that someone tried to read from / write to a closed OFFile.
file: [7bc3490907] check-in: [c83137e7cd] user: js, branch: trunk, size: 1472 [annotate] [blame] [check-ins using] [diff]
2008-12-07
10:48
Very small API change. file: [a9317063cc] check-in: [88053589dc] user: js, branch: trunk, size: 1512 [annotate] [blame] [check-ins using] [diff]
10:35
Add - close to OFStream. file: [794f822abd] check-in: [657fae20a4] user: js, branch: trunk, size: 1504 [annotate] [blame] [check-ins using] [diff]
03:06
Remove writeWideCString as that's a bad idea.

Endianess, size etc. may differ from system to system. While this might
be ok when writing files that are only read local again, this is
definitely not ok with sockets. So it's better to remove it from the
OFStream protocol. file: [1921fa4c55] check-in: [70874cf3c5] user: js, branch: trunk, size: 1464 [annotate] [blame] [check-ins using] [diff]

02:53
Add writeCString and writeWideCString to OFStream. file: [6335fea124] check-in: [6ed7c33611] user: js, branch: trunk, size: 1706 [annotate] [blame] [check-ins using] [diff]
2008-12-06
15:22
Added: Change OFFile API, add OFStream protocol. file: [6c96d5c694] check-in: [f32e7ed452] user: js, branch: trunk, size: 1224 [annotate] [blame] [check-ins using]