// Copyright (C) 2020 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. import {Engine} from '../common/engine'; import {NUM} from '../common/query_result'; import {publishTraceErrors} from '../frontend/publish'; import {Controller} from './controller'; export interface TraceErrorControllerArgs { engine: Engine; } export class TraceErrorController extends Controller<'main'> { private hasRun = false; constructor(private args: TraceErrorControllerArgs) { super('main'); } run() { if (this.hasRun) { return; } this.hasRun = true; const engine = this.args.engine; engine .query( `SELECT sum(value) as sumValue FROM stats WHERE severity != 'info'`) .then((result) => { const errors = result.firstRow({sumValue: NUM}).sumValue; publishTraceErrors(errors); }); } }