1ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/* 2ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ********************************************************************** 354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius * Copyright (C) 2005-2012, International Business Machines 4ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Corporation and others. All Rights Reserved. 5ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ********************************************************************** 6ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 7ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 8ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#ifndef __CSRUCODE_H 9ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define __CSRUCODE_H 10ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 11ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/utypes.h" 12ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#if !UCONFIG_NO_CONVERSION 14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "csrecog.h" 16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_NAMESPACE_BEGIN 18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * This class matches UTF-16 and UTF-32, both big- and little-endian. The 21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * BOM will be used if it is present. 22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 25ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruclass CharsetRecog_Unicode : public CharsetRecognizer 26ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 27ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 28ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querupublic: 29ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 30ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru virtual ~CharsetRecog_Unicode(); 31ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /* (non-Javadoc) 32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @see com.ibm.icu.text.CharsetRecognizer#getName() 33ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 34ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru const char* getName() const = 0; 35ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 36ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /* (non-Javadoc) 37ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @see com.ibm.icu.text.CharsetRecognizer#match(com.ibm.icu.text.CharsetDetector) 38ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 3954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UBool match(InputText* textIn, CharsetMatch *results) const = 0; 40ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}; 41ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 42ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 43ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruclass CharsetRecog_UTF_16_BE : public CharsetRecog_Unicode 44ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 45ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querupublic: 46ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 47ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru virtual ~CharsetRecog_UTF_16_BE(); 48ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 49ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru const char *getName() const; 50ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 5154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UBool match(InputText* textIn, CharsetMatch *results) const; 52ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}; 53ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 54ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruclass CharsetRecog_UTF_16_LE : public CharsetRecog_Unicode 55ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 56ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querupublic: 57ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 58ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru virtual ~CharsetRecog_UTF_16_LE(); 59ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 60ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru const char *getName() const; 61ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 6254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UBool match(InputText* textIn, CharsetMatch *results) const; 63ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}; 64ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 65ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruclass CharsetRecog_UTF_32 : public CharsetRecog_Unicode 66ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 67ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruprotected: 68ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru virtual int32_t getChar(const uint8_t *input, int32_t index) const = 0; 69ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querupublic: 70ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 71ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru virtual ~CharsetRecog_UTF_32(); 72ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 73ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru const char* getName() const = 0; 74ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 7554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UBool match(InputText* textIn, CharsetMatch *results) const; 76ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}; 77ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 78ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 79ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruclass CharsetRecog_UTF_32_BE : public CharsetRecog_UTF_32 80ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 81ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruprotected: 82ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru int32_t getChar(const uint8_t *input, int32_t index) const; 83ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 84ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querupublic: 85ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 86ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru virtual ~CharsetRecog_UTF_32_BE(); 87ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 88ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru const char *getName() const; 89ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}; 90ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 91ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 92ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruclass CharsetRecog_UTF_32_LE : public CharsetRecog_UTF_32 93ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 94ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruprotected: 95ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru int32_t getChar(const uint8_t *input, int32_t index) const; 96ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 97ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querupublic: 98ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru virtual ~CharsetRecog_UTF_32_LE(); 99ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 100ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru const char* getName() const; 101ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}; 102ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 103ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_NAMESPACE_END 104ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 105ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif 106ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif /* __CSRUCODE_H */ 107