• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright (C) 2020 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//      http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15import {Engine} from '../common/engine';
16import {NUM} from '../common/query_result';
17import {publishTraceErrors} from '../frontend/publish';
18
19import {Controller} from './controller';
20
21export interface TraceErrorControllerArgs {
22  engine: Engine;
23}
24
25export class TraceErrorController extends Controller<'main'> {
26  private hasRun = false;
27  constructor(private args: TraceErrorControllerArgs) {
28    super('main');
29  }
30
31  run() {
32    if (this.hasRun) {
33      return;
34    }
35    this.hasRun = true;
36    const engine = this.args.engine;
37    engine
38        .query(
39            `SELECT sum(value) as sumValue FROM stats WHERE severity != 'info'`)
40        .then((result) => {
41          const errors = result.firstRow({sumValue: NUM}).sumValue;
42          publishTraceErrors(errors);
43        });
44  }
45}
46