Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
AutoUTFOutputStream< CharType, OutputByteStream > Class Template Reference

Output stream wrapper with dynamically bound encoding and automatic encoding detection. More...

#include <encodedstream.h>

Public Types

typedef CharType Ch
 

Public Member Functions

 AutoUTFOutputStream (OutputByteStream &os, UTFType type, bool putBOM)
 Constructor.
 
UTFType GetType () const
 
void Put (Ch c)
 
void Flush ()
 
Ch Peek () const
 
Ch Take ()
 
size_t Tell () const
 
ChPutBegin ()
 
size_t PutEnd (Ch *)
 

Detailed Description

template<typename CharType, typename OutputByteStream>
class AutoUTFOutputStream< CharType, OutputByteStream >
Template Parameters
CharTypeType of character for writing.
OutputByteStreamtype of output byte stream to be wrapped.

Definition at line 233 of file encodedstream.h.

Member Typedef Documentation

◆ Ch

template<typename CharType , typename OutputByteStream >
CharType AutoUTFOutputStream< CharType, OutputByteStream >::Ch

Definition at line 236 of file encodedstream.h.

Constructor & Destructor Documentation

◆ AutoUTFOutputStream()

template<typename CharType , typename OutputByteStream >
AutoUTFOutputStream< CharType, OutputByteStream >::AutoUTFOutputStream ( OutputByteStream & os,
UTFType type,
bool putBOM )
inline
Parameters
osoutput stream to be wrapped.
typeUTF encoding type.
putBOMWhether to write BOM at the beginning of the stream.

Definition at line 244 of file encodedstream.h.

244 : os_(&os), type_(type) {
245 RAPIDJSON_ASSERT(type >= kUTF8 && type <= kUTF32BE);
246
247 // Runtime check whether the size of character type is sufficient. It only perform checks with assertion.
248 if (type_ == kUTF16LE || type_ == kUTF16BE) RAPIDJSON_ASSERT(sizeof(Ch) >= 2);
249 if (type_ == kUTF32LE || type_ == kUTF32BE) RAPIDJSON_ASSERT(sizeof(Ch) >= 4);
250
251 static const PutFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(Put) };
252 putFunc_ = f[type_];
253
254 if (putBOM)
255 PutBOM();
256 }
#define RAPIDJSON_ENCODINGS_FUNC(x)
@ kUTF32BE
UTF-32 big endian.
Definition encodings.h:608
@ kUTF16BE
UTF-16 big endian.
Definition encodings.h:606
@ kUTF8
UTF-8.
Definition encodings.h:604
@ kUTF32LE
UTF-32 little endian.
Definition encodings.h:607
@ kUTF16LE
UTF-16 little endian.
Definition encodings.h:605
os_t os
#define RAPIDJSON_ASSERT(x)
Assertion.
Definition rapidjson.h:406
Here is the call graph for this function:

Member Function Documentation

◆ Flush()

template<typename CharType , typename OutputByteStream >
void AutoUTFOutputStream< CharType, OutputByteStream >::Flush ( )
inline

Definition at line 261 of file encodedstream.h.

261{ os_->Flush(); }
Here is the caller graph for this function:

◆ GetType()

template<typename CharType , typename OutputByteStream >
UTFType AutoUTFOutputStream< CharType, OutputByteStream >::GetType ( ) const
inline

Definition at line 258 of file encodedstream.h.

258{ return type_; }

◆ Peek()

template<typename CharType , typename OutputByteStream >
Ch AutoUTFOutputStream< CharType, OutputByteStream >::Peek ( ) const
inline

Definition at line 264 of file encodedstream.h.

264{ RAPIDJSON_ASSERT(false); return 0;}

◆ Put()

template<typename CharType , typename OutputByteStream >
void AutoUTFOutputStream< CharType, OutputByteStream >::Put ( Ch c)
inline

Definition at line 260 of file encodedstream.h.

260{ putFunc_(*os_, c); }
Here is the caller graph for this function:

◆ PutBegin()

template<typename CharType , typename OutputByteStream >
Ch * AutoUTFOutputStream< CharType, OutputByteStream >::PutBegin ( )
inline

Definition at line 267 of file encodedstream.h.

267{ RAPIDJSON_ASSERT(false); return 0; }

◆ PutEnd()

template<typename CharType , typename OutputByteStream >
size_t AutoUTFOutputStream< CharType, OutputByteStream >::PutEnd ( Ch * )
inline

Definition at line 268 of file encodedstream.h.

268{ RAPIDJSON_ASSERT(false); return 0; }

◆ Take()

template<typename CharType , typename OutputByteStream >
Ch AutoUTFOutputStream< CharType, OutputByteStream >::Take ( )
inline

Definition at line 265 of file encodedstream.h.

265{ RAPIDJSON_ASSERT(false); return 0;}

◆ Tell()

template<typename CharType , typename OutputByteStream >
size_t AutoUTFOutputStream< CharType, OutputByteStream >::Tell ( ) const
inline

Definition at line 266 of file encodedstream.h.

266{ RAPIDJSON_ASSERT(false); return 0; }

The documentation for this class was generated from the following file: