示例#1
0
 public static void deleteInactivePeers(int MAX_TIME_WITHOUT_UPDATES) {
   List toDelete = new ArrayList<Peer>();
   List<RealtimeRoom> roomsToSave = new ArrayList<RealtimeRoom>();
   // ++++++++= CLEAN ROOMs ++++++++++++++++++=
   Collection<RealtimeRoom> rooms = DbUtils.loadRooms();
   for (RealtimeRoom room : rooms) {
     List<Peer> roomPeers = room.getPeers();
     if (!roomPeers.isEmpty()) {
       for (Peer peer : roomPeers) {
         if (peer.getTimeSinceLastUpdate() >= RefreshCommand.MAX_TIME_WITHOUT_UPDATES) {
           toDelete.add(peer);
           roomsToSave.add(room);
           room.removePeer(peer.getId());
         }
       }
     } else {
       if (!room.isStatic() && !room.isWaitingRoom()) { // deletable room without peers
         toDelete.add(room);
       }
     }
   }
   ofy().delete().entities(toDelete);
   ofy().save().entities(roomsToSave);
   // LOGGER.info(inactivePeers.size() + " peers inativos deletados!");
 }
示例#2
0
 private TrackerResponse sendEvent(
     long uploadedBytes, long downloadedBytes, long bytesLeftToDownload, String event)
     throws IOException, TrackerCommunicationException {
   GetMethod method = new GetMethod(announceUrl.getFile());
   method.setRequestHeader("User-Agent", "BlackBits/0.1");
   StringBuffer queryString =
       new StringBuffer(announceUrl.getQuery() == null ? "" : announceUrl.getQuery());
   queryString.append("info_hash=" + URLUtils.encode(infoHash.getBytes()));
   queryString.append("&peer_id=" + URLUtils.encode(localPeer.getId()));
   queryString.append("&port=" + localPeer.getPort());
   queryString.append("&uploaded=" + uploadedBytes);
   queryString.append("&downloaded=" + downloadedBytes);
   queryString.append("&left=" + bytesLeftToDownload);
   if (event != null) {
     queryString.append("&event=" + event);
   }
   if (localPeer.getAddress() != null) {
     queryString.append("&ip=" + localPeer.getAddress());
   }
   method.setQueryString(queryString.toString());
   httpClient.executeMethod(method);
   return decodeResponse(method);
 }