/* * Created on 21-Jun-2004 * 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 org.gudy.azureus2.pluginsimpl.remote.tracker; import org.gudy.azureus2.plugins.tracker.*; import org.gudy.azureus2.plugins.torrent.*; import org.gudy.azureus2.pluginsimpl.remote.*; import org.gudy.azureus2.pluginsimpl.remote.torrent.RPTorrent; /** * @author parg * */ public class RPTrackerTorrent extends RPObject implements TrackerTorrent { protected transient TrackerTorrent delegate; // don't change the names of these, they appear in XML serialisation public RPTorrent torrent; public int status; public long total_uploaded; public long total_downloaded; public long average_uploaded; public long average_downloaded; public long total_left; public long completed_count; public long total_bytes_in; public long average_bytes_in; public long total_bytes_out; public long average_bytes_out; public long scrape_count; public long average_scrape_count; public long announce_count; public long average_announce_count; public int seed_count; public int leecher_count; public int bad_NAT_count; public static RPTrackerTorrent create( TrackerTorrent _delegate ) { RPTrackerTorrent res =(RPTrackerTorrent)_lookupLocal( _delegate ); if ( res == null ){ res = new RPTrackerTorrent( _delegate ); } return( res ); } protected RPTrackerTorrent( TrackerTorrent _delegate ) { super( _delegate ); if ( delegate.getTorrent() != null ){ torrent = (RPTorrent)_lookupLocal( delegate.getTorrent()); if ( torrent == null ){ torrent = RPTorrent.create( delegate.getTorrent()); } } } protected void _setDelegate( Object _delegate ) { delegate = (TrackerTorrent)_delegate; status = delegate.getStatus(); total_uploaded = delegate.getTotalUploaded(); total_downloaded = delegate.getTotalDownloaded(); average_uploaded = delegate.getAverageUploaded(); average_downloaded = delegate.getAverageDownloaded(); total_left = delegate.getTotalLeft(); completed_count = delegate.getCompletedCount(); total_bytes_in = delegate.getTotalBytesIn(); average_bytes_in = delegate.getAverageBytesIn(); total_bytes_out = delegate.getTotalBytesOut(); average_bytes_out = delegate.getAverageBytesOut(); scrape_count = delegate.getScrapeCount(); average_scrape_count = delegate.getAverageScrapeCount(); announce_count = delegate.getAnnounceCount(); average_announce_count = delegate.getAverageAnnounceCount(); seed_count = delegate.getSeedCount(); leecher_count = delegate.getLeecherCount(); bad_NAT_count = delegate.getBadNATCount(); } public Object _setLocal() throws RPException { Object res = _fixupLocal(); if ( torrent != null ){ torrent._setLocal(); } return( res ); } public void _setRemote( RPRequestDispatcher dispatcher ) { super._setRemote( dispatcher ); if ( torrent != null ){ torrent._setRemote( dispatcher ); } } public RPReply _process( RPRequest request ) { String method = request.getMethod(); // Object[] params = request.getParams(); throw( new RPException( "Unknown method: " + method )); } //***************************************************************************8 public void start() throws TrackerException { notSupported(); } public void stop() throws TrackerException { notSupported(); } public void remove() throws TrackerTorrentRemovalVetoException { notSupported(); } public boolean canBeRemoved() throws TrackerTorrentRemovalVetoException { notSupported(); return( false ); } public Torrent getTorrent() { return( torrent ); } public TrackerPeer[] getPeers() { notSupported(); return( null ); } public int getStatus() { return( status ); } public long getTotalUploaded() { return( total_uploaded ); } public long getTotalDownloaded() { return( total_downloaded ); } public long getAverageUploaded() { return( average_uploaded ); } public long getAverageDownloaded() { return( average_downloaded ); } public long getTotalLeft() { return( total_left ); } public long getCompletedCount() { return( completed_count ); } public long getTotalBytesIn() { return( total_bytes_in ); } public long getAverageBytesIn() { return( average_bytes_in ); } public long getTotalBytesOut() { return( total_bytes_out ); } public long getAverageBytesOut() { return( average_bytes_out ); } public long getScrapeCount() { return( scrape_count ); } public long getAverageScrapeCount() { return( average_scrape_count ); } public long getAnnounceCount() { return( announce_count ); } public long getAverageAnnounceCount() { return( average_announce_count ); } public int getSeedCount() { return( seed_count ); } public int getLeecherCount() { return( leecher_count); } public int getBadNATCount() { return( bad_NAT_count ); } public void disableReplyCaching() { notSupported(); } public boolean isPassive() { notSupported(); return( false ); } public long getDateAdded() { notSupported(); return( 0 ); } public void addListener( TrackerTorrentListener listener ) { notSupported(); } public void removeListener( TrackerTorrentListener listener ) { notSupported(); } public void addRemovalListener( TrackerTorrentWillBeRemovedListener listener ) { notSupported(); } public void removeRemovalListener( TrackerTorrentWillBeRemovedListener listener ) { notSupported(); } }