⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 abstractiosession.java

📁 mina是以Java实现的一个开源的网络程序框架
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                    } catch (IOException e) {                        ExceptionMonitor.getInstance().exceptionCaught(e);                    }                }            });        }        // Return the WriteFuture.        return writeFuture;    }    /**     * {@inheritDoc}     */    public final Object getAttachment() {        return getAttribute("");    }    /**     * {@inheritDoc}     */    public final Object setAttachment(Object attachment) {        return setAttribute("", attachment);    }    /**     * {@inheritDoc}     */    public final Object getAttribute(Object key) {        return getAttribute(key, null);    }    /**     * {@inheritDoc}     */    public final Object getAttribute(Object key, Object defaultValue) {        return attributes.getAttribute(this, key, defaultValue);    }    /**     * {@inheritDoc}     */    public final Object setAttribute(Object key, Object value) {        return attributes.setAttribute(this, key, value);    }    /**     * {@inheritDoc}     */    public final Object setAttribute(Object key) {        return setAttribute(key, Boolean.TRUE);    }    /**     * {@inheritDoc}     */    public final Object setAttributeIfAbsent(Object key, Object value) {        return attributes.setAttributeIfAbsent(this, key, value);    }    /**     * {@inheritDoc}     */    public final Object setAttributeIfAbsent(Object key) {        return setAttributeIfAbsent(key, Boolean.TRUE);    }    /**     * {@inheritDoc}     */    public final Object removeAttribute(Object key) {        return attributes.removeAttribute(this, key);    }    /**     * {@inheritDoc}     */    public final boolean removeAttribute(Object key, Object value) {        return attributes.removeAttribute(this, key, value);    }    /**     * {@inheritDoc}     */    public final boolean replaceAttribute(Object key, Object oldValue, Object newValue) {        return attributes.replaceAttribute(this, key, oldValue, newValue);    }    /**     * {@inheritDoc}     */    public final boolean containsAttribute(Object key) {        return attributes.containsAttribute(this, key);    }    /**     * {@inheritDoc}     */    public final Set<Object> getAttributeKeys() {        return attributes.getAttributeKeys(this);    }    /**     * TODO Add method documentation     */    public final IoSessionAttributeMap getAttributeMap() {        return attributes;    }    /**     * TODO Add method documentation     */    public final void setAttributeMap(IoSessionAttributeMap attributes) {        this.attributes = attributes;    }    /**     * Create a new close aware write queue, based on the given write queue.     *      * @param writeRequestQueue The write request queue     */    public final void setWriteRequestQueue(WriteRequestQueue writeRequestQueue) {        this.writeRequestQueue =            new CloseAwareWriteQueue(writeRequestQueue);    }    /**     * {@inheritDoc}     */    public final void suspendRead() {        readSuspended = true;        if (isClosing() || !isConnected()) {            return;        }        getProcessor().updateTrafficControl(this);    }    /**     * {@inheritDoc}     */    public final void suspendWrite() {        writeSuspended = true;        if (isClosing() || !isConnected()) {            return;        }        getProcessor().updateTrafficControl(this);    }    /**     * {@inheritDoc}     */    @SuppressWarnings("unchecked")	public final void resumeRead() {        readSuspended = false;        if (isClosing() || !isConnected()) {            return;        }        getProcessor().updateTrafficControl(this);    }    /**     * {@inheritDoc}     */    @SuppressWarnings("unchecked")	public final void resumeWrite() {        writeSuspended = false;        if (isClosing() || !isConnected()) {            return;        }        getProcessor().updateTrafficControl(this);    }    /**     * {@inheritDoc}     */    public boolean isReadSuspended() {    	return readSuspended;    }    /**     * {@inheritDoc}     */    public boolean isWriteSuspended() {    	return writeSuspended;     }        /**     * {@inheritDoc}     */    public final long getReadBytes() {        return readBytes;    }    /**     * {@inheritDoc}     */    public final long getWrittenBytes() {        return writtenBytes;    }    /**     * {@inheritDoc}     */    public final long getReadMessages() {        return readMessages;    }    /**     * {@inheritDoc}     */    public final long getWrittenMessages() {        return writtenMessages;    }    /**     * {@inheritDoc}     */    public final double getReadBytesThroughput() {        return readBytesThroughput;    }    /**     * {@inheritDoc}     */    public final double getWrittenBytesThroughput() {        return writtenBytesThroughput;    }    /**     * {@inheritDoc}     */    public final double getReadMessagesThroughput() {        return readMessagesThroughput;    }    /**     * {@inheritDoc}     */    public final double getWrittenMessagesThroughput() {        return writtenMessagesThroughput;    }    /**     * {@inheritDoc}     */    public final void updateThroughput(long currentTime, boolean force) {        int interval = (int) (currentTime - lastThroughputCalculationTime);        long minInterval = getConfig().getThroughputCalculationIntervalInMillis();        if (minInterval == 0 || interval < minInterval) {            if (!force) {                return;            }        }        readBytesThroughput = (readBytes - lastReadBytes) * 1000.0 / interval;        writtenBytesThroughput = (writtenBytes - lastWrittenBytes) * 1000.0 / interval;        readMessagesThroughput = (readMessages - lastReadMessages) * 1000.0 / interval;        writtenMessagesThroughput = (writtenMessages - lastWrittenMessages) * 1000.0 / interval;        lastReadBytes = readBytes;        lastWrittenBytes = writtenBytes;        lastReadMessages = readMessages;        lastWrittenMessages = writtenMessages;        lastThroughputCalculationTime = currentTime;    }    /**     * {@inheritDoc}     */    public final long getScheduledWriteBytes() {        return scheduledWriteBytes.get();    }    /**     * {@inheritDoc}     */    public final int getScheduledWriteMessages() {        return scheduledWriteMessages.get();    }    /**     * TODO Add method documentation     */    protected void setScheduledWriteBytes(int byteCount){        scheduledWriteBytes.set(byteCount);    }    /**     * TODO Add method documentation     */    protected void setScheduledWriteMessages(int messages) {        scheduledWriteMessages.set(messages);    }    /**     * TODO Add method documentation     */    public final void increaseReadBytes(long increment, long currentTime) {        if (increment <= 0) {            return;        }        readBytes += increment;        lastReadTime = currentTime;        idleCountForBoth = 0;        idleCountForRead = 0;        if (getService() instanceof AbstractIoService) {            ((AbstractIoService) getService()).getStatistics().increaseReadBytes(increment, currentTime);        }    }    /**     * TODO Add method documentation     */    public final void increaseReadMessages(long currentTime) {        readMessages++;        lastReadTime = currentTime;        idleCountForBoth = 0;        idleCountForRead = 0;        if (getService() instanceof AbstractIoService) {            ((AbstractIoService) getService()).getStatistics().increaseReadMessages(currentTime);        }    }    /**     * TODO Add method documentation     */    public final void increaseWrittenBytes(int increment, long currentTime) {        if (increment <= 0) {            return;        }        writtenBytes += increment;        lastWriteTime = currentTime;        idleCountForBoth = 0;        idleCountForWrite = 0;        if (getService() instanceof AbstractIoService) {            ((AbstractIoService) getService()).getStatistics().increaseWrittenBytes(increment, currentTime);        }        increaseScheduledWriteBytes(-increment);    }    /**     * TODO Add method documentation     */    public final void increaseWrittenMessages(            WriteRequest request, long currentTime) {        Object message = request.getMessage();        if (message instanceof IoBuffer) {            IoBuffer b = (IoBuffer) message;            if (b.hasRemaining()) {                return;            }        }        writtenMessages++;        lastWriteTime = currentTime;        if (getService() instanceof AbstractIoService) {            ((AbstractIoService) getService()).getStatistics().increaseWrittenMessages(currentTime);        }        decreaseScheduledWriteMessages();    }    /**     * TODO Add method documentation     */    public final void increaseScheduledWriteBytes(int increment) {        scheduledWriteBytes.addAndGet(increment);        if (getService() instanceof AbstractIoService) {            ((AbstractIoService) getService()).getStatistics().increaseScheduledWriteBytes(increment);        }    }    /**     * TODO Add method documentation     */    public final void increaseScheduledWriteMessages() {        scheduledWriteMessages.incrementAndGet();        if (getService() instanceof AbstractIoService) {            ((AbstractIoService) getService()).getStatistics().increaseScheduledWriteMessages();        }    }    /**     * TODO Add method documentation     */    private void decreaseScheduledWriteMessages() {        scheduledWriteMessages.decrementAndGet();        if (getService() instanceof AbstractIoService) {            ((AbstractIoService) getService()).getStatistics().decreaseScheduledWriteMessages();        }    }    /**     * TODO Add method documentation     */    public final void decreaseScheduledBytesAndMessages(WriteRequest request) {        Object message = request.getMessage();        if (message instanceof IoBuffer) {            IoBuffer b = (IoBuffer) message;            if (b.hasRemaining()) {                increaseScheduledWriteBytes(-((IoBuffer) message).remaining());            } else {                decreaseScheduledWriteMessages();            }        } else {            decreaseScheduledWriteMessages();        }    }    /**     * {@inheritDoc}     */    public final WriteRequestQueue getWriteRequestQueue() {        if (writeRequestQueue == null) {            throw new IllegalStateException();        }        return writeRequestQueue;    }    /**     * {@inheritDoc}     */    public final WriteRequest getCurrentWriteRequest() {        return currentWriteRequest;    }    /**     * {@inheritDoc}     */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -