1
0
mirror of https://github.com/danog/byte-stream.git synced 2024-12-02 09:17:50 +01:00
Commit Graph

106 Commits

Author SHA1 Message Date
Niklas Keller
0c059ba0e6 Suppress errors also for stream_socket_shutdown, relates to #32 2017-12-10 17:40:58 +01:00
Niklas Keller
c5e31aa7b7 Fix #32: Suppress errors for feof, because pthreads 2017-12-10 17:36:05 +01:00
Niklas Keller
3c24903849 Use fread() for STDIO instead of stream_get_contents()
Turns out this fixes the issues with amphp/parallel on Windows.
2017-12-05 19:57:30 +01:00
Sébastien Nikolaou
48bb2ebf78 Extract OutputBuffer class 2017-10-17 21:24:21 +02:00
Sébastien Nikolaou
a4a132c056 Remove error suppressions for deflate_add 2017-10-17 21:24:21 +02:00
Sébastien Nikolaou
4e0e9a6b66 Increase test coverage 2017-10-17 21:24:21 +02:00
Niklas Keller
f63b98990e Optimize memory consumption of Amp\ByteStream\pipe 2017-10-17 09:22:17 +02:00
Bob Weinand
0f501deb7c Fix #29 - do not release resource on __destruct()
This ensures getResource() still returning a valid resource during cyclic garbage collection
2017-10-17 03:50:40 +02:00
Niklas Keller
d60ba033c4 Use stream_get_contents instead of fread for ResourceInputStream
This fixes an issue with TLS streams: https://github.com/amphp/artax/issues/138.

We still use  for UDP, because stream_get_contents might read multiple packages there if I'm not mistaken.
2017-10-08 12:38:01 +02:00
Niklas Keller
af613a0a77 Fix Message::read() if stream fails with a pending read 2017-10-07 10:28:45 +02:00
Fabien Villepinte
0dff1fe859 Anonymous function has an unused use $resource 2017-10-01 12:04:51 +02:00
Aaron Piotrowski
fdcf400f19
Check writable flag rather than for null resource
Also null resource when writing in watcher callback fails. Fixes #20.
2017-09-15 00:17:42 -05:00
Bob Weinand
a70a650793 Also \assert() against fclose() instead of silently returning null 2017-07-15 10:38:47 +02:00
Bob Weinand
666ece18a4 Fix invalid StreamException upon full write buffer
And add a few tests with chunk size writes
2017-07-15 10:06:12 +02:00
Niklas Keller
4777508637 Fail streaming messages correctly on read failures
Fixes #18.
2017-06-28 11:35:12 +02:00
Niklas Keller
704adf70cf Add reference and unreference methods to ResourceInputStream 2017-06-23 16:33:13 +02:00
Niklas Keller
b67358ad91 Suppress errors on close for resource streams
A resource might still be non-null, but already closed.
2017-06-19 08:43:07 +02:00
Aaron Piotrowski
48c4e122d8
Tweak closing
Resource is not nulled in watcher callback if reading/writing fails so close() will still call shutdown/fclose.
2017-06-18 23:14:59 -05:00
Niklas Keller
8d74c85048 Apply same closing mechanism to RIS 2017-06-18 23:25:22 +02:00
Niklas Keller
798723e942 Use \fclose for unidirectional resources to cover pipes 2017-06-18 22:57:19 +02:00
Niklas Keller
93540890fd Remove unnecessary isset check for stream modes 2017-06-18 22:55:44 +02:00
Niklas Keller
161c73471d stream_socket_shutdown resources in ROS on close 2017-06-18 20:16:05 +02:00
Aaron Piotrowski
816307c665 Fix writing in watcher callback if $chunkSize is null 2017-06-18 11:47:58 -05:00
Niklas Keller
8b20bf90b8 Fix feof check 2017-06-17 17:46:18 +02:00
Niklas Keller
0071609904 Fix minor phpdoc issue 2017-06-17 17:10:23 +02:00
Aaron Piotrowski
7a8d6d5f1f Remove Parser
Moved to a separate repository at amphp/parser.
2017-06-07 22:23:44 -05:00
Niklas Keller
6eb83c1218 Make Parser methods instead of class final 2017-06-05 14:54:51 +02:00
Niklas Keller
06715d6387 Revert "Fixup 7543f30fd66e41315677e1800082ba8b79f60b4c"
This reverts commit 751b757ae2.
2017-06-05 13:39:07 +02:00
Niklas Keller
751b757ae2 Fixup 7543f30fd6 2017-06-05 13:36:29 +02:00
Niklas Keller
c87c0cca98 Remove wrong return type from Parser::push 2017-06-04 11:41:44 +02:00
Niklas Keller
51265e4ece Remove OutputStream from Parser, make it not implementing the interface 2017-06-04 11:40:15 +02:00
Aaron Piotrowski
7543f30fd6 Do not include delimiter in sent string 2017-06-01 00:08:18 -05:00
Aaron Piotrowski
b5d2a8d434 Do not send remaining buffer on end 2017-05-31 23:51:44 -05:00
Aaron Piotrowski
06fc788d32 Revert "Add Parser::getBuffer()"
This reverts commit 253aaaf4fa.
2017-05-29 23:29:19 -05:00
Niklas Keller
ea135f26d0 Fix chunk size issue in ResourceOutputStream, fixes #14 2017-05-29 17:34:29 +02:00
Niklas Keller
2ecbf8aa8b Respect chunk size for ResourceOutputStream, document resource streams 2017-05-25 18:12:12 +02:00
Niklas Keller
a27cd0c3db Make ClosedException final 2017-05-25 17:52:07 +02:00
Niklas Keller
2bf2f8af06 Document compression streams 2017-05-25 17:51:25 +02:00
Niklas Keller
21945b888f Make Parser + PendingReadError final, add explicit note about extension to Message 2017-05-25 17:30:53 +02:00
Niklas Keller
6bc8199340 Drop Buffer as per #13, fixes #13 2017-05-24 18:30:38 +02:00
Niklas Keller
bf1635fa39 Suppress warning for invalid contexts, we throw an exception there 2017-05-22 14:44:36 +02:00
Niklas Keller
eb9394a5da Make resource streams final 2017-05-22 14:38:39 +02:00
Niklas Keller
c33c2bec61 Make InMemoryStream, IteratorStream and methods of Message final 2017-05-22 14:37:20 +02:00
Niklas Keller
7616029740 Allow options for Zlib streams, fixes #10 2017-05-22 14:35:13 +02:00
Niklas Keller
6b369657a1 Reject non-strings in IteratorStream 2017-05-22 10:41:35 +02:00
Niklas Keller
253aaaf4fa Add Parser::getBuffer() 2017-05-22 08:34:38 +02:00
Niklas Keller
9e90d1fa09 Add tests, fix ResourceOutputStream writable check 2017-05-16 23:27:48 +02:00
Niklas Keller
71745c6105 Make Message accept an InputStream instead of an Iterator
The purpose of Message is to allow streaming and buffering of an
InputStream with a simple API. Before this commit, Message served a
second purpose: Converting an Amp\Iterator to an InputStream. This has
been separated to allow ZlibInputStream and other InputStreams to be
used as Message. Converting an Amp\Iterator to an InputStream is now
possible using the new IteratorStream class.
2017-05-14 16:40:42 +02:00
Niklas Keller
c397a22ac9 Rename Gzip*Stream to Zlib*Stream and allow different encodings 2017-05-14 14:40:32 +02:00
Aaron Piotrowski
ca3ab2dc73 Restore destructor on resource stream
Forgot close() needed to be called to free watcher.
2017-05-12 10:27:58 -05:00