195640e3a20adea634b4df4ccf8c93f411184c438joi@chromium.org#!/usr/bin/env python 295640e3a20adea634b4df4ccf8c93f411184c438joi@chromium.org# Copyright (c) 2012 The Chromium Authors. All rights reserved. 301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org# Use of this source code is governed by a BSD-style license that can be 401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org# found in the LICENSE file. 501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 68a303dc2cabedfd395b49f21310ea21c77056fe7joi@chromium.org'''Count number of occurrences of a given message ID.''' 701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgfrom grit import grd_reader 9b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.orgfrom grit.tool import interface 1001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 1101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 1201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass CountMessage(interface.Tool): 138a303dc2cabedfd395b49f21310ea21c77056fe7joi@chromium.org '''Count the number of times a given message ID is used.''' 1401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 1501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def __init__(self): 1601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org pass 1701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 1801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def ShortDescription(self): 198a303dc2cabedfd395b49f21310ea21c77056fe7joi@chromium.org return 'Count the number of times a given message ID is used.' 2001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 2101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def Run(self, opts, args): 2201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.SetOptions(opts) 2301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 2401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org id = args[0] 2501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org res_tree = grd_reader.Parse(opts.input, debug=opts.extra_verbose) 2601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org res_tree.OnlyTheseTranslations([]) 27ccda47032903a6550dac2921f88c51b4da55aa36benrg@chromium.org res_tree.RunGatherers() 2801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 2901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org count = 0 3001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org for c in res_tree.UberClique().AllCliques(): 3101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org if c.GetId() == id: 3201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org count += 1 3301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 3401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org print "There are %d occurrences of message %s." % (count, id) 3501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 36