code: def make(self, apps):
          for (appname, app) in sorted(apps.items(), key=lambda x: (x[1].priority, x[0])):
              logger.info('Getting report results from %r', appname)
              for report_data in app.report_data:
                  if report_data.subreport != self.name:
                      continue
                  if report_data.function == 'total':
                      for opt in report_data:
                          match = report_data.parse_report_data(opt)
                          cond = match.group('condition')
                          valfld = match.group('valfld')
                          unit = match.group('unit')
                          itemtitle = match.group('fields').strip('"')
                          total = report_data.rules[opt].total_events(cond, valfld)
                          if total == 0:
                              continue
                          if unit is not None:
                              total, unit = get_value_unit(total, unit, 'T')
                              total = '{0} {1}'.format(total, unit)
                          else:
                              total = str(total)
                          report_data.results.append(tuple([total, itemtitle]))
                  elif report_data.function == 'top':
                      k = int(report_data.topnum)
                      for opt in report_data:
                          match = report_data.parse_report_data(opt)
                          valfld = match.group('valfld')
                          field = match.group('fields')
                          usemax = match.group('add2res') is None
                          toplist = report_data.rules[opt].top_events(k, valfld, usemax, field)
                          report_data.results.extend(toplist)
                  elif report_data.function == 'table':
                      cols = len(re.split('\s*,\s*', report_data.headers))
                      for opt in report_data:
                          match = report_data.parse_report_data(opt)
                          cond = match.group('condition')
                          fields = re.split('\s*,\s*', match.group('fields'))
                          tablelist = report_data.rules[opt].list_events(cond, cols, fields)
                          report_data.results.extend(tablelist)
                  if report_data.results:
                      self.report_data.append(report_data)
          for report_data in self.report_data:
              if report_data.function == 'top':
                  report_data.results = sorted(report_data.results, key=lambda x: x[0], reverse=True)
                  unit = None
                  for opt in report_data:
                      match = report_data.parse_report_data(opt)
                      unit = match.group('unit')
                      if unit is not None:
                          break
                  for res in report_data.results:
                      if unit is not None:
                          v, u = get_value_unit(res[0], unit, 'T')
                          res[0] = '{0} {1}'.format(v, u)
                      else:
                          res[0] = str(res[0])