本文整理了Java中java.nio.channels.Pipe.sink()
方法的一些代码示例,展示了Pipe.sink()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Pipe.sink()
方法的具体详情如下:
包路径:java.nio.channels.Pipe
类名称:Pipe
方法名:sink
[英]Returns the sink channel of the pipe.
[中]返回管道的水槽通道。
代码示例来源:origin: wildfly/wildfly
try {
topPipe.source().configureBlocking(false);
topPipe.sink().configureBlocking(false);
final Pipe bottomPipe = Pipe.open();
try {
bottomPipe.source().configureBlocking(false);
bottomPipe.sink().configureBlocking(false);
final WorkerThread peerThread = getPeerThread(peer);
final SelectionKey topSourceKey = registerChannel(topPipe.source());
final SelectionKey topSinkKey = peerThread.registerChannel(topPipe.sink());
final SelectionKey bottomSourceKey = peerThread.registerChannel(bottomPipe.source());
final SelectionKey bottomSinkKey = registerChannel(bottomPipe.sink());
final NioPipeStreamConnection leftConnection = new NioPipeStreamConnection(this, bottomSourceKey, topSinkKey);
final NioPipeStreamConnection rightConnection = new NioPipeStreamConnection(this, topSourceKey, bottomSinkKey);
} finally {
if (! ok) {
safeClose(bottomPipe.sink());
safeClose(bottomPipe.source());
safeClose(topPipe.sink());
safeClose(topPipe.source());
代码示例来源:origin: wildfly/wildfly
public ChannelPipe<StreamSourceChannel, StreamSinkChannel> createHalfDuplexPipe(final XnioIoFactory peer) throws IOException {
getWorker().checkShutdown();
final Pipe pipe = Pipe.open();
boolean ok = false;
try {
pipe.source().configureBlocking(false);
pipe.sink().configureBlocking(false);
final WorkerThread peerThread = getPeerThread(peer);
final SelectionKey readKey = registerChannel(pipe.source());
final SelectionKey writeKey = peerThread.registerChannel(pipe.sink());
final NioPipeStreamConnection leftConnection = new NioPipeStreamConnection(this, readKey, null);
final NioPipeStreamConnection rightConnection = new NioPipeStreamConnection(this, null, writeKey);
leftConnection.writeClosed();
rightConnection.readClosed();
final ChannelPipe<StreamSourceChannel,StreamSinkChannel> result = new ChannelPipe<StreamSourceChannel, StreamSinkChannel>(leftConnection.getSourceChannel(), rightConnection.getSinkChannel());
ok = true;
return result;
} finally {
if (! ok) {
safeClose(pipe.sink());
safeClose(pipe.source());
}
}
}
代码示例来源:origin: de.julielab/julie-xml-tools
/**
* write the segment (denoted by its offset and length) into an output file
* stream
*/
public void writeToPipe(Pipe pipe, long os, long len)
throws java.io.IOException {
SinkChannel sinkChannel = pipe.sink();
fc.transferTo(os, len, sinkChannel);
}
代码示例来源:origin: org.jruby/jruby-complete
public Object call() throws Exception {
try {
selector.select();
} finally {
ByteBuffer buf = ByteBuffer.allocate(1);
buf.put((byte) 0);
buf.flip();
pipe.sink().write(buf);
}
return null;
}
}
代码示例来源:origin: org.jruby/jruby-complete
public Object call() throws Exception {
try {
selector.select();
} finally {
ByteBuffer buf = ByteBuffer.allocate(1);
buf.put((byte) 0);
buf.flip();
pipe.sink().write(buf);
}
return null;
}
代码示例来源:origin: org.jruby/jruby-core
public Object call() throws Exception {
try {
selector.select();
} finally {
ByteBuffer buf = ByteBuffer.allocate(1);
buf.put((byte) 0);
buf.flip();
pipe.sink().write(buf);
}
return null;
}
代码示例来源:origin: org.jruby/jruby-core
public Object call() throws Exception {
try {
selector.select();
} finally {
ByteBuffer buf = ByteBuffer.allocate(1);
buf.put((byte) 0);
buf.flip();
pipe.sink().write(buf);
}
return null;
}
}
代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby
public Object call() throws Exception {
try {
selector.select();
} finally {
ByteBuffer buf = ByteBuffer.allocate(1);
buf.put((byte) 0);
buf.flip();
pipe.sink().write(buf);
}
return null;
}
}
代码示例来源:origin: Refinitiv/Elektron-SDK
void pipeWrite() throws IOException
{
if (_pipeWriteCount.incrementAndGet() == 1)
_pipe.sink().write(ByteBuffer.wrap(_pipeWriteByte));
}
代码示例来源:origin: org.restlet/org.restlet
public void run() {
try {
final WritableByteChannel wbc = pipe.sink();
representation.write(wbc);
wbc.close();
} catch (IOException ioe) {
Context.getCurrentLogger().log(Level.FINE,
"Error while writing to the piped channel.", ioe);
}
}
});
代码示例来源:origin: org.apache.qpid/proton-j
@Override
public void wakeup() {
try {
wakeup.sink().write(ByteBuffer.allocate(1));
} catch(ClosedChannelException channelClosedException) {
// Ignore - pipe already closed by reactor being shutdown.
} catch(IOException ioException) {
throw new ReactorInternalException(ioException);
}
}
代码示例来源:origin: org.wymiwyg/wrhapi
public void run() {
try {
SinkChannel sinkChannel = pipe.sink();
writeTo(sinkChannel);
sinkChannel.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}.start();
代码示例来源:origin: org.apache.abdera/abdera-i18n
/**
* Write to the pipe
*/
public int write(ByteBuffer src) throws IOException {
checkFlipped();
return pipe.sink().write(src);
}
代码示例来源:origin: org.apache.abdera/abdera-i18n
/**
* Get a writer that can write to this pipe. The pipe must be writable
*/
public Writer getWriter() {
checkFlipped();
return new PipeChannelWriter(this, Channels.newWriter(pipe.sink(), charset));
}
代码示例来源:origin: org.apache.abdera/abdera-i18n
/**
* True if the pipe is open
*/
public boolean isOpen() {
return pipe.sink().isOpen() || pipe.source().isOpen();
}
代码示例来源:origin: org.jruby/jruby-core
public void cleanup() throws IOException {
pipe.sink().close();
pipe.source().close();
}
}
代码示例来源:origin: org.jruby/jruby-complete
public void cleanup() throws IOException {
pipe.sink().close();
pipe.source().close();
}
}
代码示例来源:origin: org.apache.abdera/abdera-i18n
/**
* Get an outputstream that can write to this pipe. The Pipe must be writable
*/
public OutputStream getOutputStream() {
checkFlipped();
return new PipeChannelOutputStream(this, Channels.newOutputStream(pipe.sink()));
}
代码示例来源:origin: jenkinsci/remoting
@After
public void tearDownPipe() throws Exception {
IOUtils.closeQuietly(clientToServer.sink());
IOUtils.closeQuietly(clientToServer.source());
IOUtils.closeQuietly(serverToClient.sink());
IOUtils.closeQuietly(serverToClient.source());
}
代码示例来源:origin: org.netbeans.api/org-jruby
@JRubyMethod(name = "pipe", meta = true)
public static IRubyObject pipe(ThreadContext context, IRubyObject recv) throws Exception {
// TODO: This isn't an exact port of MRI's pipe behavior, so revisit
Ruby runtime = context.getRuntime();
Pipe pipe = Pipe.open();
RubyIO source = new RubyIO(runtime, pipe.source());
RubyIO sink = new RubyIO(runtime, pipe.sink());
sink.openFile.getMainStream().setSync(true);
return runtime.newArrayNoCopy(new IRubyObject[] { source, sink });
}
内容来源于网络,如有侵权,请联系作者删除!