1 /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* This Source Code Form is subject to the terms of the Mozilla Public 3 * License, v. 2.0. If a copy of the MPL was not distributed with this 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 5 6 #ifndef nsEUCKRProber_h__ 7 #define nsEUCKRProber_h__ 8 9 #include "nsCharSetProber.h" 10 #include "nsCodingStateMachine.h" 11 #include "CharDistribution.h" 12 13 class nsEUCKRProber: public nsCharSetProber { 14 public: nsEUCKRProber(bool aIsPreferredLanguage)15 nsEUCKRProber(bool aIsPreferredLanguage) 16 :mIsPreferredLanguage(aIsPreferredLanguage) 17 {mCodingSM = new nsCodingStateMachine(&EUCKRSMModel); 18 Reset(); 19 } ~nsEUCKRProber(void)20 virtual ~nsEUCKRProber(void){delete mCodingSM;} 21 nsProbingState HandleData(const char* aBuf, uint32_t aLen); GetCharSetName()22 const char* GetCharSetName() {return "EUC-KR";} GetState(void)23 nsProbingState GetState(void) {return mState;} 24 void Reset(void); 25 float GetConfidence(void); 26 27 protected: 28 void GetDistribution(uint32_t aCharLen, const char* aStr); 29 30 nsCodingStateMachine* mCodingSM; 31 nsProbingState mState; 32 33 //EUCKRContextAnalysis mContextAnalyser; 34 EUCKRDistributionAnalysis mDistributionAnalyser; 35 char mLastChar[2]; 36 bool mIsPreferredLanguage; 37 38 }; 39 40 41 #endif /* nsEUCKRProber_h__ */ 42 43