File Coverage

src/nsEUCTWProber.cpp
Criterion Covered Total %
statement 15 27 55.5
branch 6 18 33.3
condition n/a
subroutine n/a
pod n/a
total 21 45 46.6


line stmt bran cond sub pod time code
1             /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2             /* ***** BEGIN LICENSE BLOCK *****
3             * Version: MPL 1.1/GPL 2.0/LGPL 2.1
4             *
5             * The contents of this file are subject to the Mozilla Public License Version
6             * 1.1 (the "License"); you may not use this file except in compliance with
7             * the License. You may obtain a copy of the License at
8             * http://www.mozilla.org/MPL/
9             *
10             * Software distributed under the License is distributed on an "AS IS" basis,
11             * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12             * for the specific language governing rights and limitations under the
13             * License.
14             *
15             * The Original Code is mozilla.org code.
16             *
17             * The Initial Developer of the Original Code is
18             * Netscape Communications Corporation.
19             * Portions created by the Initial Developer are Copyright (C) 1998
20             * the Initial Developer. All Rights Reserved.
21             *
22             * Contributor(s):
23             *
24             * Alternatively, the contents of this file may be used under the terms of
25             * either the GNU General Public License Version 2 or later (the "GPL"), or
26             * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
27             * in which case the provisions of the GPL or the LGPL are applicable instead
28             * of those above. If you wish to allow use of your version of this file only
29             * under the terms of either the GPL or the LGPL, and not to allow others to
30             * use your version of this file under the terms of the MPL, indicate your
31             * decision by deleting the provisions above and replace them with the notice
32             * and other provisions required by the GPL or the LGPL. If you do not delete
33             * the provisions above, a recipient may use your version of this file under
34             * the terms of any one of the MPL, the GPL or the LGPL.
35             *
36             * ***** END LICENSE BLOCK ***** */
37              
38             #include "nsEUCTWProber.h"
39              
40 8           void nsEUCTWProber::Reset(void)
41             {
42 8           mCodingSM->Reset();
43 8           mState = eDetecting;
44             mDistributionAnalyser.Reset();
45             //mContextAnalyser.Reset();
46 8           }
47              
48 8           nsProbingState nsEUCTWProber::HandleData(const char* aBuf, PRUint32 aLen)
49             {
50             nsSMState codingState;
51              
52 6 50         for (PRUint32 i = 0; i < aLen; i++)
53             {
54 6           codingState = mCodingSM->NextState(aBuf[i]);
55 6 100         if (codingState == eError)
56             {
57 4           mState = eNotMe;
58 4           break;
59             }
60 2 50         if (codingState == eItsMe)
61             {
62 0           mState = eFoundIt;
63 0           break;
64             }
65 2 50         if (codingState == eStart)
66             {
67 0           PRUint32 charLen = mCodingSM->GetCurrentCharLen();
68              
69 0 0         if (i == 0)
70             {
71 0           mLastChar[1] = aBuf[0];
72 0           mDistributionAnalyser.HandleOneChar(mLastChar, charLen);
73             }
74             else
75 0           mDistributionAnalyser.HandleOneChar(aBuf+i-1, charLen);
76             }
77             }
78              
79 4           mLastChar[0] = aBuf[aLen-1];
80              
81 4 50         if (mState == eDetecting)
82 0 0         if (mDistributionAnalyser.GotEnoughData() && GetConfidence() > SHORTCUT_THRESHOLD)
    0          
    0          
83 0           mState = eFoundIt;
84             // else
85             // mDistributionAnalyser.HandleData(aBuf, aLen);
86              
87 4           return mState;
88             }
89              
90 0           float nsEUCTWProber::GetConfidence(void)
91             {
92 0           float distribCf = mDistributionAnalyser.GetConfidence();
93              
94 0           return (float)distribCf;
95             }
96