PageRenderTime 55ms CodeModel.GetById 28ms RepoModel.GetById 0ms app.codeStats 0ms

/hphp/test/slow/streams/unbuffered_user_filter.php

https://github.com/xstudio/hhvm
PHP | 57 lines | 50 code | 7 blank | 0 comment | 1 complexity | 0708d98467c71a0702785e1843200891 MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, BSD-3-Clause, LGPL-2.0, LGPL-2.1
  1. <?php
  2. class TestFilter extends php_user_filter {
  3. public function filter(
  4. $in,
  5. $out,
  6. &$consumed,
  7. $params
  8. ) {
  9. $consumed = 0;
  10. while ($bucket = stream_bucket_make_writeable($in)) {
  11. $bucket->data = strtoupper($bucket->data).$bucket->data;
  12. $consumed += $bucket->datalen;
  13. $bucket->datalen *= 2;
  14. stream_bucket_append($out, $bucket);
  15. }
  16. return PSFS_PASS_ON;
  17. }
  18. }
  19. var_dump(stream_filter_register('testfilter', 'TestFilter'));
  20. function testWrite() {
  21. printf("---%s---\n", __FUNCTION__);
  22. $f = fopen('php://memory', 'r+');
  23. stream_filter_append($f, 'testfilter', STREAM_FILTER_WRITE);
  24. fwrite($f, 'abcd');
  25. rewind($f);
  26. var_dump(fread($f, 1024));
  27. }
  28. function testSimpleRead() {
  29. printf("---%s---\n", __FUNCTION__);
  30. $f = fopen('php://memory', 'r+');
  31. stream_filter_append($f, 'testfilter', STREAM_FILTER_READ);
  32. fwrite($f, 'abcd');
  33. rewind($f);
  34. var_dump(fread($f, 1024));
  35. }
  36. function testStagedRead() {
  37. printf("---%s---\n", __FUNCTION__);
  38. $f = fopen('php://memory', 'r+');
  39. stream_filter_append($f, 'testfilter', STREAM_FILTER_READ);
  40. fwrite($f, 'abcd');
  41. rewind($f);
  42. var_dump(fread($f, 4));
  43. var_dump(fread($f, 4));
  44. }
  45. function main() {
  46. testWrite();
  47. testSimpleRead();
  48. testStagedRead();
  49. }
  50. main();