%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
#ifndef SRC_STRING_DECODER_H_ #define SRC_STRING_DECODER_H_ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS #include "node.h" namespace node { class StringDecoder { public: StringDecoder() { state_[kEncodingField] = BUFFER; } inline void SetEncoding(enum encoding encoding); inline enum encoding Encoding() const; inline char* IncompleteCharacterBuffer(); inline unsigned MissingBytes() const; inline unsigned BufferedBytes() const; // Decode a string from the specified encoding. // The value pointed to by `nread` will be modified to reflect that // less data may have been read because it ended on an incomplete character // and more data may have been read because a previously incomplete character // was finished. v8::MaybeLocal<v8::String> DecodeData(v8::Isolate* isolate, const char* data, size_t* nread); // Flush an incomplete character. For character encodings like UTF8 this // means printing replacement characters, buf for e.g. Base64 the returned // string contains more data. v8::MaybeLocal<v8::String> FlushData(v8::Isolate* isolate); enum Fields { kIncompleteCharactersStart = 0, kIncompleteCharactersEnd = 4, kMissingBytes = 4, kBufferedBytes = 5, kEncodingField = 6, kNumFields = 7 }; private: uint8_t state_[kNumFields] = {}; }; } // namespace node #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS #endif // SRC_STRING_DECODER_H_