Since I haven't set up the email notifications yet, I'll have to do it
by hand :-)

This patch broke the build:
http://hudson.zones.apache.org/hudson/view/MINA/job/MINA-trunk/8/org.apache.mina$mina-example/console

I don't have the time to fix it right now but will do it tomorrow if
not someone else beats me to it.

/niklas

On Thu, Jul 17, 2008 at 3:27 PM,  <[EMAIL PROTECTED]> wrote:
> Author: elecharny
> Date: Thu Jul 17 06:27:07 2008
> New Revision: 677580
>
> URL: http://svn.apache.org/viewvc?rev=677580&view=rev
> Log:
> Applied patch for DIRMINA-608 provided by Barend
>
> Added:
>    
> mina/trunk/core/src/main/java/org/apache/mina/core/service/IoServiceIdleState.java
>    
> mina/trunk/core/src/main/java/org/apache/mina/core/service/IoServiceStatistics.java
> Modified:
>    
> mina/trunk/core/src/main/java/org/apache/mina/core/service/AbstractIoService.java
>    mina/trunk/core/src/main/java/org/apache/mina/core/service/IoService.java
>
> Modified: 
> mina/trunk/core/src/main/java/org/apache/mina/core/service/AbstractIoService.java
> URL: 
> http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/service/AbstractIoService.java?rev=677580&r1=677579&r2=677580&view=diff
> ==============================================================================
> --- 
> mina/trunk/core/src/main/java/org/apache/mina/core/service/AbstractIoService.java
>  (original)
> +++ 
> mina/trunk/core/src/main/java/org/apache/mina/core/service/AbstractIoService.java
>  Thu Jul 17 06:27:07 2008
> @@ -61,7 +61,7 @@
>  * @author The Apache MINA Project ([email protected])
>  * @version $Rev$, $Date$
>  */
> -public abstract class AbstractIoService implements IoService {
> +public abstract class AbstractIoService implements IoService, 
> IoServiceStatistics, IoServiceIdleState {
>     /**
>      * The unique number identifying the Service. It's incremented
>      * for each new IoService created.
> @@ -433,6 +433,20 @@
>     /**
>      * [EMAIL PROTECTED]
>      */
> +    public IoServiceIdleState getIdleState() {
> +        return this;
> +    }
> +
> +    /**
> +     * [EMAIL PROTECTED]
> +     */
> +    public IoServiceStatistics getStatistics() {
> +        return this;
> +    }
> +
> +    /**
> +     * [EMAIL PROTECTED]
> +     */
>     public final long getReadBytes() {
>         return readBytes.get();
>     }
>
> Modified: 
> mina/trunk/core/src/main/java/org/apache/mina/core/service/IoService.java
> URL: 
> http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/service/IoService.java?rev=677580&r1=677579&r2=677580&view=diff
> ==============================================================================
> --- mina/trunk/core/src/main/java/org/apache/mina/core/service/IoService.java 
> (original)
> +++ mina/trunk/core/src/main/java/org/apache/mina/core/service/IoService.java 
> Thu Jul 17 06:27:07 2008
> @@ -28,7 +28,6 @@
>  import org.apache.mina.core.filterchain.IoFilterChain;
>  import org.apache.mina.core.filterchain.IoFilterChainBuilder;
>  import org.apache.mina.core.future.WriteFuture;
> -import org.apache.mina.core.session.IdleStatus;
>  import org.apache.mina.core.session.IoSession;
>  import org.apache.mina.core.session.IoSessionConfig;
>  import org.apache.mina.core.session.IoSessionDataStructureFactory;
> @@ -104,19 +103,6 @@
>     int getManagedSessionCount();
>
>     /**
> -     * Returns the maximum number of sessions which were being managed at the
> -     * same time.
> -     */
> -    int getLargestManagedSessionCount();
> -
> -    /**
> -     * Returns the cumulative number of sessions which were managed (or are
> -     * being managed) by this service, which means 'currently managed session
> -     * count + closed session count'.
> -     */
> -    long getCumulativeManagedSessionCount();
> -
> -    /**
>      * Returns the default configuration of the new [EMAIL PROTECTED] 
> IoSession}s
>      * created by this service.
>      */
> @@ -169,253 +155,23 @@
>     long getActivationTime();
>
>     /**
> -     * Returns the time in millis when I/O occurred lastly.
> -     */
> -    long getLastIoTime();
> -
> -    /**
> -     * Returns the time in millis when read operation occurred lastly.
> -     */
> -    long getLastReadTime();
> -
> -    /**
> -     * Returns the time in millis when write operation occurred lastly.
> -     */
> -    long getLastWriteTime();
> -
> -    /**
> -     * Returns <code>true</code> if this service is idle for the specified
> -     * [EMAIL PROTECTED] IdleStatus}.
> -     */
> -    boolean isIdle(IdleStatus status);
> -
> -    /**
> -     * Returns <code>true</code> if this service is [EMAIL PROTECTED] 
> IdleStatus#READER_IDLE}.
> -     * @see #isIdle(IdleStatus)
> -     */
> -    boolean isReaderIdle();
> -
> -    /**
> -     * Returns <code>true</code> if this service is [EMAIL PROTECTED] 
> IdleStatus#WRITER_IDLE}.
> -     * @see #isIdle(IdleStatus)
> -     */
> -    boolean isWriterIdle();
> -
> -    /**
> -     * Returns <code>true</code> if this service is [EMAIL PROTECTED] 
> IdleStatus#BOTH_IDLE}.
> -     * @see #isIdle(IdleStatus)
> -     */
> -    boolean isBothIdle();
> -
> -    /**
> -     * Returns the number of the fired continuous <tt>serviceIdle</tt> events
> -     * for the specified [EMAIL PROTECTED] IdleStatus}.
> -     * <p/>
> -     * If <tt>serviceIdle</tt> event is fired first after some time after 
> I/O,
> -     * <tt>idleCount</tt> becomes <tt>1</tt>.  <tt>idleCount</tt> resets to
> -     * <tt>0</tt> if any I/O occurs again, otherwise it increases to
> -     * <tt>2</tt> and so on if <tt>serviceIdle</tt> event is fired again 
> without
> -     * any I/O between two (or more) <tt>serviceIdle</tt> events.
> -     */
> -    int getIdleCount(IdleStatus status);
> -
> -    /**
> -     * Returns the number of the fired continuous <tt>serviceIdle</tt> events
> -     * for [EMAIL PROTECTED] IdleStatus#READER_IDLE}.
> -     * @see #getIdleCount(IdleStatus)
> -     */
> -    int getReaderIdleCount();
> -
> -    /**
> -     * Returns the number of the fired continuous <tt>serviceIdle</tt> events
> -     * for [EMAIL PROTECTED] IdleStatus#WRITER_IDLE}.
> -     * @see #getIdleCount(IdleStatus)
> -     */
> -    int getWriterIdleCount();
> -
> -    /**
> -     * Returns the number of the fired continuous <tt>serviceIdle</tt> events
> -     * for [EMAIL PROTECTED] IdleStatus#BOTH_IDLE}.
> -     * @see #getIdleCount(IdleStatus)
> -     */
> -    int getBothIdleCount();
> -
> -    /**
> -     * Returns the time in milliseconds when the last <tt>serviceIdle</tt> 
> event
> -     * is fired for the specified [EMAIL PROTECTED] IdleStatus}.
> -     */
> -    long getLastIdleTime(IdleStatus status);
> -
> -    /**
> -     * Returns the time in milliseconds when the last <tt>serviceIdle</tt> 
> event
> -     * is fired for [EMAIL PROTECTED] IdleStatus#READER_IDLE}.
> -     * @see #getLastIdleTime(IdleStatus)
> -     */
> -    long getLastReaderIdleTime();
> -
> -    /**
> -     * Returns the time in milliseconds when the last <tt>serviceIdle</tt> 
> event
> -     * is fired for [EMAIL PROTECTED] IdleStatus#WRITER_IDLE}.
> -     * @see #getLastIdleTime(IdleStatus)
> -     */
> -    long getLastWriterIdleTime();
> -
> -    /**
> -     * Returns the time in milliseconds when the last <tt>serviceIdle</tt> 
> event
> -     * is fired for [EMAIL PROTECTED] IdleStatus#BOTH_IDLE}.
> -     * @see #getLastIdleTime(IdleStatus)
> -     */
> -    long getLastBothIdleTime();
> -
> -    /**
> -     * Returns idle time for the specified type of idleness in seconds.
> -     */
> -    int getIdleTime(IdleStatus status);
> -
> -    /**
> -     * Returns idle time for the specified type of idleness in milliseconds.
> -     */
> -    long getIdleTimeInMillis(IdleStatus status);
> -
> -    /**
> -     * Sets idle time for the specified type of idleness in seconds.
> -     */
> -    void setIdleTime(IdleStatus status, int idleTime);
> -
> -    /**
> -     * Returns idle time for [EMAIL PROTECTED] IdleStatus#READER_IDLE} in 
> seconds.
> -     */
> -    int getReaderIdleTime();
> -
> -    /**
> -     * Returns idle time for [EMAIL PROTECTED] IdleStatus#READER_IDLE} in 
> milliseconds.
> -     */
> -    long getReaderIdleTimeInMillis();
> -
> -    /**
> -     * Sets idle time for [EMAIL PROTECTED] IdleStatus#READER_IDLE} in 
> seconds.
> -     */
> -    void setReaderIdleTime(int idleTime);
> -
> -    /**
> -     * Returns idle time for [EMAIL PROTECTED] IdleStatus#WRITER_IDLE} in 
> seconds.
> -     */
> -    int getWriterIdleTime();
> -
> -    /**
> -     * Returns idle time for [EMAIL PROTECTED] IdleStatus#WRITER_IDLE} in 
> milliseconds.
> -     */
> -    long getWriterIdleTimeInMillis();
> -
> -    /**
> -     * Sets idle time for [EMAIL PROTECTED] IdleStatus#WRITER_IDLE} in 
> seconds.
> -     */
> -    void setWriterIdleTime(int idleTime);
> -
> -    /**
> -     * Returns idle time for [EMAIL PROTECTED] IdleStatus#BOTH_IDLE} in 
> seconds.
> -     */
> -    int getBothIdleTime();
> -
> -    /**
> -     * Returns idle time for [EMAIL PROTECTED] IdleStatus#BOTH_IDLE} in 
> milliseconds.
> -     */
> -    long getBothIdleTimeInMillis();
> -
> -    /**
> -     * Sets idle time for [EMAIL PROTECTED] IdleStatus#WRITER_IDLE} in 
> seconds.
> -     */
> -    void setBothIdleTime(int idleTime);
> -
> -    /**
> -     * Returns the number of bytes read by this service
> -     *
> -     * @return
> -     *         The number of bytes this service has read
> -     */
> -    long getReadBytes();
> -
> -    /**
> -     * Returns the number of bytes written out by this service
> -     *
> -     * @return
> -     *         The number of bytes this service has written
> -     */
> -    long getWrittenBytes();
> -
> -    /**
> -     * Returns the number of messages this services has read
> -     *
> -     * @return
> -     *         The number of messages this services has read
> -     */
> -    long getReadMessages();
> -
> -    /**
> -     * Returns the number of messages this service has written
> -     *
> -     * @return
> -     *         The number of messages this service has written
> -     */
> -    long getWrittenMessages();
> -
> -    /**
> -     * Returns the number of read bytes per second.
> -     */
> -    double getReadBytesThroughput();
> -
> -    /**
> -     * Returns the number of written bytes per second.
> -     */
> -    double getWrittenBytesThroughput();
> -
> -    /**
> -     * Returns the number of read messages per second.
> -     */
> -    double getReadMessagesThroughput();
> -
> -    /**
> -     * Returns the number of written messages per second.
> -     */
> -    double getWrittenMessagesThroughput();
> -
> -    /**
> -     * Returns the maximum of the [EMAIL PROTECTED] 
> #getReadBytesThroughput() readBytesThroughput}.
> -     */
> -    double getLargestReadBytesThroughput();
> -
> -    /**
> -     * Returns the maximum of the [EMAIL PROTECTED] 
> #getWrittenBytesThroughput() writtenBytesThroughput}.
> -     */
> -    double getLargestWrittenBytesThroughput();
> -
> -    /**
> -     * Returns the maximum of the [EMAIL PROTECTED] 
> #getReadMessagesThroughput() readMessagesThroughput}.
> -     */
> -    double getLargestReadMessagesThroughput();
> -
> -    /**
> -     * Returns the maximum of the [EMAIL PROTECTED] 
> #getWrittenMessagesThroughput() writtenMessagesThroughput}.
> -     */
> -    double getLargestWrittenMessagesThroughput();
> -
> -    /**
> -     * Returns the interval (seconds) between each throughput calculation.
> -     * The default value is <tt>3</tt> seconds.
> +     * Writes the specified [EMAIL PROTECTED] message} to all the [EMAIL 
> PROTECTED] IoSession}s
> +     * managed by this service.  This method is a convenience shortcut for
> +     * [EMAIL PROTECTED] IoUtil#broadcast(Object, Collection)}.
>      */
> -    int getThroughputCalculationInterval();
> +    Set<WriteFuture> broadcast(Object message);
>
>     /**
> -     * Returns the interval (milliseconds) between each throughput 
> calculation.
> -     * The default value is <tt>3</tt> seconds.
> +     * Returns the [EMAIL PROTECTED] IoSessionDataStructureFactory} that 
> provides
> +     * related data structures for a new session created by this service.
>      */
> -    long getThroughputCalculationIntervalInMillis();
> +    IoSessionDataStructureFactory getSessionDataStructureFactory();
>
>     /**
> -     * Sets the interval (seconds) between each throughput calculation.  The
> -     * default value is <tt>3</tt> seconds.
> +     * Sets the [EMAIL PROTECTED] IoSessionDataStructureFactory} that 
> provides
> +     * related data structures for a new session created by this service.
>      */
> -    void setThroughputCalculationInterval(int throughputCalculationInterval);
> +    void setSessionDataStructureFactory(IoSessionDataStructureFactory 
> sessionDataStructureFactory);
>
>     /**
>      * Returns the number of bytes scheduled to be written
> @@ -434,21 +190,16 @@
>     int getScheduledWriteMessages();
>
>     /**
> -     * Writes the specified [EMAIL PROTECTED] message} to all the [EMAIL 
> PROTECTED] IoSession}s
> -     * managed by this service.  This method is a convenience shortcut for
> -     * [EMAIL PROTECTED] IoUtil#broadcast(Object, Collection)}.
> +     * Returns the IoServiceIdleState for this service.
> +     *
> +     * @return The idle state object for this service.
>      */
> -    Set<WriteFuture> broadcast(Object message);
> +    IoServiceIdleState getIdleState();
>
>     /**
> -     * Returns the [EMAIL PROTECTED] IoSessionDataStructureFactory} that 
> provides
> -     * related data structures for a new session created by this service.
> +     * Returns the IoServiceStatistics object for this service.
> +     *
> +     * @return The statistics object for this service.
>      */
> -    IoSessionDataStructureFactory getSessionDataStructureFactory();
> -
> -    /**
> -     * Sets the [EMAIL PROTECTED] IoSessionDataStructureFactory} that 
> provides
> -     * related data structures for a new session created by this service.
> -     */
> -    void setSessionDataStructureFactory(IoSessionDataStructureFactory 
> sessionDataStructureFactory);
> +    IoServiceStatistics getStatistics();
>  }
>
> Added: 
> mina/trunk/core/src/main/java/org/apache/mina/core/service/IoServiceIdleState.java
> URL: 
> http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/service/IoServiceIdleState.java?rev=677580&view=auto
> ==============================================================================
> --- 
> mina/trunk/core/src/main/java/org/apache/mina/core/service/IoServiceIdleState.java
>  (added)
> +++ 
> mina/trunk/core/src/main/java/org/apache/mina/core/service/IoServiceIdleState.java
>  Thu Jul 17 06:27:07 2008
> @@ -0,0 +1,175 @@
> +/*
> + *  Licensed to the Apache Software Foundation (ASF) under one
> + *  or more contributor license agreements.  See the NOTICE file
> + *  distributed with this work for additional information
> + *  regarding copyright ownership.  The ASF licenses this file
> + *  to you under the Apache License, Version 2.0 (the
> + *  "License"); you may not use this file except in compliance
> + *  with the License.  You may obtain a copy of the License at
> + *
> + *    http://www.apache.org/licenses/LICENSE-2.0
> + *
> + *  Unless required by applicable law or agreed to in writing,
> + *  software distributed under the License is distributed on an
> + *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + *  KIND, either express or implied.  See the License for the
> + *  specific language governing permissions and limitations
> + *  under the License.
> + *
> + */
> +package org.apache.mina.core.service;
> +
> +import org.apache.mina.core.session.IdleStatus;
> +
> +/**
> + * Gives access to the idle state information for an IoService.
> + *
> + * @author The Apache MINA Project ([email protected])
> + * @since 2.0-M3
> + */
> +public interface IoServiceIdleState {
> +
> +    /**
> +     * Returns <code>true</code> if this service is idle for the specified
> +     * [EMAIL PROTECTED] IdleStatus}.
> +     */
> +    boolean isIdle(IdleStatus status);
> +
> +    /**
> +     * Returns <code>true</code> if this service is [EMAIL PROTECTED] 
> IdleStatus#READER_IDLE}.
> +     * @see #isIdle(IdleStatus)
> +     */
> +    boolean isReaderIdle();
> +
> +    /**
> +     * Returns <code>true</code> if this service is [EMAIL PROTECTED] 
> IdleStatus#WRITER_IDLE}.
> +     * @see #isIdle(IdleStatus)
> +     */
> +    boolean isWriterIdle();
> +
> +    /**
> +     * Returns <code>true</code> if this service is [EMAIL PROTECTED] 
> IdleStatus#BOTH_IDLE}.
> +     * @see #isIdle(IdleStatus)
> +     */
> +    boolean isBothIdle();
> +
> +    /**
> +     * Returns the number of the fired continuous <tt>serviceIdle</tt> events
> +     * for the specified [EMAIL PROTECTED] IdleStatus}.
> +     * <p/>
> +     * If <tt>serviceIdle</tt> event is fired first after some time after 
> I/O,
> +     * <tt>idleCount</tt> becomes <tt>1</tt>.  <tt>idleCount</tt> resets to
> +     * <tt>0</tt> if any I/O occurs again, otherwise it increases to
> +     * <tt>2</tt> and so on if <tt>serviceIdle</tt> event is fired again 
> without
> +     * any I/O between two (or more) <tt>serviceIdle</tt> events.
> +     */
> +    int getIdleCount(IdleStatus status);
> +
> +    /**
> +     * Returns the number of the fired continuous <tt>serviceIdle</tt> events
> +     * for [EMAIL PROTECTED] IdleStatus#READER_IDLE}.
> +     * @see #getIdleCount(IdleStatus)
> +     */
> +    int getReaderIdleCount();
> +
> +    /**
> +     * Returns the number of the fired continuous <tt>serviceIdle</tt> events
> +     * for [EMAIL PROTECTED] IdleStatus#WRITER_IDLE}.
> +     * @see #getIdleCount(IdleStatus)
> +     */
> +    int getWriterIdleCount();
> +
> +    /**
> +     * Returns the number of the fired continuous <tt>serviceIdle</tt> events
> +     * for [EMAIL PROTECTED] IdleStatus#BOTH_IDLE}.
> +     * @see #getIdleCount(IdleStatus)
> +     */
> +    int getBothIdleCount();
> +
> +    /**
> +     * Returns the time in milliseconds when the last <tt>serviceIdle</tt> 
> event
> +     * is fired for the specified [EMAIL PROTECTED] IdleStatus}.
> +     */
> +    long getLastIdleTime(IdleStatus status);
> +
> +    /**
> +     * Returns the time in milliseconds when the last <tt>serviceIdle</tt> 
> event
> +     * is fired for [EMAIL PROTECTED] IdleStatus#READER_IDLE}.
> +     * @see #getLastIdleTime(IdleStatus)
> +     */
> +    long getLastReaderIdleTime();
> +
> +    /**
> +     * Returns the time in milliseconds when the last <tt>serviceIdle</tt> 
> event
> +     * is fired for [EMAIL PROTECTED] IdleStatus#WRITER_IDLE}.
> +     * @see #getLastIdleTime(IdleStatus)
> +     */
> +    long getLastWriterIdleTime();
> +
> +    /**
> +     * Returns the time in milliseconds when the last <tt>serviceIdle</tt> 
> event
> +     * is fired for [EMAIL PROTECTED] IdleStatus#BOTH_IDLE}.
> +     * @see #getLastIdleTime(IdleStatus)
> +     */
> +    long getLastBothIdleTime();
> +
> +    /**
> +     * Returns idle time for the specified type of idleness in seconds.
> +     */
> +    int getIdleTime(IdleStatus status);
> +
> +    /**
> +     * Returns idle time for the specified type of idleness in milliseconds.
> +     */
> +    long getIdleTimeInMillis(IdleStatus status);
> +
> +    /**
> +     * Sets idle time for the specified type of idleness in seconds.
> +     */
> +    void setIdleTime(IdleStatus status, int idleTime);
> +
> +    /**
> +     * Returns idle time for [EMAIL PROTECTED] IdleStatus#READER_IDLE} in 
> seconds.
> +     */
> +    int getReaderIdleTime();
> +
> +    /**
> +     * Returns idle time for [EMAIL PROTECTED] IdleStatus#READER_IDLE} in 
> milliseconds.
> +     */
> +    long getReaderIdleTimeInMillis();
> +
> +    /**
> +     * Sets idle time for [EMAIL PROTECTED] IdleStatus#READER_IDLE} in 
> seconds.
> +     */
> +    void setReaderIdleTime(int idleTime);
> +
> +    /**
> +     * Returns idle time for [EMAIL PROTECTED] IdleStatus#WRITER_IDLE} in 
> seconds.
> +     */
> +    int getWriterIdleTime();
> +
> +    /**
> +     * Returns idle time for [EMAIL PROTECTED] IdleStatus#WRITER_IDLE} in 
> milliseconds.
> +     */
> +    long getWriterIdleTimeInMillis();
> +
> +    /**
> +     * Sets idle time for [EMAIL PROTECTED] IdleStatus#WRITER_IDLE} in 
> seconds.
> +     */
> +    void setWriterIdleTime(int idleTime);
> +
> +    /**
> +     * Returns idle time for [EMAIL PROTECTED] IdleStatus#BOTH_IDLE} in 
> seconds.
> +     */
> +    int getBothIdleTime();
> +
> +    /**
> +     * Returns idle time for [EMAIL PROTECTED] IdleStatus#BOTH_IDLE} in 
> milliseconds.
> +     */
> +    long getBothIdleTimeInMillis();
> +
> +    /**
> +     * Sets idle time for [EMAIL PROTECTED] IdleStatus#WRITER_IDLE} in 
> seconds.
> +     */
> +    void setBothIdleTime(int idleTime);
> +}
> \ No newline at end of file
>
> Added: 
> mina/trunk/core/src/main/java/org/apache/mina/core/service/IoServiceStatistics.java
> URL: 
> http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/service/IoServiceStatistics.java?rev=677580&view=auto
> ==============================================================================
> --- 
> mina/trunk/core/src/main/java/org/apache/mina/core/service/IoServiceStatistics.java
>  (added)
> +++ 
> mina/trunk/core/src/main/java/org/apache/mina/core/service/IoServiceStatistics.java
>  Thu Jul 17 06:27:07 2008
> @@ -0,0 +1,145 @@
> +/*
> + *  Licensed to the Apache Software Foundation (ASF) under one
> + *  or more contributor license agreements.  See the NOTICE file
> + *  distributed with this work for additional information
> + *  regarding copyright ownership.  The ASF licenses this file
> + *  to you under the Apache License, Version 2.0 (the
> + *  "License"); you may not use this file except in compliance
> + *  with the License.  You may obtain a copy of the License at
> + *
> + *    http://www.apache.org/licenses/LICENSE-2.0
> + *
> + *  Unless required by applicable law or agreed to in writing,
> + *  software distributed under the License is distributed on an
> + *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + *  KIND, either express or implied.  See the License for the
> + *  specific language governing permissions and limitations
> + *  under the License.
> + *
> + */
> +package org.apache.mina.core.service;
> +
> +/**
> + * Provides usage statistics for an IoService.
> + *
> + * @author The Apache MINA Project ([email protected])
> + */
> +public interface IoServiceStatistics {
> +    /**
> +     * Returns the maximum number of sessions which were being managed at the
> +     * same time.
> +     */
> +    int getLargestManagedSessionCount();
> +
> +    /**
> +     * Returns the cumulative number of sessions which were managed (or are
> +     * being managed) by this service, which means 'currently managed session
> +     * count + closed session count'.
> +     */
> +    long getCumulativeManagedSessionCount();
> +
> +    /**
> +     * Returns the time in millis when I/O occurred lastly.
> +     */
> +    long getLastIoTime();
> +
> +    /**
> +     * Returns the time in millis when read operation occurred lastly.
> +     */
> +    long getLastReadTime();
> +
> +    /**
> +     * Returns the time in millis when write operation occurred lastly.
> +     */
> +    long getLastWriteTime();
> +
> +    /**
> +     * Returns the number of bytes read by this service
> +     *
> +     * @return
> +     *     The number of bytes this service has read
> +     */
> +    long getReadBytes();
> +
> +    /**
> +     * Returns the number of bytes written out by this service
> +     *
> +     * @return
> +     *     The number of bytes this service has written
> +     */
> +    long getWrittenBytes();
> +
> +    /**
> +     * Returns the number of messages this services has read
> +     *
> +     * @return
> +     *     The number of messages this services has read
> +     */
> +    long getReadMessages();
> +
> +    /**
> +     * Returns the number of messages this service has written
> +     *
> +     * @return
> +     *     The number of messages this service has written
> +     */
> +    long getWrittenMessages();
> +
> +    /**
> +     * Returns the number of read bytes per second.
> +     */
> +    double getReadBytesThroughput();
> +
> +    /**
> +     * Returns the number of written bytes per second.
> +     */
> +    double getWrittenBytesThroughput();
> +
> +    /**
> +     * Returns the number of read messages per second.
> +     */
> +    double getReadMessagesThroughput();
> +
> +    /**
> +     * Returns the number of written messages per second.
> +     */
> +    double getWrittenMessagesThroughput();
> +
> +    /**
> +     * Returns the maximum of the [EMAIL PROTECTED] 
> #getReadBytesThroughput() readBytesThroughput}.
> +     */
> +    double getLargestReadBytesThroughput();
> +
> +    /**
> +     * Returns the maximum of the [EMAIL PROTECTED] 
> #getWrittenBytesThroughput() writtenBytesThroughput}.
> +     */
> +    double getLargestWrittenBytesThroughput();
> +
> +    /**
> +     * Returns the maximum of the [EMAIL PROTECTED] 
> #getReadMessagesThroughput() readMessagesThroughput}.
> +     */
> +    double getLargestReadMessagesThroughput();
> +
> +    /**
> +     * Returns the maximum of the [EMAIL PROTECTED] 
> #getWrittenMessagesThroughput() writtenMessagesThroughput}.
> +     */
> +    double getLargestWrittenMessagesThroughput();
> +
> +    /**
> +     * Returns the interval (seconds) between each throughput calculation.
> +     * The default value is <tt>3</tt> seconds.
> +     */
> +    int getThroughputCalculationInterval();
> +
> +    /**
> +     * Returns the interval (milliseconds) between each throughput 
> calculation.
> +     * The default value is <tt>3</tt> seconds.
> +     */
> +    long getThroughputCalculationIntervalInMillis();
> +
> +    /**
> +     * Sets the interval (seconds) between each throughput calculation.  The
> +     * default value is <tt>3</tt> seconds.
> +     */
> +    void setThroughputCalculationInterval(int throughputCalculationInterval);
> +}
>
>
>

Reply via email to