gpt4 book ai didi

com.sun.grizzly.util.WorkerThread类的使用及代码示例

转载 作者:知者 更新时间:2024-03-26 22:59:05 33 4
gpt4 key购买 nike

本文整理了Java中com.sun.grizzly.util.WorkerThread类的一些代码示例,展示了WorkerThread类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。WorkerThread类的具体详情如下:
包路径:com.sun.grizzly.util.WorkerThread
类名称:WorkerThread

WorkerThread介绍

[英]Simple interface to allow the addition of Thread attributes.
[中]允许添加Thread属性的简单界面。

代码示例

代码示例来源:origin: org.glassfish.external/grizzly-module

final WorkerThread workerThread = 
    (WorkerThread)Thread.currentThread();
ByteBuffer byteBuffer = workerThread.getByteBuffer();
ByteBuffer outputBB = workerThread.getOutputBB();
ByteBuffer inputBB = workerThread.getInputBB();
int expectedSize = workerThread.getSSLEngine().getSession()
  .getPacketBufferSize();
if (defaultBufferSize < expectedSize){
expectedSize = workerThread.getSSLEngine().getSession()
  .getApplicationBufferSize();
if ( expectedSize > byteBuffer.capacity() ) {
workerThread.setInputBB(inputBB);
workerThread.setOutputBB(outputBB);  
workerThread.setByteBuffer(byteBuffer);

代码示例来源:origin: org.glassfish.external/grizzly-module

private void saveSecuredBufferRemainders(SelectionKey selectionKey) {
  ThreadAttachment attachment = 
      (ThreadAttachment) selectionKey.attachment();
  
  WorkerThread workerThread = (WorkerThread) Thread.currentThread();   
  if (attachment == null || workerThread.getAttachment() != attachment) {
    Controller.logger().log(Level.FINE, 
        "SelectionKey ThreadAttachment is NULL or doesn't " +
        "correspond to the current thread, when saving buffers");
    return;
  }
  
  ByteBuffer inputBB = workerThread.getInputBB();
  if (inputBB != null && inputBB.hasRemaining()) {
    workerThread.updateAttachment(attachment.getMode() | Mode.INPUT_BB);
  } else {
    workerThread.updateAttachment(attachment.getMode() & 
        (Integer.MAX_VALUE ^ Mode.INPUT_BB));
  }
  ByteBuffer outputBB = workerThread.getOutputBB();
  if (outputBB != null && outputBB.hasRemaining()) {
    workerThread.updateAttachment(attachment.getMode() | Mode.OUTPUT_BB);
  } else {
    workerThread.updateAttachment(attachment.getMode() & 
        (Integer.MAX_VALUE ^ Mode.OUTPUT_BB));
  }
}

代码示例来源:origin: com.sun.grizzly/grizzly-utils

/**
 * SelectionKey attachment processing
 * @param selectionKey
 */
public void process(SelectionKey selectionKey) {
  ((WorkerThread) Thread.currentThread()).attach(this);
}

代码示例来源:origin: com.sun.grizzly/grizzly-config

public ByteBuffer getByteBuffer() {
    final WorkerThread workerThread = (WorkerThread) Thread.currentThread();
    if (workerThread.getSSLEngine() != null) {
      return workerThread.getInputBB();
    }
    return null;
  }
});

代码示例来源:origin: com.sun.grizzly/grizzly-http-utils

/**
 * Encrypt the response and flush it using {@link OutputWriter}
 * @param channel  {@link SelectableChannel} to flush
 * @param bb  {@link ByteBuffer}
 * @return  number of bytes written
 * @throws java.io.IOException 
 */     
public static long flushChannel(SelectableChannel channel, ByteBuffer bb)
    throws IOException{
 
  WorkerThread workerThread = (WorkerThread)Thread.currentThread();
  SSLEngine sslEngine = workerThread.getSSLEngine();
  ByteBuffer outputBB = workerThread.getOutputBB();
  return flushChannel(channel,bb,outputBB,sslEngine);
}

