当前位置: 首页>>代码示例>>Java>>正文


Java SharedTorrent类代码示例

本文整理汇总了Java中com.turn.ttorrent.client.SharedTorrent的典型用法代码示例。如果您正苦于以下问题:Java SharedTorrent类的具体用法?Java SharedTorrent怎么用?Java SharedTorrent使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


SharedTorrent类属于com.turn.ttorrent.client包,在下文中一共展示了SharedTorrent类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: update

import com.turn.ttorrent.client.SharedTorrent; //导入依赖的package包/类
@Override
public void update(Observable observable, Object data) {
    Client client = (Client) observable;
    Client.ClientState state = (Client.ClientState) data;
    SharedTorrent st = client.getTorrent();

    long now = System.nanoTime();
    long downloaded = st.getDownloaded();

    torrentDownloadStatus.setEstTimeNano(DownloadStatus.computeEstTime(startTime, now, downloaded, st.getLeft() + st.getDownloaded()));
    torrentDownloadStatus.setSpeedNano((downloaded - lastDownloaded) / (double) (now - lastTime));
    torrentDownloadStatus.updateValues(client);

    if(st.isFinished() || canceled || state.equals(Client.ClientState.ERROR) || state.equals(Client.ClientState.DONE)) {
        finishDwonload();
        return;
    }

    statusUpdater.notifyDownloadStatusUpdaters(torrentDownloadStatus);

    lastDownloaded = downloaded;
    lastTime = now;

}
 
开发者ID:jhkst,项目名称:dlface,代码行数:25,代码来源:TorrentStateObserver.java

示例2: updateValues

import com.turn.ttorrent.client.SharedTorrent; //导入依赖的package包/类
public void updateValues(Client client) {
    SharedTorrent sharedTorrent = client.getTorrent();
    this.setName(sharedTorrent.getName() + " (" + sharedTorrent.getFilenames().size() + " file(s))");
    this.setTotalSize(sharedTorrent.getSize());
    this.setDownloadedSize(sharedTorrent.getDownloaded());
    this.setProgress(sharedTorrent.getCompletion());
    this.setState(String.valueOf(client.getState()));
    this.setComment(sharedTorrent.getComment());
    this.setPieceCount(sharedTorrent.getPieceCount());
    this.setCompletion(sharedTorrent.getCompletion());
    this.setUploaded(sharedTorrent.getUploaded());
    this.setMaxDownloadRate(sharedTorrent.getMaxDownloadRate());
    this.setMaxUploadRate(sharedTorrent.getMaxUploadRate());
    List<PeerDataTO> peers = client.getPeers().stream().map(PeerDataTO::new).collect(Collectors.toList());
    this.setPeers(peers);
    this.setPeersCount(client.getPeers().size());
    this.setTrackerCount(sharedTorrent.getTrackerCount());
    this.setInfoHash(sharedTorrent.getHexInfoHash());
    this.setFilenames(sharedTorrent.getFilenames());
    if (sharedTorrent.isInitialized()) {
        this.setCompletedPieces(Util.compressToUri(sharedTorrent.getCompletedPieces()));
        this.setAvailablePieces(Util.compressToUri(sharedTorrent.getAvailablePieces()));
        this.setRequestedPieces(Util.compressToUri(sharedTorrent.getRequestedPieces()));
    }
}
 
开发者ID:jhkst,项目名称:dlface,代码行数:26,代码来源:TorrentDownloadStatus.java

示例3: init

import com.turn.ttorrent.client.SharedTorrent; //导入依赖的package包/类
private void init() throws UnknownHostException, NoSuchAlgorithmException, IOException{
	this.setTitle(torrent.getName());
	Client torrentClient = new Client(InetAddress.getLocalHost(), 
			SharedTorrent.fromFile(torrent,folder));
	torrentClient.addObserver(this);
	this.getContentPane().setLayout(new BoxLayout(this.getContentPane(), BoxLayout.PAGE_AXIS));
	this.getContentPane().add(state);
	this.getContentPane().add(peers);
	this.getContentPane().add(dl);
	this.getContentPane().add(completion);
	this.setLocationRelativeTo(null);
	this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
	this.setSize(400, 122);
	this.setResizable(false);
	this.setVisible(true);
	torrentClient.download();
}
 
开发者ID:redSpoutnik,项目名称:AutoRename,代码行数:18,代码来源:TorrentDownloadManager.java

示例4: addTorrent

