001/******************************************************************************* 002 * Copyright 2017 The MIT Internet Trust Consortium 003 * 004 * Portions copyright 2011-2013 The MITRE Corporation 005 * 006 * Licensed under the Apache License, Version 2.0 (the "License"); 007 * you may not use this file except in compliance with the License. 008 * You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, 014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 *******************************************************************************/ 018/** 019 * 020 */ 021package org.mitre.openid.connect.service; 022 023import java.util.Map; 024 025import org.mitre.openid.connect.model.ClientStat; 026 027/** 028 * @author jricher 029 * 030 */ 031public interface StatsService { 032 033 /** 034 * Calculate summary statistics 035 * approvalCount: total approved sites 036 * userCount: unique users 037 * clientCount: unique clients 038 * 039 * @return 040 */ 041 public Map<String, Integer> getSummaryStats(); 042 043 /** 044 * Calculate the usage count for a single client 045 * 046 * @param clientId the id of the client to search on 047 * @return 048 */ 049 public ClientStat getCountForClientId(String clientId); 050 051 /** 052 * Trigger the stats to be recalculated upon next update. 053 */ 054 public void resetCache(); 055 056}