本文整理汇总了Java中com.subgraph.orchid.InternalCircuit类的典型用法代码示例。如果您正苦于以下问题:Java InternalCircuit类的具体用法?Java InternalCircuit怎么用?Java InternalCircuit使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
InternalCircuit类属于com.subgraph.orchid包,在下文中一共展示了InternalCircuit类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: CircuitManagerImpl
import com.subgraph.orchid.InternalCircuit; //导入依赖的package包/类
public CircuitManagerImpl(TorConfig config, DirectoryDownloaderImpl directoryDownloader, Directory directory, ConnectionCache connectionCache, TorInitializationTracker initializationTracker) {
this.config = config;
this.directory = directory;
this.connectionCache = connectionCache;
this.pathChooser = CircuitPathChooser.create(config, directory);
if(config.getUseEntryGuards() || config.getUseBridges()) {
this.pathChooser.enableEntryGuards(new EntryGuards(config, connectionCache, directoryDownloader, directory));
}
this.pendingExitStreams = new PendingExitStreams(config);
this.circuitCreationTask = new CircuitCreationTask(config, directory, connectionCache, pathChooser, this, initializationTracker);
this.activeCircuits = new HashSet<CircuitImpl>();
this.cleanInternalCircuits = new LinkedList<InternalCircuit>();
this.random = new TorRandom();
this.initializationTracker = initializationTracker;
this.hiddenServiceManager = new HiddenServiceManager(config, directory, this);
directoryDownloader.setCircuitManager(this);
}
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:20,代码来源:CircuitManagerImpl.java
示例2: getCleanInternalCircuit
import com.subgraph.orchid.InternalCircuit; //导入依赖的package包/类
public InternalCircuit getCleanInternalCircuit() throws InterruptedException {
synchronized(cleanInternalCircuits) {
try {
requestedInternalCircuitCount += 1;
while(cleanInternalCircuits.isEmpty()) {
cleanInternalCircuits.wait();
}
return cleanInternalCircuits.remove();
} finally {
requestedInternalCircuitCount -= 1;
}
}
}
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:14,代码来源:CircuitManagerImpl.java
示例3: addCleanInternalCircuit
import com.subgraph.orchid.InternalCircuit; //导入依赖的package包/类
void addCleanInternalCircuit(InternalCircuit circuit) {
synchronized(cleanInternalCircuits) {
pendingInternalCircuitCount -= 1;
cleanInternalCircuits.add(circuit);
cleanInternalCircuits.notifyAll();
}
}
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:8,代码来源:CircuitManagerImpl.java
示例4: openInternalCircuitTo
import com.subgraph.orchid.InternalCircuit; //导入依赖的package包/类
public InternalCircuit openInternalCircuitTo(List<Router> path) throws OpenFailedException {
final InternalCircuit circuit = CircuitImpl.createInternalCircuitTo(this, path);
if(!tryOpenCircuit(circuit, false, false)) {
throw new OpenFailedException("Could not create internal circuit for path");
}
return circuit;
}
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:8,代码来源:CircuitManagerImpl.java
示例5: call
import com.subgraph.orchid.InternalCircuit; //导入依赖的package包/类
public HiddenServiceCircuit call() throws Exception {
logger.fine("Opening rendezvous circuit for "+ logServiceName());
final InternalCircuit rendezvous = circuitManager.getCleanInternalCircuit();
logger.fine("Establishing rendezvous for "+ logServiceName());
RendezvousProcessor rp = new RendezvousProcessor(rendezvous);
if(!rp.establishRendezvous()) {
rendezvous.markForClose();
return null;
}
logger.fine("Opening introduction circuit for "+ logServiceName());
final IntroductionProcessor introductionProcessor = openIntroduction();
if(introductionProcessor == null) {
logger.info("Failed to open connection to any introduction point");
rendezvous.markForClose();
return null;
}
logger.fine("Sending introduce cell for "+ logServiceName());
final TorTapKeyAgreement kex = new TorTapKeyAgreement();
final boolean icResult = introductionProcessor.sendIntroduce(introductionProcessor.getServiceKey(), kex.getPublicKeyBytes(), rp.getCookie(), rp.getRendezvousRouter());
introductionProcessor.markCircuitForClose();
if(!icResult) {
rendezvous.markForClose();
return null;
}
logger.fine("Processing RV2 for "+ logServiceName());
HiddenServiceCircuit hsc = rp.processRendezvous2(kex);
if(hsc == null) {
rendezvous.markForClose();
}
logger.fine("Rendezvous circuit opened for "+ logServiceName());
return hsc;
}
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:37,代码来源:RendezvousCircuitBuilder.java
示例6: createInternalCircuitTo
import com.subgraph.orchid.InternalCircuit; //导入依赖的package包/类
static InternalCircuit createInternalCircuitTo(CircuitManagerImpl circuitManager, List<Router> prechosenPath) {
return new InternalCircuitImpl(circuitManager, prechosenPath);
}
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:4,代码来源:CircuitImpl.java
示例7: RendezvousProcessor
import com.subgraph.orchid.InternalCircuit; //导入依赖的package包/类
protected RendezvousProcessor(InternalCircuit circuit) {
this.circuit = circuit;
this.cookie = random.getBytes(RENDEZVOUS_COOKIE_LEN);
}
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:5,代码来源:RendezvousProcessor.java
注:本文中的com.subgraph.orchid.InternalCircuit类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论