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
Aaron Piotrowski
e7f7326363
PendingReadException → PendingReadError
...
Consecutive reads is a coding error, so it should be an instance of Error.
2017-05-12 00:06:07 -05:00
Aaron Piotrowski
f6e765cea3
Succeed reads with null on closed stream
2017-05-11 23:56:36 -05:00
Aaron Piotrowski
c2eac67b79
Fix close() and make public again
2017-05-11 23:52:15 -05:00
Aaron Piotrowski
cfbf25e3b5
Remove close() from interfaces
2017-05-11 18:08:45 -05:00
Bob Weinand
98bbffb48f
Fix Message::read() when end is reached before call to read()
2017-05-11 16:33:00 +02:00
Aaron Piotrowski
11a92648d1
Revert IteratorStream name to Message
2017-05-10 18:20:34 -05:00
Aaron Piotrowski
abb7c9c6b5
Use back-pressure
2017-05-10 18:04:10 -05:00
Niklas Keller
a66fef9b55
Add InMemoryStream
2017-05-08 11:15:10 +02:00
Niklas Keller
59b2454253
Fix null pointer access in GzipInputStream
2017-05-08 09:44:54 +02:00
Niklas Keller
56ec64c508
Fix null pointer access in GzipOutputStream::close
2017-05-08 09:30:19 +02:00
Niklas Keller
f89c6a1161
Implement GzipOutputStream, closes #5
2017-05-08 08:51:52 +02:00
Niklas Keller
3a51a03d0f
Fix code style
2017-05-07 22:19:55 +02:00
Niklas Keller
55a7118da9
Add .editorconfig and fix code style
2017-05-07 22:14:45 +02:00
Aaron Piotrowski
6241988750
Restore Message as IteratorStream
2017-05-07 22:10:16 +02:00
Niklas Keller
23f5ba91b9
Simplify GzipInputStream by removing the state tracking
2017-05-07 11:14:41 +02:00
Niklas Keller
bc24326ec0
Add GzipInputStream
2017-05-05 22:39:39 +02:00
Niklas Keller
9714de66ae
Remove buffered stream implementations
2017-05-05 16:47:45 +02:00
Niklas Keller
73e6441fd9
Add getResource() to resource streams
2017-05-05 16:45:53 +02:00
Niklas Keller
622f98c966
Improve readability, written is never larger than length
2017-05-05 15:42:18 +02:00
Aaron Piotrowski
4b7a537d7b
Refactor ResourceInputStream for new API
2017-05-04 16:30:40 -05:00
Aaron Piotrowski
f3536494e9
Fix conflicts in Parser
2017-05-04 16:30:13 -05:00
Niklas Keller
bf90335bb6
Major API change + merged Reader and Writer from amphp/socket
2017-04-30 08:33:16 +02:00
Aaron Piotrowski
6d9d3bd8d2
Drop dispose method from Parser
...
Nulling the generator reference is enough. dispose() was not able to guarantee catching from finally. Just don't throw from finally in a parser generator.
2017-04-27 18:30:27 -05:00
Niklas Keller
16fc80ae3b
Update and fix php-cs-fixer and code style
2017-04-26 08:27:52 +02:00
Niklas Keller
9f22953566
Fix typo
2017-04-26 08:21:18 +02:00
Niklas Keller
5ed3a00d33
Fix minor coding issues and typos
2017-04-26 08:17:19 +02:00
Aaron Piotrowski
c331b2138a
Add Parser
2017-04-15 09:44:22 -05:00
Aaron Piotrowski
b1c3b9ce96
Update docblock notes
2017-04-14 18:08:31 -05:00
Aaron Piotrowski
5d7d0c97d2
Listener → StreamIterator
2017-04-14 18:06:18 -05:00
Aaron Piotrowski
8d59f8a8b9
Manually count bytes written in pipe()
...
write() may not resolve with the number of bytes written
2017-04-14 17:52:57 -05:00
Aaron Piotrowski
1d7c9f0d5d
Remove MemoryStream
2017-04-14 17:52:28 -05:00
Aaron Piotrowski
b0c9dcf839
wait() → advance()
2017-04-14 17:52:22 -05:00
Aaron Piotrowski
2d83001ca4
Keep string as default type
2017-04-14 09:20:28 -05:00
Aaron Piotrowski
39584ab47e
Remove specific success value from write() and end()
2017-04-13 18:14:27 -05:00
Aaron Piotrowski
7cc313a633
Drop extending Promise
2017-04-13 09:04:56 -05:00
Aaron Piotrowski
5e250f7c79
Refactor ReadableStream and Message
2017-04-12 00:43:48 -05:00
Aaron Piotrowski
9ad62cae84
Remove final from Message
2017-04-11 19:17:44 -05:00
Aaron Piotrowski
e0d770ff9a
Refactor pipe()
...
Read in chunks instead of buffering
2017-04-11 19:12:25 -05:00
Aaron Piotrowski
c3dc509e5c
Add readAll(); succeed delimiter-based reads on end
2017-04-10 23:58:24 -05:00
Aaron Piotrowski
f358b7a38b
Add Message
2017-04-04 11:24:15 -05:00
Aaron Piotrowski
04a74eb31d
Remove close() from stream interfaces
2017-04-04 11:19:52 -05:00
Aaron Piotrowski
07bd162882
Resolve unbounded read with empty string
2017-03-29 00:09:34 -05:00
Aaron Piotrowski
d29c100c9c
Cleanup exceptions
2017-03-28 23:50:56 -05:00
Aaron Piotrowski
458e4c68fd
Add MessageStream
...
Converts a Message object to a ReadableStream.
2017-03-28 23:45:26 -05:00
Aaron Piotrowski
858a76e675
Split into readable and writable stream
2017-03-23 18:38:15 -05:00
Aaron Piotrowski
4414c6bbe4
Update for async-interop merge and other Amp changes; changed namespace to ByteStream
2017-03-16 16:49:09 -05:00
Aaron Piotrowski
4c5b7f539b
Formating fix
2017-01-09 10:53:42 -06:00
Aaron Piotrowski
1a047f3f78
Move internal functions to Internal namespace
2017-01-09 10:53:36 -06:00
Aaron Piotrowski
e72bc00605
Stream → ByteStream
...
Avoid confusion with Amp\Stream.
2017-01-09 10:52:29 -06:00
Aaron Piotrowski
772a5e3c7a
Update for async-interop namespace change
2017-01-09 10:29:08 -06:00
Aaron Piotrowski
e258c7b50d
Drop strict types
2016-12-29 23:09:06 -06:00