代码示例来源:origin: com.sun.grizzly/grizzly-config

/**
   * Returns <code>ByteBuffer</code>, where PUReadFilter will read data
   *
   * @return <code>ByteBuffer</code>
   */
  @Override
  public ByteBuffer getByteBuffer() {
    final WorkerThread workerThread = (WorkerThread) Thread.currentThread();
    final SSLEngine sslEngine = workerThread.getSSLEngine();
    if (sslEngine != null) {
      ByteBuffer secureInputBuffer = workerThread.getInputBB();
      if (secureInputBuffer == null) {
        final int securedBBSize = sslEngine.getSession().getPacketBufferSize();
        secureInputBuffer = ByteBuffer.allocate(securedBBSize * 2);
        workerThread.setInputBB(secureInputBuffer);
      }
      
      return secureInputBuffer;
    }
    return null;
  }
}

代码示例来源:origin: org.glassfish.external/grizzly-module

/**
 * Get the peer certificate list by initiating a new handshake.
 * @param key {@link SelectionKey}
 * @param needClientAuth 
 * @return Object[] An array of X509Certificate.
 * @throws java.io.IOException 
 */
public static Object[] doPeerCertificateChain(SelectionKey key,
    boolean needClientAuth) throws IOException {
  
  final WorkerThread workerThread = 
      (WorkerThread)Thread.currentThread();
  ByteBuffer byteBuffer = workerThread.getByteBuffer();
  ByteBuffer inputBB = workerThread.getInputBB();
  ByteBuffer outputBB = workerThread.getOutputBB();
  SSLEngine sslEngine = workerThread.getSSLEngine();
  
  return SSLUtils.doPeerCertificateChain((SocketChannel) key.channel(), 
      byteBuffer, inputBB, outputBB, sslEngine, needClientAuth, 
      InputReader.getDefaultReadTimeout());
}

代码示例来源:origin: org.glassfish.external/grizzly-module

