1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/extensions/universalchardet/src/xpcom/nsUdetXPCOMWrapper.h Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,211 @@ 1.4 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 1.5 +/* This Source Code Form is subject to the terms of the Mozilla Public 1.6 + * License, v. 2.0. If a copy of the MPL was not distributed with this 1.7 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 1.8 + 1.9 +#ifndef _nsUdetXPCOMWrapper_h__ 1.10 +#define _nsUdetXPCOMWrapper_h__ 1.11 +#include "nsISupports.h" 1.12 +#include "nsICharsetDetector.h" 1.13 +#include "nsIStringCharsetDetector.h" 1.14 +#include "nsICharsetDetectionObserver.h" 1.15 +#include "nsCOMPtr.h" 1.16 + 1.17 +#include "nsIFactory.h" 1.18 + 1.19 +// {374E0CDE-F605-4259-8C92-E639C6C2EEEF} 1.20 +#define NS_UNIVERSAL_DETECTOR_CID \ 1.21 +{ 0x374e0cde, 0xf605, 0x4259, { 0x8c, 0x92, 0xe6, 0x39, 0xc6, 0xc2, 0xee, 0xef } } 1.22 + 1.23 +// {6EE5301A-3981-49bd-85F8-1A2CC228CF3E} 1.24 +#define NS_UNIVERSAL_STRING_DETECTOR_CID \ 1.25 +{ 0x6ee5301a, 0x3981, 0x49bd, { 0x85, 0xf8, 0x1a, 0x2c, 0xc2, 0x28, 0xcf, 0x3e } } 1.26 + 1.27 +// {12BB8F1B-2389-11d3-B3BF-00805F8A6670} 1.28 +#define NS_JA_PSMDETECTOR_CID \ 1.29 +{ 0x12bb8f1b, 0x2389, 0x11d3, { 0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70 } } 1.30 + 1.31 +// {12BB8F1C-2389-11d3-B3BF-00805F8A6670} 1.32 +#define NS_JA_STRING_PSMDETECTOR_CID \ 1.33 +{ 0x12bb8f1c, 0x2389, 0x11d3, { 0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70 } } 1.34 + 1.35 +// {EA06D4E1-2B3D-11d3-B3BF-00805F8A6670} 1.36 +#define NS_KO_PSMDETECTOR_CID \ 1.37 +{ 0xea06d4e1, 0x2b3d, 0x11d3, { 0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70 } } 1.38 + 1.39 +// {EA06D4E2-2B3D-11d3-B3BF-00805F8A6670} 1.40 +#define NS_ZHCN_PSMDETECTOR_CID \ 1.41 +{ 0xea06d4e2, 0x2b3d, 0x11d3, { 0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70 } } 1.42 + 1.43 +// {EA06D4E3-2B3D-11d3-B3BF-00805F8A6670} 1.44 +#define NS_ZHTW_PSMDETECTOR_CID \ 1.45 +{ 0xea06d4e3, 0x2b3d, 0x11d3, { 0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70 } } 1.46 + 1.47 + 1.48 +// {EA06D4E4-2B3D-11d3-B3BF-00805F8A6670} 1.49 +#define NS_KO_STRING_PSMDETECTOR_CID \ 1.50 +{ 0xea06d4e4, 0x2b3d, 0x11d3, { 0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70 } } 1.51 + 1.52 +// {EA06D4E5-2B3D-11d3-B3BF-00805F8A6670} 1.53 +#define NS_ZHCN_STRING_PSMDETECTOR_CID \ 1.54 +{ 0xea06d4e5, 0x2b3d, 0x11d3, { 0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70 } } 1.55 + 1.56 +// {EA06D4E6-2B3D-11d3-B3BF-00805F8A6670} 1.57 +#define NS_ZHTW_STRING_PSMDETECTOR_CID \ 1.58 +{ 0xea06d4e6, 0x2b3d, 0x11d3, { 0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70 } } 1.59 + 1.60 + 1.61 +// {FCACEF21-2B40-11d3-B3BF-00805F8A6670} 1.62 +#define NS_ZH_STRING_PSMDETECTOR_CID \ 1.63 +{ 0xfcacef21, 0x2b40, 0x11d3, { 0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70 } } 1.64 + 1.65 +// {FCACEF22-2B40-11d3-B3BF-00805F8A6670} 1.66 +#define NS_CJK_STRING_PSMDETECTOR_CID \ 1.67 +{ 0xfcacef22, 0x2b40, 0x11d3, { 0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70 } } 1.68 + 1.69 + 1.70 +// {FCACEF23-2B40-11d3-B3BF-00805F8A6670} 1.71 +#define NS_ZH_PSMDETECTOR_CID \ 1.72 +{ 0xfcacef23, 0x2b40, 0x11d3, { 0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70 } } 1.73 + 1.74 +// {FCACEF24-2B40-11d3-B3BF-00805F8A6670} 1.75 +#define NS_CJK_PSMDETECTOR_CID \ 1.76 +{ 0xfcacef24, 0x2b40, 0x11d3, { 0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70 } } 1.77 + 1.78 +//===================================================================== 1.79 +class nsXPCOMDetector : 1.80 + public nsUniversalDetector, 1.81 + public nsICharsetDetector 1.82 +{ 1.83 + NS_DECL_ISUPPORTS 1.84 + public: 1.85 + nsXPCOMDetector(uint32_t aLanguageFilter); 1.86 + virtual ~nsXPCOMDetector(); 1.87 + NS_IMETHOD Init(nsICharsetDetectionObserver* aObserver); 1.88 + NS_IMETHOD DoIt(const char* aBuf, uint32_t aLen, bool *oDontFeedMe); 1.89 + NS_IMETHOD Done(); 1.90 + protected: 1.91 + virtual void Report(const char* aCharset); 1.92 + private: 1.93 + nsCOMPtr<nsICharsetDetectionObserver> mObserver; 1.94 +}; 1.95 + 1.96 + 1.97 +//===================================================================== 1.98 +class nsXPCOMStringDetector : 1.99 + public nsUniversalDetector, 1.100 + public nsIStringCharsetDetector 1.101 +{ 1.102 + NS_DECL_ISUPPORTS 1.103 + public: 1.104 + nsXPCOMStringDetector(uint32_t aLanguageFilter); 1.105 + virtual ~nsXPCOMStringDetector(); 1.106 + NS_IMETHOD DoIt(const char* aBuf, uint32_t aLen, 1.107 + const char** oCharset, nsDetectionConfident &oConf); 1.108 + protected: 1.109 + virtual void Report(const char* aCharset); 1.110 + private: 1.111 + nsCOMPtr<nsICharsetDetectionObserver> mObserver; 1.112 + const char* mResult; 1.113 +}; 1.114 + 1.115 +//===================================================================== 1.116 +class nsUniversalXPCOMDetector : public nsXPCOMDetector 1.117 +{ 1.118 +public: 1.119 + nsUniversalXPCOMDetector() 1.120 + : nsXPCOMDetector(NS_FILTER_ALL) {} 1.121 +}; 1.122 + 1.123 +class nsUniversalXPCOMStringDetector : public nsXPCOMStringDetector 1.124 +{ 1.125 +public: 1.126 + nsUniversalXPCOMStringDetector() 1.127 + : nsXPCOMStringDetector(NS_FILTER_ALL) {} 1.128 +}; 1.129 + 1.130 +class nsJAPSMDetector : public nsXPCOMDetector 1.131 +{ 1.132 +public: 1.133 + nsJAPSMDetector() 1.134 + : nsXPCOMDetector(NS_FILTER_JAPANESE) {} 1.135 +}; 1.136 + 1.137 +class nsJAStringPSMDetector : public nsXPCOMStringDetector 1.138 +{ 1.139 +public: 1.140 + nsJAStringPSMDetector() 1.141 + : nsXPCOMStringDetector(NS_FILTER_JAPANESE) {} 1.142 +}; 1.143 + 1.144 +class nsKOPSMDetector : public nsXPCOMDetector 1.145 +{ 1.146 +public: 1.147 + nsKOPSMDetector() 1.148 + : nsXPCOMDetector(NS_FILTER_KOREAN) {} 1.149 +}; 1.150 + 1.151 +class nsKOStringPSMDetector : public nsXPCOMStringDetector 1.152 +{ 1.153 +public: 1.154 + nsKOStringPSMDetector() 1.155 + : nsXPCOMStringDetector(NS_FILTER_KOREAN) {} 1.156 +}; 1.157 + 1.158 +class nsZHTWPSMDetector : public nsXPCOMDetector 1.159 +{ 1.160 +public: 1.161 + nsZHTWPSMDetector() 1.162 + : nsXPCOMDetector(NS_FILTER_CHINESE_TRADITIONAL) {} 1.163 +}; 1.164 + 1.165 +class nsZHTWStringPSMDetector : public nsXPCOMStringDetector 1.166 +{ 1.167 +public: 1.168 + nsZHTWStringPSMDetector() 1.169 + : nsXPCOMStringDetector(NS_FILTER_CHINESE_TRADITIONAL) {} 1.170 +}; 1.171 + 1.172 +class nsZHCNPSMDetector : public nsXPCOMDetector 1.173 +{ 1.174 +public: 1.175 + nsZHCNPSMDetector() 1.176 + : nsXPCOMDetector(NS_FILTER_CHINESE_SIMPLIFIED) {} 1.177 +}; 1.178 + 1.179 +class nsZHCNStringPSMDetector : public nsXPCOMStringDetector 1.180 +{ 1.181 +public: 1.182 + nsZHCNStringPSMDetector() 1.183 + : nsXPCOMStringDetector(NS_FILTER_CHINESE_SIMPLIFIED) {} 1.184 +}; 1.185 + 1.186 +class nsZHPSMDetector : public nsXPCOMDetector 1.187 +{ 1.188 +public: 1.189 + nsZHPSMDetector() 1.190 + : nsXPCOMDetector(NS_FILTER_CHINESE) {} 1.191 +}; 1.192 + 1.193 +class nsZHStringPSMDetector : public nsXPCOMStringDetector 1.194 +{ 1.195 +public: 1.196 + nsZHStringPSMDetector() 1.197 + : nsXPCOMStringDetector(NS_FILTER_CHINESE) {} 1.198 +}; 1.199 + 1.200 +class nsCJKPSMDetector : public nsXPCOMDetector 1.201 +{ 1.202 +public: 1.203 + nsCJKPSMDetector() 1.204 + : nsXPCOMDetector(NS_FILTER_CJK) {} 1.205 +}; 1.206 + 1.207 +class nsCJKStringPSMDetector : public nsXPCOMStringDetector 1.208 +{ 1.209 +public: 1.210 + nsCJKStringPSMDetector() 1.211 + : nsXPCOMStringDetector(NS_FILTER_CJK) {} 1.212 +}; 1.213 + 1.214 +#endif //_nsUdetXPCOMWrapper_h__