import com.turn.ttorrent.client.SharedTorrent; //导入依赖的package包/类
public TfsTorrent addTorrent(Torrent torrent) throws IOException {
  String infoHash = torrent.getHexInfoHash();
  if (lookup.containsKey(infoHash)) return lookup.get(infoHash);

  File f = new File(rootPath + infoHash + "/");
  f.mkdirs();
  TfsTorrent tfs = null;
  try {
    tfs = new TfsTorrent(new Client(address, new SharedTorrent(torrent, f)), infoHash);
  } catch (NoSuchAlgorithmException e) {
    throw new RuntimeException("Required Crypto algorithms not installed.");
  }
  tfs.client.addObserver(new Observer() {
    @Override
    public void update(Observable arg0, Object arg1) {
      onClientUpdate((Client) arg0, (ClientState) arg1);
    }
  });
  lookup.put(infoHash, tfs);
  tfs.client.share();
  return tfs;
}
 
开发者ID:cjmalloy,项目名称:torrent-fs,代码行数:23,代码来源:TfsClient.java

示例5: UDPTrackerClient

import com.turn.ttorrent.client.SharedTorrent; //导入依赖的package包/类
/**
 * 
 * @param torrent
 */
protected UDPTrackerClient(SharedTorrent torrent, Peer peer, URI tracker)
	throws UnknownHostException {
	super(torrent, peer, tracker);

	/**
	 * The UDP announce request protocol only supports IPv4
	 *
	 * @see http://bittorrent.org/beps/bep_0015.html#ipv6
	 */
	if (! (InetAddress.getByName(peer.getIp()) instanceof Inet4Address)) {
		throw new UnsupportedAddressTypeException();
	}

	this.address = new InetSocketAddress(
		tracker.getHost(),
		tracker.getPort());

	this.socket = null;
	this.random = new Random();
	this.connectionExpiration = null;
	this.stop = false;
}
 
开发者ID:DurandA,项目名称:bitworker,代码行数:27,代码来源:UDPTrackerClient.java

示例6: startSeeder

import com.turn.ttorrent.client.SharedTorrent; //导入依赖的package包/类
private Client startSeeder() throws IOException, NoSuchAlgorithmException {
    Torrent torrent = Torrent.load(new File(TORRENT_FILE));
    File destination = new File(CONTENT_DIRECTORY);
    InetAddress addr = InetAddress.getLocalHost();
    Client client = new Client(addr, new SharedTorrent(torrent, destination));
    client.share();
    return client;
}
 
开发者ID:philipphenkel,项目名称:ttorrent-android-service,代码行数:9,代码来源:TtorrentDownloaderTest.java

示例7: stopSeedingByPath

import com.turn.ttorrent.client.SharedTorrent; //导入依赖的package包/类
public void stopSeedingByPath(File file){
   final SharedTorrent torrentByName = myClient.getTorrentByFilePath(file);
   if (torrentByName != null) {
     LOG.info("Stopped seeding torrent by file: " + file.getAbsolutePath());
     myClient.removeTorrent(torrentByName);
   }
}
 
开发者ID:JetBrains,项目名称:teamcity-torrent-plugin,代码行数:8,代码来源:TeamcityTorrentClient.java

示例8: findSeedingTorrentFolder

import com.turn.ttorrent.client.SharedTorrent; //导入依赖的package包/类
public File findSeedingTorrentFolder(@NotNull TorrentHash torrent){
  for (SharedTorrent st : myClient.getTorrents()) {
    if (st.getHexInfoHash().equals(torrent.getHexInfoHash())){
      return st.getParentFile();
    }
  }
  return null;
}
 
开发者ID:JetBrains,项目名称:teamcity-torrent-plugin,代码行数:9,代码来源:TeamcityTorrentClient.java

示例9: createTrackerClient

import com.turn.ttorrent.client.SharedTorrent; //导入依赖的package包/类
/**
 * Create a {@link TrackerClient} annoucing to the given tracker address.
 *
 * @param torrent The torrent the tracker client will be announcing for.
 * @param peer The peer the tracker client will announce on behalf of.
 * @param tracker The tracker address as a {@link URI}.
 * @throws UnknownHostException If the tracker address is invalid.
 * @throws UnknownServiceException If the tracker protocol is not supported.
 */
private TrackerClient createTrackerClient(SharedTorrent torrent, Peer peer,
	URI tracker) throws UnknownHostException, UnknownServiceException {
	String scheme = tracker.getScheme();

	if ("http".equals(scheme) || "https".equals(scheme)) {
		return new HTTPTrackerClient(torrent, peer, tracker);
	} else if ("udp".equals(scheme)) {
		return new UDPTrackerClient(torrent, peer, tracker);
	}

	throw new UnknownServiceException(
		"Unsupported announce scheme: " + scheme + "!");
}
 
开发者ID:DurandA,项目名称:bitworker,代码行数:23,代码来源:Announce.java

