as2js: as2js::DecodingFilterUTF16LE Class Reference

#include <stream.h>

Inheritance diagram for as2js::DecodingFilterUTF16LE:
Collaboration diagram for as2js::DecodingFilterUTF16LE:
Public Types typedef unsigned char byte_t   typedef std::vector< byte_tbyte_vector_t   typedef std::shared_ptr< DecodingFilterpointer_t   Public Member Functions as_char_t getc ()  Retrieve the next character. More...
  void putc (byte_t c)  Push one byte in the decoder. More...
  Protected Member Functions virtual as_char_t get_char ()  Decode UTF-16 in Little Endian format. More...
  as_char_t next_char (as_char_t c)  Decode a UTF-16 character. More...
  Protected Attributes byte_vector_t f_buffer = byte_vector_t()   Detailed Description

Definition at line 94 of file stream.h.

Member Typedef Documentation
typedef unsigned char as2js::DecodingFilter::byte_t inherited

Definition at line 52 of file stream.h.

typedef std::vector<byte_t> as2js::DecodingFilter::byte_vector_t inherited

Definition at line 53 of file stream.h.

typedef std::shared_ptr<DecodingFilter> as2js::DecodingFilter::pointer_t inherited

Definition at line 51 of file stream.h.

Member Function Documentation
Input::char_t as2js::DecodingFilterUTF16LE::get_char ( ) protectedvirtual

This function reads data in UTF-16 Little Endian. The function may return Input::INPUT_NAC if called without enough data forming a unicode character or when only the lead surrogate is read.

The function returns Input::INPUT_ERR if the function finds a lead without a trail surrogate, or a trail without a lead.

Returns
The next character, Input::INPUT_ERR, or Input::INPUT_NAC.

Implements as2js::DecodingFilter.

Definition at line 265 of file stream.cpp.

References as2js::DecodingFilter::f_buffer, as2js::Input::INPUT_ERR, and as2js::Input::INPUT_NAC.

Input::char_t as2js::DecodingFilter::getc ( ) inherited

This function retrieves the next input character.

If there is data, but not enough of it, it returns Input::INPUT_NAC. Processing can safely continue.

If possible, the function avoids returning with the Input::INPUT_NAC result (i.e. if a filter returns that value when there is still data available in the buffer, their get_char() function gets called again.)

If there is data, but it cannot properly be converted to a valid character, it returns Input::INPUT_ERR.

If there is no data, then Input::INPUT_EOF is returned.

Returns
The next character available or one of the Input::INPUT_... result (EOF, NAC, ERR).

Definition at line 96 of file stream.cpp.

References as2js::DecodingFilter::f_buffer, as2js::DecodingFilter::get_char(), and as2js::Input::INPUT_EOF.

Input::char_t as2js::DecodingFilterUTF16::next_char ( as_char_t  c) protectedinherited

This function is called with a 2 byte value which either represents a Unicode character as is, or a UTF-16 surrogate. When a surrogate is detected, it is transformed in a full Unicode character by this function. The function needs to be called twice to decode one full Unicode character described using a surrogate.

If an invalid surrogate sequence is found, then the function returns Input::INPUT_ERR.

When the lead surrogate is found, the function returns Input::INPUT_NAC meaning that more data is necessary and the function needs to be called again to proceed.

Parameters
[in]cTwo byte value representing a Unicode character or a UTF-16 surrogate.
Returns
The following character, Input::INPUT_NAC, or Input::INPUT_ERR.

Definition at line 225 of file stream.cpp.

References as2js::DecodingFilter::f_buffer, as2js::Input::INPUT_ERR, and as2js::Input::INPUT_NAC.

void as2js::DecodingFilter::putc ( byte_t  c) inherited

This function pushes exactly one byte in the decoder.

In most cases decoders expects their getc() function to be called right after each putc(), although it is not mandatory.

Parameters
[in]cThe character to append to this decoding filter.

Definition at line 71 of file stream.cpp.

References as2js::DecodingFilter::f_buffer.

Member Data Documentation
The documentation for this class was generated from the following files:
  • /home/snapwebsites/snapcpp/contrib/as2js/include/as2js/stream.h
  • /home/snapwebsites/snapcpp/contrib/as2js/lib/stream.cpp

This document is part of the Snap! Websites Project.

Copyright by Made to Order Software Corp.

Syndicate content

Snap! Websites
An Open Source CMS System in C++

Contact Us Directly