From db17e778199db87980e7e5aa1862f0fa321d53b1 Mon Sep 17 00:00:00 2001 From: Tinny Ng <tng@apache.org> Date: Thu, 9 Jan 2003 15:36:11 +0000 Subject: [PATCH] Use transService to open the transcode if intrinsic is not found. git-svn-id: https://svn.apache.org/repos/asf/xerces/c/trunk@174601 13f79535-47bb-0310-9956-ffa450edef68 --- src/xercesc/util/TransService.cpp | 109 ++++++++++++++++-------------- 1 file changed, 57 insertions(+), 52 deletions(-) diff --git a/src/xercesc/util/TransService.cpp b/src/xercesc/util/TransService.cpp index d736ee9bd..357545b1c 100644 --- a/src/xercesc/util/TransService.cpp +++ b/src/xercesc/util/TransService.cpp @@ -115,7 +115,7 @@ static void reinitMappingsRecognizer() { } // --------------------------------------------------------------------------- -// XLMTransService: Constructors and destructor +// XMLTransService: Constructors and destructor // --------------------------------------------------------------------------- XMLTransService::XMLTransService() { @@ -164,7 +164,7 @@ void XMLTransService::addEncoding(const XMLCh* const encoding, } // --------------------------------------------------------------------------- -// XLMTranscoder: Non-virtual API +// XMLTransService: Non-virtual API // --------------------------------------------------------------------------- XMLTranscoder* XMLTransService::makeNewTranscoderFor( const char* const encodingName @@ -242,7 +242,7 @@ XMLTransService::makeNewTranscoderFor( XMLRecognizer::Encodings encoding // // We can only make transcoder if the passed encodingEnum is under this range // - if (encodingEnum < XMLRecognizer::EBCDIC || encodingEnum > XMLRecognizer::XERCES_XMLCH) { + if (encodingEnum < XMLRecognizer::Encodings_Min || encodingEnum > XMLRecognizer::Encodings_Max) { resValue = XMLTransService::InternalFailure; return 0; } @@ -256,61 +256,20 @@ XMLTransService::makeNewTranscoderFor( XMLRecognizer::Encodings encoding return temp; } else { - resValue = XMLTransService::InternalFailure; - return 0; - } - -} - - -// --------------------------------------------------------------------------- -// XLMTranscoder: Public Destructor -// --------------------------------------------------------------------------- -XMLTranscoder::~XMLTranscoder() -{ - delete [] fEncodingName; -} - - -// --------------------------------------------------------------------------- -// XLMTranscoder: Hidden Constructors -// --------------------------------------------------------------------------- -XMLTranscoder::XMLTranscoder(const XMLCh* const encodingName - , const unsigned int blockSize) : - fEncodingName(0) - , fBlockSize(blockSize) -{ - fEncodingName = XMLString::replicate(encodingName); -} + XMLTranscoder* temp = makeNewXMLTranscoder(XMLRecognizer::nameForEncoding(encodingEnum), resValue, blockSize); + // if successful, set resValue to OK + // if failed, the makeNewXMLTranscoder has already set the proper failing resValue + if (temp) resValue = XMLTransService::Ok; -// --------------------------------------------------------------------------- -// XLMTranscoder: Protected helpers -// --------------------------------------------------------------------------- -void XMLTranscoder::checkBlockSize(const unsigned int toCheck) -{ -// if (toCheck > fBlockSize) -// ThrowXML(TranscodingException, XMLExcepts::Trans_BadBlockSize); -} - + return temp; + } -// --------------------------------------------------------------------------- -// XLMLCPTranscoder: Public Destructor -// --------------------------------------------------------------------------- -XMLLCPTranscoder::XMLLCPTranscoder() -{ } // --------------------------------------------------------------------------- -// XLMTranscoder: Hidden Constructors -// --------------------------------------------------------------------------- -XMLLCPTranscoder::~XMLLCPTranscoder() -{ -} - -// --------------------------------------------------------------------------- -// XLMTranscoder: Hidden Init Method +// XMLTransTransService: Hidden Init Method // // This is called by platform utils during startup. // --------------------------------------------------------------------------- @@ -550,7 +509,7 @@ void XMLTransService::initTransService() } // --------------------------------------------------------------------------- -// XLMTransService: IANA encoding setting +// XMLTransService: IANA encoding setting // --------------------------------------------------------------------------- void XMLTransService::strictIANAEncoding(const bool newState) { @@ -562,4 +521,50 @@ bool XMLTransService::isStrictIANAEncoding() return gStrictIANAEncoding; } +// --------------------------------------------------------------------------- +// XMLTranscoder: Public Destructor +// --------------------------------------------------------------------------- +XMLTranscoder::~XMLTranscoder() +{ + delete [] fEncodingName; +} + + +// --------------------------------------------------------------------------- +// XMLTranscoder: Hidden Constructors +// --------------------------------------------------------------------------- +XMLTranscoder::XMLTranscoder(const XMLCh* const encodingName + , const unsigned int blockSize) : + fEncodingName(0) + , fBlockSize(blockSize) +{ + fEncodingName = XMLString::replicate(encodingName); +} + + +// --------------------------------------------------------------------------- +// XMLTranscoder: Protected helpers +// --------------------------------------------------------------------------- +void XMLTranscoder::checkBlockSize(const unsigned int toCheck) +{ +// if (toCheck > fBlockSize) +// ThrowXML(TranscodingException, XMLExcepts::Trans_BadBlockSize); +} + + +// --------------------------------------------------------------------------- +// XMLLCPTranscoder: Public Destructor +// --------------------------------------------------------------------------- +XMLLCPTranscoder::XMLLCPTranscoder() +{ +} + + +// --------------------------------------------------------------------------- +// XMLLCPTranscoder: Hidden Constructors +// --------------------------------------------------------------------------- +XMLLCPTranscoder::~XMLLCPTranscoder() +{ +} + XERCES_CPP_NAMESPACE_END -- GitLab