📄 jmulecorestats.java
字号:
/* * JMule - Java file sharing client * Copyright (C) 2007-2008 JMule team ( jmule@jmule.org / http://jmule.org ) * * Any parts of this program derived from other projects, or contributed * by third-party developers are copyrighted by their respective authors. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * */package org.jmule.core.statistics;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.Set;import java.util.regex.Pattern;/** * * Created on Aug 17, 2008 * @author javajox * @author binary256_ * @version $Revision: 1.2 $ * Last changed by $Author: binary256_ $ on $Date: 2008/08/20 15:38:02 $ */public class JMuleCoreStats { public static final String ST_NET_SESSION_DOWNLOAD_BYTES = "net.session.download.bytes"; public static final String ST_NET_SESSION_UPLOAD_BYTES = "net.session.upload.bytes"; public static final String ST_NET_SESSION_DOWNLOAD_COUNT = "net.session.download.count"; public static final String ST_NET_SESSION_UPLOAD_COUNT = "net.session.upload.count"; public static final String ST_NET_PEERS_COUNT = "net.peers.count"; public static final String ST_NET_PEERS_DOWNLOAD_COUNT = "net.peers.download.count"; public static final String ST_NET_PEERS_UPLOAD_COUNT = "net.peers.upload.count"; public static final String ST_NET_SERVERS_COUNT = "net.servers.count"; public static final String ST_NET_SERVERS_DEAD_COUNT = "net.servers.dead.count"; public static final String ST_NET_SERVERS_ALIVE_COUNT = "net.servers.alive.count"; public static final String ST_DISK_SHARED_FILES_COUNT = "disk.shared.files.count"; public static final String ST_DISK_SHARED_FILES_PARTIAL_COUNT = "disk.shared.files.partial.count"; public static final String ST_DISK_SHARED_FILES_COMPLETE_COUNT = "disk.shared.files.complete.count"; public static final String ST_DISK_SHARED_FILES_BYTES = "disk.shared.files.bytes"; public static final String ST_DISK_SHARED_FILES_PARTIAL_BYTES = "disk.shared.files.partial.bytes"; public static final String ST_DISK_SHARED_FILES_COMPLETE_BYTES = "disk.shared.files.complete.bytes"; public static final String SEARCHES_COUNT = "searches.count"; private static final String[] _ST_ALL = { ST_NET_SESSION_DOWNLOAD_BYTES, ST_NET_SESSION_UPLOAD_BYTES, ST_NET_SESSION_DOWNLOAD_COUNT, ST_NET_SESSION_UPLOAD_COUNT, ST_NET_PEERS_COUNT, ST_NET_PEERS_DOWNLOAD_COUNT, ST_NET_PEERS_UPLOAD_COUNT, ST_NET_SERVERS_COUNT, ST_NET_SERVERS_DEAD_COUNT, ST_NET_SERVERS_ALIVE_COUNT, ST_DISK_SHARED_FILES_COUNT, ST_DISK_SHARED_FILES_PARTIAL_COUNT, ST_DISK_SHARED_FILES_COMPLETE_COUNT, ST_DISK_SHARED_FILES_BYTES, ST_DISK_SHARED_FILES_PARTIAL_BYTES, ST_DISK_SHARED_FILES_COMPLETE_BYTES, SEARCHES_COUNT }; private static class Pair { private Set<String> types; private JMuleCoreStatsProvider provider; public Pair(Set<String> types, JMuleCoreStatsProvider provider) { this.types = types; this.provider = provider; } public Set<String> getTypes() { return types; } public JMuleCoreStatsProvider getProvider() { return provider; } } private static List<Pair> providers = new ArrayList<Pair>(); public static Map<String,Object> getStats(Set<String> types) { Set<String> expanded = new HashSet<String>(); for(String type : types) { Pattern pattern = Pattern.compile( type ); for(String s : _ST_ALL) { if ( pattern.matcher( s ).matches()){ expanded.add( s ); } } } Map<String,Object> result = new HashMap<String,Object>(); for(Pair pair : providers) { pair.getProvider().updateStats( expanded, result ); } return result ; } public static void registerProvider(Set<String> types, JMuleCoreStatsProvider provider ) { synchronized( providers ) { providers.add( new Pair(types, provider)); } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -