1/* -*- C++ -*-
2 SPDX-FileCopyrightText: 1998 Netscape Communications Corporation <developer@mozilla.org>
3
4 SPDX-License-Identifier: MIT
5*/
6
7#ifndef nsBig5Prober_h__
8#define nsBig5Prober_h__
9
10#include "CharDistribution.h"
11#include "nsCharSetProber.h"
12#include "nsCodingStateMachine.h"
13namespace kencodingprober
14{
15class KCODECS_NO_EXPORT nsBig5Prober : public nsCharSetProber
16{
17public:
18 nsBig5Prober(void)
19 {
20 mCodingSM = new nsCodingStateMachine(&Big5SMModel);
21 Reset();
22 }
23 ~nsBig5Prober() override
24 {
25 delete mCodingSM;
26 }
27 nsProbingState HandleData(const char *aBuf, unsigned int aLen) override;
28 const char *GetCharSetName() override
29 {
30 return "Big5";
31 }
32 nsProbingState GetState(void) override
33 {
34 return mState;
35 }
36 void Reset(void) override;
37 float GetConfidence(void) override;
38 void SetOpion() override
39 {
40 }
41
42protected:
43 void GetDistribution(unsigned int aCharLen, const char *aStr);
44
45 nsCodingStateMachine *mCodingSM;
46 nsProbingState mState;
47
48 // Big5ContextAnalysis mContextAnalyser;
49 Big5DistributionAnalysis mDistributionAnalyser;
50 char mLastChar[2];
51};
52}
53
54#endif /* nsBig5Prober_h__ */
55

source code of kcodecs/src/probers/nsBig5Prober.h