Xerces-C++: TransService.hpp Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22#if !defined(XERCESC_INCLUDE_GUARD_TRANSSERVICE_HPP)
23#define XERCESC_INCLUDE_GUARD_TRANSSERVICE_HPP
24
27#include <xercesc/framework/XMLRecognizer.hpp>
28#include <xercesc/util/RefHashTableOf.hpp>
29#include <xercesc/util/RefVectorOf.hpp>
30#include <xercesc/util/Janitor.hpp>
31
33
34
35
38class ENameMap;
39
40
41
42
43
44
45
46
47
48
49
50
51
53{
54public :
55
56
57
59 {
60 Ok
61 , UnsupportedEncoding
62 , InternalFailure
63 , SupportFilesNotFound
65
71
72
73
74
75
77
78
79
80
81
83 (
84 const XMLCh* const encodingName
88 );
89
91 (
92 const char* const encodingName
96 );
97
99 (
100 XMLRecognizer::Encodings encodingEnum
104 );
105
106
107
108
109
111 (
112 const XMLCh* const comp1
113 , const XMLCh* const comp2
114 ) = 0;
115
117 (
118 const XMLCh* const comp1
119 , const XMLCh* const comp2
121 ) = 0;
122
124
125
126
127
128
129
131
133
136
137
138
139
140
141
142
143
144
145
146 static void addEncoding(const XMLCh* const encoding, ENameMap* const ownMapping);
147
148
149protected :
150
151
152
154
155
156
157
158
159#ifdef OS390
160 friend class Uniconv390TransService;
161#endif
163 (
164 const XMLCh* const encodingName
168 ) = 0;
169
170
171
172
175
176
177
178
179
180
181
182
183
184
185
186
189
190private :
191
192
193
196
197
198
199
200
201 void strictIANAEncoding(const bool newState);
202 bool isStrictIANAEncoding();
203
205};
206
216{
217public :
218
227 {
228 UnRep_Throw
229 , UnRep_RepChar
231
232
235
242
243
244
247
268 (
269 const XMLByte* const srcData
271 , XMLCh* const toFill
274 , unsigned char* const charSizes
275 ) = 0;
276
291 (
292 const XMLCh* const srcData
298 ) = 0;
299
306 (
307 const unsigned int toCheck
308 ) = 0;
309
311
314
320
326 const XMLCh* getEncodingName() const;
328
331
340
342
343protected :
344
345
346
348 (
349 const XMLCh* const encodingName
352 );
353
354
355
356
357
358
359private :
360
361
362
365
366
367
368
369
370
371
372
373
374
375
377 XMLCh* fEncodingName;
379};
380
381
382
383
384
385
386
387
389{
390public :
391
392
393
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
418
421
422
423
424
425
428
431
433 (
434 const char* const toTranscode
435 , XMLCh* const toFill
438 ) = 0;
439
441 (
442 const XMLCh* const toTranscode
443 , char* const toFill
446 ) = 0;
447
448
449protected :
450
451
452
454
455
456private :
457
458
459
462};
463
464
465
466
467
468
470{
471public:
472
473
474
475
484
494
503
513
515
518
522 const XMLByte *str() const;
523
529
535
537
538private:
539
540
541
544
545
546
547
549
550
551
552
553
554
555
556
557
558
559 ArrayJanitor fString;
562};
563
564
565
566
567
568
570{
571public:
572
573
574
575
585
595
597
600
604 const XMLCh *str() const;
605
611
617
619
620private:
621
622
623
626
627
628
629
631
632
633
634
635
636
637
638
639
640
641 ArrayJanitor fString;
644};
645
646
647
648
650{
651 return fMemoryManager;
652}
653
654
655
656
658{
659 return fBlockSize;
660}
661
663{
664 return fEncodingName;
665}
666
667
668
669
671{
672 return fString.get();
673}
674
676{
677 fBytesWritten = 0;
678 return fString.release();
679}
680
682{
683 return fBytesWritten;
684}
685
686
687
688
690{
691 return fString.get();
692}
693
695{
696 fCharsWritten = 0;
697 return fString.release();
698}
699
701{
702 return fCharsWritten;
703}
704
706
707#endif
#define XERCES_CPP_NAMESPACE_BEGIN
Definition XercesDefs.hpp:112
unsigned char XMLByte
Definition XercesDefs.hpp:65
#define XMLUTIL_EXPORT
Definition XercesDefs.hpp:162
#define XERCES_CPP_NAMESPACE_END
Definition XercesDefs.hpp:113
size_t XMLSize_t
Definition Xerces_autoconf_config.hpp:112
char16_t XMLCh
Definition Xerces_autoconf_config.hpp:120
Configurable memory manager.
Definition MemoryManager.hpp:40
Definition TransService.hpp:570
XMLCh * adopt()
Returns the transcoded, null terminated string - adopting the memory allocated to it from the Transco...
Definition TransService.hpp:694
XMLSize_t length() const
Returns the length of the transcoded string in characters.
Definition TransService.hpp:700
TranscodeFromStr(const XMLByte *data, XMLSize_t length, XMLTranscoder *trans, MemoryManager *manager=XMLPlatformUtils::fgMemoryManager)
Converts from the specified encoding to the internal XMLCh* encoding.
const XMLCh * str() const
Returns the transcoded, null terminated string.
Definition TransService.hpp:689
TranscodeFromStr(const XMLByte *data, XMLSize_t length, const char *encoding, MemoryManager *manager=XMLPlatformUtils::fgMemoryManager)
Converts from the specified encoding to the internal XMLCh* encoding.
Definition TransService.hpp:470
XMLSize_t length() const
Returns the length of the transcoded string in bytes.
Definition TransService.hpp:681
const XMLByte * str() const
Returns the transcoded, null terminated string.
Definition TransService.hpp:670
XMLByte * adopt()
Returns the transcoded, null terminated string - adopting the memory allocated to it from the Transco...
Definition TransService.hpp:675
TranscodeToStr(const XMLCh *in, XMLTranscoder *trans, MemoryManager *manager=XMLPlatformUtils::fgMemoryManager)
Converts from the internal XMLCh* encoding to the specified encoding.
TranscodeToStr(const XMLCh *in, const char *encoding, MemoryManager *manager=XMLPlatformUtils::fgMemoryManager)
Converts from the internal XMLCh* encoding to the specified encoding.
TranscodeToStr(const XMLCh *in, XMLSize_t length, const char *encoding, MemoryManager *manager=XMLPlatformUtils::fgMemoryManager)
Converts from the internal XMLCh* encoding to the specified encoding.
TranscodeToStr(const XMLCh *in, XMLSize_t length, XMLTranscoder *trans, MemoryManager *manager=XMLPlatformUtils::fgMemoryManager)
Converts from the internal XMLCh* encoding to the specified encoding.
Utilities that must be implemented in a class-specific way.
Definition XMLInitializer.hpp:38
Definition TransService.hpp:389
virtual bool transcode(const char *const toTranscode, XMLCh *const toFill, const XMLSize_t maxChars, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0
virtual char * transcode(const XMLCh *const toTranscode, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0
virtual XMLSize_t calcRequiredSize(const XMLCh *const srcText, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0
virtual XMLCh * transcode(const char *const toTranscode, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0
virtual ~XMLLCPTranscoder()
virtual bool transcode(const XMLCh *const toTranscode, char *const toFill, const XMLSize_t maxBytes, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0
virtual XMLSize_t calcRequiredSize(const char *const srcText, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0
Utilities that must be implemented in a platform-specific way.
Definition PlatformUtils.hpp:69
static MemoryManager * fgMemoryManager
The configurable memory manager.
Definition PlatformUtils.hpp:121
Definition TransService.hpp:53
XMLTranscoder * makeNewTranscoderFor(const char *const encodingName, XMLTransService::Codes &resValue, const XMLSize_t blockSize, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
virtual ~XMLTransService()
virtual int compareNIString(const XMLCh *const comp1, const XMLCh *const comp2, const XMLSize_t maxChars)=0
virtual void lowerCase(XMLCh *const toLowerCase)=0
XMLTranscoder * makeNewTranscoderFor(const XMLCh *const encodingName, XMLTransService::Codes &resValue, const XMLSize_t blockSize, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
virtual int compareIString(const XMLCh *const comp1, const XMLCh *const comp2)=0
virtual void upperCase(XMLCh *const toUpperCase)=0
virtual XMLLCPTranscoder * makeNewLCPTranscoder(MemoryManager *manager)=0
virtual const XMLCh * getId() const =0
XMLTranscoder * makeNewTranscoderFor(XMLRecognizer::Encodings encodingEnum, XMLTransService::Codes &resValue, const XMLSize_t blockSize, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
virtual bool supportsSrcOfs() const =0
static RefHashTableOf< ENameMap > * gMappings
Definition TransService.hpp:187
virtual XMLTranscoder * makeNewXMLTranscoder(const XMLCh *const encodingName, XMLTransService::Codes &resValue, const XMLSize_t blockSize, MemoryManager *const manager)=0
virtual void initTransService()
static RefVectorOf< ENameMap > * gMappingsRecognizer
Definition TransService.hpp:188
static void addEncoding(const XMLCh *const encoding, ENameMap *const ownMapping)
Codes
Definition TransService.hpp:59
XMLTranscoder is for transcoding non-local code page encodings, i.e.
Definition TransService.hpp:216
UnRepOpts
This enum is used by the transcodeTo() method to indicate how to react to unrepresentable characters.
Definition TransService.hpp:227
const XMLCh * getEncodingName() const
Get the encoding name.
Definition TransService.hpp:662
MemoryManager * getMemoryManager() const
Get the plugged-in memory manager.
Definition TransService.hpp:649
virtual ~XMLTranscoder()
Destructor for XMLTranscoder.
virtual XMLSize_t transcodeTo(const XMLCh *const srcData, const XMLSize_t srcCount, XMLByte *const toFill, const XMLSize_t maxBytes, XMLSize_t &charsEaten, const UnRepOpts options)=0
Converts from the internal XMLCh* encoding to the encoding of the service.
virtual XMLSize_t transcodeFrom(const XMLByte *const srcData, const XMLSize_t srcCount, XMLCh *const toFill, const XMLSize_t maxChars, XMLSize_t &bytesEaten, unsigned char *const charSizes)=0
Converts from the encoding of the service to the internal XMLCh* encoding.
XMLTranscoder(const XMLCh *const encodingName, const XMLSize_t blockSize, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
XMLSize_t getBlockSize() const
Get the internal block size.
Definition TransService.hpp:657
virtual bool canTranscodeTo(const unsigned int toCheck)=0
Query whether the transcoder can handle a given character.
This class makes it possible to override the C++ memory management by adding new/delete operators to ...
Definition XMemory.hpp:41
Definition TransService.hpp:67
XMLCh intCh
Definition TransService.hpp:68
XMLByte extCh
Definition TransService.hpp:69