public boolean execute(Context ctx) throws IOException {
  final WorkerThread workerThread = ((WorkerThread) Thread.currentThread());
  ByteBuffer buffer = workerThread.getByteBuffer();
  buffer.flip();
  if (buffer.hasRemaining()) {
    buffer.position(position);
    try {
      SSLEngine sslEngine = workerThread.getSSLEngine();
      AttributeHolder attributes = ctx.getAttributeHolderByScope(AttributeScope.CONNECTION);
          (SSLWritePreProcessor) attributes.getAttribute(SSL_WRITE_PREPROCESSOR);
      if (preProcessor == null) {
        preProcessor = new SSLWritePreProcessor(sslEngine, workerThread.getOutputBB());
        workerThread.setOutputBB(null);
        attributes.setAttribute(SSL_WRITE_PREPROCESSOR, preProcessor);

代码示例来源:origin: com.sun.grizzly/grizzly-config

workerThread.setSSLEngine(sslEngine);
workerThread.setInputBB(inputBB);
workerThread.setOutputBB(outputBB);
final Object attachment = workerThread.updateAttachment(Mode.SSL_ENGINE);
key.attach(attachment);
  byteBuffer = SSLUtils.unwrapAll(byteBuffer, inputBB, sslEngine);
  protocolRequest.setByteBuffer(byteBuffer);
  workerThread.setByteBuffer(byteBuffer);
  workerThread.setByteBuffer(byteBuffer);

代码示例来源:origin: com.sun.grizzly/grizzly-config

public boolean execute(Context ctx) throws IOException {
  final WorkerThread thread = (WorkerThread) Thread.currentThread();
  final SSLEngine sslEngine = thread.getSSLEngine();
    HttpRedirector.redirectSSL(ctx,
                  sslEngine,
                  thread.getByteBuffer(),
                  thread.getOutputBB(),
                  redirectPort,
                  redirectToSecure);
  } else {
    HttpRedirector.redirect(ctx,
                thread.getByteBuffer(),
                redirectPort,
                redirectToSecure);
  final ByteBuffer bb = thread.getByteBuffer();

代码示例来源:origin: org.glassfish.external/grizzly-module

SSLEngine sslEngine = workerThread.getSSLEngine();
if (sslEngine == null) {
  sslEngine = newSSLEngine(key);
  workerThread.setSSLEngine(sslEngine);
  ThreadAttachment attachment = workerThread.updateAttachment(Mode.SSL_ENGINE);
  key.attach(attachment);
    hasHandshake = true;
    ByteBuffer outputBB = workerThread.getOutputBB();
    outputBB.limit(outputBB.position());
  } else {

代码示例来源:origin: org.glassfish.external/grizzly-module

/**
 * Re-enable the SelectionKey and make sure the ByteBuffer has been cleared.
 * @return <tt>true</tt> if the previous ProtocolFilter postExecute method
 *         needs to be invoked.
 */
public boolean postExecute(Context ctx) throws IOException {
  ctx.setKeyRegistrationState(Context.KeyRegistrationState.REGISTER);
  ((WorkerThread)Thread.currentThread()).getByteBuffer().clear();
  return true;
}

代码示例来源:origin: com.sun.grizzly/grizzly-http

private static void swapEncryptOutBuffer(final WorkerThread workerThread,
                     final SSLAsyncOutputBuffer outputBuffer,
                     final SSLEngine engine) {
  ByteBuffer tmp = allocate(engine);
  outputBuffer.setOutputBB(workerThread.getOutputBB());
  workerThread.setOutputBB(tmp);
  outputBuffer.setSSLEngine(engine);
}

代码示例来源:origin: org.glassfish.external/grizzly-module

public void setByteBuffer(ByteBuffer byteBuffer) {
  workerThread().setByteBuffer(byteBuffer);
}

代码示例来源:origin: org.glassfish.external/grizzly-module

public SSLEngine getSSLEngine() {
  return workerThread().getSSLEngine();
}

代码示例来源:origin: org.glassfish.external/grizzly-module

ByteBuffer byteBuffer = workerThread.getByteBuffer();
Protocol protocol = ctx.getProtocol();
  workerThread.setByteBuffer(nBuf);
} else {
  workerThread.setByteBuffer(ByteBufferFactory.allocateView(false));

代码示例来源:origin: com.sun.grizzly/grizzly-config

if (sslEngine == null) {
  return Utils.readWithTemporarySelector(key.channel(),
    thread.getByteBuffer(), timeout).bytesRead;
} else {
  ByteBuffer byteBuffer = thread.getByteBuffer();
  final ByteBuffer securedBuffer = thread.getInputBB();
  if (securedBuffer.position() > 0) {
    final int initialPosition = byteBuffer.position();

代码示例来源:origin: org.glassfish.external/grizzly-module

private void saveParser(SelectionKey key, ProtocolParser parser) {
  WorkerThread workerThread = (WorkerThread) Thread.currentThread();
  // Detach the current Thread data.
  ThreadAttachment threadAttachment = workerThread.getAttachment();
  threadAttachment.setAttribute(ProtocolParser.PARSER, parser);
  // Attach it to the SelectionKey so the it can be resumed latter.
  key.attach(threadAttachment);
}

代码示例来源:origin: org.glassfish.external/grizzly-module

ByteBuffer bb = wt.getByteBuffer();
controller = ctx.getController();
  ctx.getSelectionKey().attach(null);
} else {
  wt.getAttachment().setTimeout(null);

代码示例来源:origin: com.sun.grizzly/grizzly-http

private boolean associateWithThread(ByteBuffer buffer) {
  final Thread currentThread = Thread.currentThread();
  if (currentThread instanceof WorkerThread) {
    ((WorkerThread) currentThread).setOutputBB(buffer);
    return true;
  }
  return false;
}

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com