JSON::Streaming::Reader::EventWrapper - Internal utility package for JSON::Streaming::Reader
This package is an internal implementation detail of JSON::Streaming::Reader. It is used to provide an API that looks like it blocks on top of a handle that doesn't block, so the parsing functions can pretend they have a blocking handle.
Instances of this class support enough of the IO::Handle interface to satisfy JSON::Streaming::Reader and no more. In other words, they support only the read method and assume that the caller will only ever want 1 character at a time.
IO::Handle
read
This is not a public API. See the event-based API on JSON::Streaming::Reader, which is implemented in terms of this class. This class may go away in future versions, once refactoring renders it no longer necessary.
my $event_wrapper = JSON::Streaming::Reader::EventWrapper->new(); $event_wrapper->feed_buffer(\$string_of_data); $event_wrapper->begin_reading(); my $char; eval { $event_wrapper->read($char, 1); }; if ($@ == JSON::Streaming::Reader::EventWrapper::UNDERRUN) { $event_wrapper->roll_back_reading(); } else { $event_wrapper->complete_reading(); # Do something with $char }
To install JSON::Streaming::Reader, copy and paste the appropriate command in to your terminal.
cpanm
cpanm JSON::Streaming::Reader
CPAN shell
perl -MCPAN -e shell install JSON::Streaming::Reader
For more information on module installation, please visit the detailed CPAN module installation guide.