1// Copyright (c) 2009 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef ENCODINGS_COMPACT_LANG_DET_CLDUTIL_DBG_H_
6#define ENCODINGS_COMPACT_LANG_DET_CLDUTIL_DBG_H_
7
8#include "encodings/compact_lang_det/cldutil.h"
9#include <string>
10#include "encodings/compact_lang_det/ext_lang_enc.h"
11#include "encodings/compact_lang_det/tote.h"
12#include "encodings/compact_lang_det/win/cld_basictypes.h"
13#include "encodings/compact_lang_det/win/cld_commandlineflags.h"
14
15DECLARE_bool(dbgscore);
16DECLARE_bool(dbglookup);
17DECLARE_bool(dbgreli);
18
19using std::string;
20
21namespace cld {
22
23
24//------------------------------------------------------------------------------
25// Debugging. Not thread safe
26//------------------------------------------------------------------------------
27
28  void DbgScoreInit(const char* src, int len);
29
30  // Return a 3-byte + NUL code for language
31  void DbgLangName3(Language lang, char* temp);
32
33  // Show all per-language totals
34  void DbgScoreState();
35
36  void DbgScoreTop(const char* src, int srclen, Tote* chunk_tote);
37
38  void DbgScoreFlush();
39
40  // Allow additional scoring debug output
41  void DbgScoreRecord(const char* src, uint32 probs, int len);
42
43  void DbgScoreRecordUni(const char* src, int propval, int len);
44
45  // Debug print language name(s)
46  void PrintLang(FILE* f, const Tote* chunk_tote,
47                 const Language cur_lang, const bool cur_unreliable,
48                 Language prior_lang, bool prior_unreliable);
49
50  // Debug print language name(s)
51  void PrintLang2(FILE* f,
52                  const Language lang1, const Language lang2, bool diff_prior);
53
54  // Debug print text span
55  void PrintText(FILE* f, Language cur_lang, const string& str);
56
57  // Debug print text span with speculative language
58  void PrintTextSpeculative(FILE* f, Language cur_lang, const string& str);
59
60  // Debug print ignored text span
61  void PrintSkippedText(FILE* f, const string& str);
62
63  void DbgProbsToStderr(uint32 probs);
64  void DbgUniTermToStderr(int propval, const uint8* usrc, int len);
65  // No pre/post space
66  void DbgBiTermToStderr(uint32 bihash, uint32 probs,
67                          const char* src, int len);
68  void DbgQuadTermToStderr(uint32 quadhash, uint32 probs,
69                          const char* src, int len);
70  void DbgWordTermToStderr(uint64 wordhash, uint32 probs,
71                          const char* src, int len);
72
73}       // End namespace cld
74
75
76#endif  // ENCODINGS_COMPACT_LANG_DET_CLDUTIL_DBG_H_
77