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)); } }
public ThreadAttachment detach() { ThreadAttachment currentAttachment = getAttachment(); int mode = currentAttachment.getMode(); updateAttachment(mode); // Re-create a new ByteBuffer if ((mode & Mode.BYTE_BUFFER) != 0) { byteBuffer = null; } if ((mode & Mode.SSL_ENGINE) != 0) { sslEngine = null; } if ((mode & Mode.INPUT_BB) != 0) { inputBB = null; } if ((mode & Mode.OUTPUT_BB) != 0) { outputBB = null; } // Switch to the new ThreadAttachment. this.threadAttachment = null; currentAttachment.deassociate(); return currentAttachment; }
public ThreadAttachment detach() { ThreadAttachment currentAttachment = getAttachment(); int mode = currentAttachment.getMode(); updateAttachment(mode); // Re-create a new ByteBuffer if ((mode & Mode.BYTE_BUFFER) != 0) { byteBuffer = ByteBufferFactory.allocate(byteBufferType, initialByteBufferSize); } if ((mode & Mode.SSL_ENGINE) != 0) { sslEngine = null; } if ((mode & Mode.INPUT_BB) != 0) { inputBB = null; } if ((mode & Mode.OUTPUT_BB) != 0) { outputBB = null; } // Switch to the new ThreadAttachment. this.threadAttachment = null; currentAttachment.deassociate(); return currentAttachment; }
public ThreadAttachment detach() { ThreadAttachment currentAttachment = getAttachment(); int mode = currentAttachment.getMode(); updateAttachment(mode); // Re-create a new ByteBuffer if ((mode & Mode.BYTE_BUFFER) != 0) { createByteBuffer(true); } if ((mode & Mode.SSL_ENGINE) != 0) { sslEngine = null; } if ((mode & Mode.INPUT_BB) != 0) { inputBB = null; } if ((mode & Mode.OUTPUT_BB) != 0) { outputBB = null; } // Switch to the new ThreadAttachment. this.threadAttachment = null; currentAttachment.deassociate(); return currentAttachment; }
public void attach(ThreadAttachment threadAttachment) { threadAttachment.associate(); int mode = threadAttachment.getMode(); if ((mode & Mode.BYTE_BUFFER) != 0) { byteBuffer = threadAttachment.getByteBuffer(); } if ((mode & Mode.SSL_ENGINE) != 0) { sslEngine = threadAttachment.getSSLEngine(); } if ((mode & Mode.INPUT_BB) != 0) { inputBB = threadAttachment.getInputBB(); } if ((mode & Mode.OUTPUT_BB) != 0) { outputBB = threadAttachment.getOutputBB(); } this.threadAttachment = threadAttachment; }
public void attach(ThreadAttachment threadAttachment) { threadAttachment.associate(); int mode = threadAttachment.getMode(); if ((mode & Mode.BYTE_BUFFER) != 0) { byteBuffer = threadAttachment.getByteBuffer(); } if ((mode & Mode.SSL_ENGINE) != 0) { sslEngine = threadAttachment.getSSLEngine(); } if ((mode & Mode.INPUT_BB) != 0) { inputBB = threadAttachment.getInputBB(); } if ((mode & Mode.OUTPUT_BB) != 0) { outputBB = threadAttachment.getOutputBB(); } this.threadAttachment = threadAttachment; }
public void attach(ThreadAttachment threadAttachment) { threadAttachment.associate(); int mode = threadAttachment.getMode(); if ((mode & Mode.BYTE_BUFFER) != 0) { byteBuffer = threadAttachment.getByteBuffer(); } if ((mode & Mode.SSL_ENGINE) != 0) { sslEngine = threadAttachment.getSSLEngine(); } if ((mode & Mode.INPUT_BB) != 0) { inputBB = threadAttachment.getInputBB(); } if ((mode & Mode.OUTPUT_BB) != 0) { outputBB = threadAttachment.getOutputBB(); } this.threadAttachment = threadAttachment; }