mirror of
https://github.com/nodejs/node.git
synced 2026-11-09 15:11:11 -05:00
Implement string decoder in C++. The perks are a decent speed boost (for decoding, whereas creation show some performance degradation), that this can now be used more easily to add native decoding support to C++ streams and (arguably) more readable variable names. PR-URL: https://github.com/nodejs/node/pull/18537 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
39 lines
876 B
C++
39 lines
876 B
C++
#ifndef SRC_STRING_DECODER_INL_H_
|
|
#define SRC_STRING_DECODER_INL_H_
|
|
|
|
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
|
|
#include "string_decoder.h"
|
|
#include "util.h"
|
|
|
|
namespace node {
|
|
|
|
void StringDecoder::SetEncoding(enum encoding encoding) {
|
|
state_[kBufferedBytes] = 0;
|
|
state_[kMissingBytes] = 0;
|
|
state_[kEncodingField] = encoding;
|
|
}
|
|
|
|
enum encoding StringDecoder::Encoding() const {
|
|
return static_cast<enum encoding>(state_[kEncodingField]);
|
|
}
|
|
|
|
unsigned StringDecoder::BufferedBytes() const {
|
|
return state_[kBufferedBytes];
|
|
}
|
|
|
|
unsigned StringDecoder::MissingBytes() const {
|
|
return state_[kMissingBytes];
|
|
}
|
|
|
|
char* StringDecoder::IncompleteCharacterBuffer() {
|
|
return reinterpret_cast<char*>(state_ + kIncompleteCharactersStart);
|
|
}
|
|
|
|
|
|
} // namespace node
|
|
|
|
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
|
|
#endif // SRC_STRING_DECODER_INL_H_
|