/* * Created on 21-Jan-2005 * Created by Paul Gardner * Copyright (C) 2004, 2005, 2006 Aelitis, All Rights Reserved. * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * AELITIS, SAS au capital de 46,603.30 euros * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France. * */ package com.aelitis.azureus.core.dht.transport.util; import java.util.List; import java.util.Map; import com.aelitis.azureus.core.dht.transport.DHTTransportContact; import com.aelitis.azureus.core.dht.transport.DHTTransportFindValueReply; import com.aelitis.azureus.core.dht.transport.DHTTransportFullStats; import com.aelitis.azureus.core.dht.transport.DHTTransportQueryStoreReply; import com.aelitis.azureus.core.dht.transport.DHTTransportRequestHandler; import com.aelitis.azureus.core.dht.transport.DHTTransportStoreReply; import com.aelitis.azureus.core.dht.transport.DHTTransportValue; /** * @author parg * */ public class DHTTransportRequestCounter implements DHTTransportRequestHandler { private DHTTransportRequestHandler delegate; private DHTTransportStatsImpl stats; public DHTTransportRequestCounter( DHTTransportRequestHandler _delegate, DHTTransportStatsImpl _stats ) { delegate = _delegate; stats = _stats; } public void pingRequest( DHTTransportContact contact ) { stats.pingReceived(); delegate.pingRequest( contact ); } public void keyBlockRequest( DHTTransportContact contact, byte[] key_block_request, byte[] key_block_signature ) { stats.keyBlockReceived(); delegate.keyBlockRequest( contact, key_block_request, key_block_signature ); } public DHTTransportFullStats statsRequest( DHTTransportContact contact ) { stats.statsReceived(); return( delegate.statsRequest( contact )); } public DHTTransportStoreReply storeRequest( DHTTransportContact contact, byte[][] keys, DHTTransportValue[][] value_sets ) { stats.storeReceived(); return( delegate.storeRequest( contact, keys, value_sets )); } public DHTTransportQueryStoreReply queryStoreRequest( DHTTransportContact contact, int header_len, List<Object[]> keys ) { stats.queryStoreReceived(); return( delegate.queryStoreRequest( contact, header_len, keys )); } public DHTTransportContact[] findNodeRequest( DHTTransportContact contact, byte[] id ) { stats.findNodeReceived(); return( delegate.findNodeRequest( contact, id )); } public DHTTransportFindValueReply findValueRequest( DHTTransportContact contact, byte[] key, int max, short flags ) { stats.findValueReceived(); return( delegate.findValueRequest( contact, key, max, flags )); } public void contactImported( DHTTransportContact contact, boolean is_bootstrap ) { delegate.contactImported( contact, is_bootstrap ); } public void contactRemoved( DHTTransportContact contact ) { delegate.contactRemoved( contact ); } public int getTransportEstimatedDHTSize() { return( delegate.getTransportEstimatedDHTSize()); } public void setTransportEstimatedDHTSize( int size ) { delegate.setTransportEstimatedDHTSize(size); } }