/*
* Copyright 2009 Thomas Bocek
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package net.tomp2p.p2p;
public class TrackerConfiguration {
final private int maxFailure;
final private int parallel;
final private int atLeastSuccessfulRequests;
final private int atLeastEntriesFromTrackers;
// for tracker get, max full tracker is not relevant
final private int maxFullTrackers;
final private int maxPrimaryTrackers;
// set to force either UDP or TCP
final private boolean forceUPD;
final private boolean forceTCP;
public TrackerConfiguration(int maxFailure, int parallel, int atLeastSuccessfulRequests,
int atLeastEntriesFromTrackers) {
this(maxFailure, parallel, atLeastSuccessfulRequests, atLeastEntriesFromTrackers, 20, 5);
}
public TrackerConfiguration(int maxFailure, int parallel, int atLeastSuccessfulRequests,
int atLeastEntriesFromTrackers, int maxFullTrackers, int maxPrimaryTrackers) {
this(maxFailure, parallel, atLeastSuccessfulRequests, atLeastEntriesFromTrackers, maxFullTrackers,
maxPrimaryTrackers, false, false);
}
public TrackerConfiguration(int maxFailure, int parallel, int atLeastSuccessfulRequests,
int atLeastEntriesFromTrackers, int maxFullTrackers, int maxPrimaryTrackers, boolean forceUDP,
boolean forceTCP) {
if (maxFailure < 0 || parallel < 0 || atLeastSuccessfulRequests < 0 || atLeastEntriesFromTrackers < 0)
throw new IllegalArgumentException("need to be larger or equals zero");
this.maxFailure = maxFailure;
this.parallel = parallel;
this.atLeastSuccessfulRequests = atLeastSuccessfulRequests;
this.atLeastEntriesFromTrackers = atLeastEntriesFromTrackers;
this.maxFullTrackers = maxFullTrackers;
this.maxPrimaryTrackers = maxPrimaryTrackers;
this.forceUPD = forceUDP;
this.forceTCP = forceTCP;
}
public int getMaxFailure() {
return maxFailure;
}
public int getParallel() {
return parallel;
}
public int getAtLeastSucessfulRequestes() {
return atLeastSuccessfulRequests;
}
public int getAtLeastEntriesFromTrackers() {
return atLeastEntriesFromTrackers;
}
public int getMaxFullTrackers() {
return maxFullTrackers;
}
public int getMaxPrimaryTrackers() {
return maxPrimaryTrackers;
}
public boolean isForceUPD() {
return forceUPD;
}
public boolean isForceTCP() {
return forceTCP;
}
}