示例10: PeerExchange

import com.turn.ttorrent.client.SharedTorrent; //导入依赖的package包/类
/**
 * Initialize and start a new peer exchange.
 *
 * @param peer The remote peer to communicate with.
 * @param torrent The torrent we're exchanging on with the peer.
 * @param channel A channel on the connected socket to the peer.
 */
public PeerExchange(SharingPeer peer, SharedTorrent torrent,
		SocketChannel channel) throws SocketException {
	this.peer = peer;
	this.torrent = torrent;
	this.channel = channel;

	this.listeners = new HashSet<MessageListener>();
	this.sendQueue = new LinkedBlockingQueue<PeerMessage>();

	if (!this.peer.hasPeerId()) {
		throw new IllegalStateException("Peer does not have a " +
				"peer ID. Was the handshake made properly?");
	}

	this.in = new IncomingThread();
	this.in.setName("bt-peer(" +
		this.peer.getShortHexPeerId() + ")-recv");

	this.out = new OutgoingThread();
	this.out.setName("bt-peer(" +
		this.peer.getShortHexPeerId() + ")-send");
	this.out.setDaemon(true);

	// Automatically start the exchange activity loops
	this.stop = false;
	this.in.start();
	this.out.start();

	logger.debug("Started peer exchange with {} for {}.",
		this.peer, this.torrent);

	// If we have pieces, start by sending a BITFIELD message to the peer.
	BitSet pieces = this.torrent.getCompletedPieces();
	if (pieces.cardinality() > 0) {
		this.send(PeerMessage.BitfieldMessage.craft(pieces));
	}
}
 
开发者ID:DurandA,项目名称:bitworker,代码行数:45,代码来源:PeerExchange.java

示例11: SharingPeer

import com.turn.ttorrent.client.SharedTorrent; //导入依赖的package包/类
/**
 * Create a new sharing peer on a given torrent.
 *
 * @param ip The peer's IP address.
 * @param port The peer's port.
 * @param peerId The byte-encoded peer ID.
 * @param torrent The torrent this peer exchanges with us on.
 */
public SharingPeer(String ip, int port, ByteBuffer peerId,
		SharedTorrent torrent) {
	super(ip, port, peerId);

	this.torrent = torrent;
	this.listeners = new HashSet<PeerActivityListener>();
	this.availablePieces = new BitSet(this.torrent.getPieceCount());

	this.requestsLock = new Object();
	this.exchangeLock = new Object();

	this.reset();
	this.requestedPiece = null;
}
 
开发者ID:DurandA,项目名称:bitworker,代码行数:23,代码来源:SharingPeer.java

示例12: validate

import com.turn.ttorrent.client.SharedTorrent; //导入依赖的package包/类
@Override
public HaveMessage validate(SharedTorrent torrent)
	throws MessageValidationException {
	if (this.piece >= 0 && this.piece < torrent.getPieceCount()) {
		return this;
	}

	throw new MessageValidationException(this);
}
 
开发者ID:DurandA,项目名称:bitworker,代码行数:10,代码来源:PeerMessage.java

示例13: parse

import com.turn.ttorrent.client.SharedTorrent; //导入依赖的package包/类
public static BitfieldMessage parse(ByteBuffer buffer,
		SharedTorrent torrent) throws MessageValidationException {
	BitSet bitfield = new BitSet(buffer.remaining()*8);
	for (int i=0; i < buffer.remaining()*8; i++) {
		if ((buffer.get(i/8) & (1 << (7 -(i % 8)))) > 0) {
			bitfield.set(i);
		}
	}

	return new BitfieldMessage(buffer, bitfield)
		.validate(torrent);
}
 
开发者ID:DurandA,项目名称:bitworker,代码行数:13,代码来源:PeerMessage.java

示例14: getSharedTorrents

import com.turn.ttorrent.client.SharedTorrent; //导入依赖的package包/类
@NotNull
public Collection<SharedTorrent> getSharedTorrents() {
  return myTorrentsSeeder.getSharedTorrents();
}
 
开发者ID:JetBrains,项目名称:teamcity-torrent-plugin,代码行数:5,代码来源:AgentTorrentsSeeder.java

示例15: getSharedTorrents

import com.turn.ttorrent.client.SharedTorrent; //导入依赖的package包/类
public Collection<SharedTorrent> getSharedTorrents() {
  return myTorrentsSeeder.getSharedTorrents();
}
 
开发者ID:JetBrains,项目名称:teamcity-torrent-plugin,代码行数:4,代码来源:ServerTorrentsDirectorySeeder.java


注:本文中的com.turn.ttorrent.client.SharedTorrent类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。