extensions/universalchardet/src/xpcom/nsUdetXPCOMWrapper.h

changeset 0
6474c204b198
     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__

mercurial