1 // Copyright (c) 1994 James Clark
2 // See the file COPYING for copying permission.
3 #pragma ident "%Z%%M% %I% %E% SMI"
10 #include "CodingSystem.h"
15 namespace SP_NAMESPACE
{
18 InputCodingSystem::~InputCodingSystem()
22 StringC
InputCodingSystem::convertIn(const char *s
) const
24 Decoder
*decoder
= makeDecoder();
26 str
.resize(strlen(s
));
27 str
.resize(decoder
->decode(&str
[0], s
, strlen(s
), &s
));
32 Boolean
InputCodingSystem::isIdentity() const
37 OutputCodingSystem::~OutputCodingSystem()
41 unsigned OutputCodingSystem::fixedBytesPerChar() const
46 String
<char> OutputCodingSystem::convertOut(const StringC
&str
) const
48 Encoder
*encoder
= makeEncoder();
49 StrOutputByteStream stream
;
50 encoder
->output(str
.data(), str
.size(), &stream
);
53 stream
.extractString(result
);
58 Decoder::Decoder(unsigned minBytesPerChar
)
59 : minBytesPerChar_(minBytesPerChar
)
67 Boolean
Decoder::convertOffset(unsigned long &) const
80 void Encoder::output(Char
*s
, size_t n
, OutputByteStream
*sp
)
82 output((const Char
*)s
, n
, sp
);
85 void Encoder::startFile(OutputByteStream
*)
89 void Encoder::handleUnencodable(Char
, OutputByteStream
*)
93 void Encoder::setUnencodableHandler(Handler
*)
97 RecoveringEncoder::RecoveringEncoder()
98 : unencodableHandler_(0)
102 void RecoveringEncoder::handleUnencodable(Char c
, OutputByteStream
*sbufp
)
104 if (unencodableHandler_
)
105 unencodableHandler_
->handleUnencodable(c
, sbufp
);
108 void RecoveringEncoder::setUnencodableHandler(Handler
*handler
)
110 unencodableHandler_
= handler
;