Global Metrics

path: .metrics.mi.mi_sei
old: 36.77481992082198
new: 93.18695702010253

path: .metrics.mi.mi_original
old: 53.42428936437213
new: 86.19410720196527

path: .metrics.mi.mi_visual_studio
old: 31.242274482088963
new: 50.40591064442413

path: .metrics.cognitive.average
old: null
new: 0.0

path: .metrics.cognitive.sum
old: 3.0
new: 0.0

path: .metrics.loc.cloc
old: 30.0
new: 19.0

path: .metrics.loc.ploc
old: 71.0
new: 16.0

path: .metrics.loc.blank
old: 28.0
new: 4.0

path: .metrics.loc.sloc
old: 129.0
new: 39.0

path: .metrics.nexits.average
old: null
new: 0.0

path: .metrics.nom.functions
old: 0.0
new: 1.0

path: .metrics.nom.total
old: 0.0
new: 1.0

path: .metrics.cyclomatic.sum
old: 14.0
new: 4.0

path: .metrics.cyclomatic.average
old: 2.3333333333333335
new: 1.0

path: .metrics.nargs.average
old: null
new: 0.0

path: .metrics.halstead.N2
old: 83.0
new: 11.0

path: .metrics.halstead.difficulty
old: 10.86904761904762
new: 5.5

path: .metrics.halstead.vocabulary
old: 53.0
new: 16.0

path: .metrics.halstead.n1
old: 11.0
new: 8.0

path: .metrics.halstead.N1
old: 82.0
new: 17.0

path: .metrics.halstead.length
old: 165.0
new: 28.0

path: .metrics.halstead.volume
old: 945.1068750029278
new: 112.0

path: .metrics.halstead.bugs
old: 0.1575168510589568
new: 0.02413232803113718

path: .metrics.halstead.n2
old: 42.0
new: 8.0

path: .metrics.halstead.time
old: 570.689534972006
new: 34.22222222222222

path: .metrics.halstead.estimated_program_length
old: 264.53107956171823
new: 48.0

path: .metrics.halstead.level
old: 0.09200438116100768
new: 0.18181818181818185

path: .metrics.halstead.effort
old: 10272.411629496108
new: 616.0

path: .metrics.halstead.purity_ratio
old: 1.6032186640104136
new: 1.7142857142857142

Spaces Data

Minimal test - lines (12, 37)

path: .spaces[0].metrics.cognitive.average
old: null
new: 0.0

path: .spaces[0].metrics.mi.mi_visual_studio
old: 75.10711085881216
new: 54.87638675150316

path: .spaces[0].metrics.mi.mi_sei
old: 109.69085026266684
new: 103.41759085010176

path: .spaces[0].metrics.mi.mi_original
old: 128.43315956856878
new: 93.8386213450704

path: .spaces[0].metrics.nom.total
old: 0.0
new: 1.0

path: .spaces[0].metrics.nom.functions
old: 0.0
new: 1.0

path: .spaces[0].metrics.loc.sloc
old: 7.0
new: 26.0

path: .spaces[0].metrics.loc.cloc
old: 0.0
new: 12.0

path: .spaces[0].metrics.loc.ploc
old: 7.0
new: 12.0

path: .spaces[0].metrics.loc.blank
old: 0.0
new: 2.0

path: .spaces[0].metrics.halstead.effort
old: 12.0
new: 507.64732294101384

path: .spaces[0].metrics.halstead.estimated_program_length
old: 4.754887502163468
new: 39.50977500432694

path: .spaces[0].metrics.halstead.difficulty
old: 1.5
new: 5.333333333333333

path: .spaces[0].metrics.halstead.level
old: 0.6666666666666666
new: 0.1875

path: .spaces[0].metrics.halstead.purity_ratio
old: 1.188721875540867
new: 1.5803910001730777

path: .spaces[0].metrics.halstead.n2
old: 1.0
new: 6.0

path: .spaces[0].metrics.halstead.length
old: 4.0
new: 25.0

path: .spaces[0].metrics.halstead.time
old: 0.6666666666666666
new: 28.202629052278542

path: .spaces[0].metrics.halstead.N1
old: 3.0
new: 17.0

path: .spaces[0].metrics.halstead.N2
old: 1.0
new: 8.0

path: .spaces[0].metrics.halstead.bugs
old: 0.0017471609294725976
new: 0.021212253674190253

path: .spaces[0].metrics.halstead.volume
old: 8.0
new: 95.1838730514401

path: .spaces[0].metrics.halstead.n1
old: 3.0
new: 8.0

path: .spaces[0].metrics.halstead.vocabulary
old: 4.0
new: 14.0

path: .spaces[0].metrics.nargs.average
old: null
new: 0.0

path: .spaces[0].metrics.cyclomatic.sum
old: 1.0
new: 3.0

path: .spaces[0].metrics.nexits.average
old: null
new: 0.0

Code

namespace mozilla {

/**
 * Watches for changes to "logging.*" prefs and then updates the appropriate
 * LogModule's log level. Both the integer and string versions of the LogLevel
 * enum are supported.
 *
 * For example setting the pref "logging.Foo" to "Verbose" will set the
 * LogModule for "Foo" to the LogLevel::Verbose level. Setting "logging.Bar" to
 * 4 would set the LogModule for "Bar" to the LogLevel::Debug level.
 */
class LogModulePrefWatcher : public nsIObserver {
 public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIOBSERVER

  /**
   * Starts observing logging pref changes.
   */
  static void RegisterPrefWatcher();

 private:
  LogModulePrefWatcher();
  virtual ~LogModulePrefWatcher() = default;
};
}  // namespace mozilla