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