EMMA Coverage Report (generated Fri Oct 21 16:16:13 KST 2005)
[all classes][org.apache.mina.common]

COVERAGE SUMMARY FOR SOURCE FILE [BaseSession.java]

nameclass, %method, %block, %line, %
BaseSession.java100% (1/1)57%  (13/23)40%  (141/350)45%  (35/78)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class BaseSession100% (1/1)57%  (13/23)40%  (141/350)45%  (35/78)
getAttachment (): Object 0%   (0/1)0%   (0/5)0%   (0/1)
getAttributeKeys (): Set 0%   (0/1)0%   (0/16)0%   (0/3)
getCreationTime (): long 0%   (0/1)0%   (0/3)0%   (0/1)
getIdleCount (IdleStatus): int 0%   (0/1)0%   (0/30)0%   (0/7)
getReadBytes (): long 0%   (0/1)0%   (0/3)0%   (0/1)
getWrittenBytes (): long 0%   (0/1)0%   (0/3)0%   (0/1)
getWrittenWriteRequests (): long 0%   (0/1)0%   (0/3)0%   (0/1)
increaseIdleCount (IdleStatus): void 0%   (0/1)0%   (0/52)0%   (0/14)
isIdle (IdleStatus): boolean 0%   (0/1)0%   (0/42)0%   (0/7)
setAttachment (Object): Object 0%   (0/1)0%   (0/18)0%   (0/3)
getLastIdleTime (IdleStatus): long 100% (1/1)60%  (18/30)86%  (6/7)
resetIdleCount (IdleStatus): void 100% (1/1)65%  (22/34)88%  (7/8)
removeAttribute (String): Object 100% (1/1)71%  (12/17)67%  (2/3)
setAttribute (String, Object): Object 100% (1/1)72%  (13/18)67%  (2/3)
BaseSession (): void 100% (1/1)100% (26/26)100% (4/4)
close (): void 100% (1/1)100% (4/4)100% (2/2)
getAttribute (String): Object 100% (1/1)100% (5/5)100% (1/1)
getLastIoTime (): long 100% (1/1)100% (6/6)100% (1/1)
getLastReadTime (): long 100% (1/1)100% (3/3)100% (1/1)
getLastWriteTime (): long 100% (1/1)100% (3/3)100% (1/1)
increaseReadBytes (int): void 100% (1/1)100% (11/11)100% (3/3)
increaseWrittenBytes (int): void 100% (1/1)100% (11/11)100% (3/3)
increaseWrittenWriteRequests (): void 100% (1/1)100% (7/7)100% (2/2)

1/*
2 *   @(#) $Id: BaseSession.java 327113 2005-10-21 06:59:15Z trustin $
3 *
4 *   Copyright 2004 The Apache Software Foundation
5 *
6 *   Licensed under the Apache License, Version 2.0 (the "License");
7 *   you may not use this file except in compliance with the License.
8 *   You may obtain a copy of the License at
9 *
10 *       http://www.apache.org/licenses/LICENSE-2.0
11 *
12 *   Unless required by applicable law or agreed to in writing, software
13 *   distributed under the License is distributed on an "AS IS" BASIS,
14 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 *   See the License for the specific language governing permissions and
16 *   limitations under the License.
17 *
18 */
19package org.apache.mina.common;
20 
21import java.util.HashMap;
22import java.util.Map;
23import java.util.Set;
24 
25import org.apache.mina.common.IdleStatus;
26import org.apache.mina.common.Session;
27 
28/**
29 * Base implementation of {@link Session}.
30 * 
31 * @author The Apache Directory Project (dev@directory.apache.org)
32 * @version $Rev: 327113 $, $Date: 2005-10-21 15:59:15 +0900 $
33 */
34public abstract class BaseSession implements Session
35{
36    private final Map attributes = new HashMap();
37    private final long creationTime;
38 
39    private long readBytes;
40    private long writtenBytes;
41    private long writtenWriteRequests;
42    
43    private long lastReadTime;
44    private long lastWriteTime;
45 
46    private int idleCountForBoth;
47    private int idleCountForRead;
48    private int idleCountForWrite;
49    
50    private long lastIdleTimeForBoth;
51    private long lastIdleTimeForRead;
52    private long lastIdleTimeForWrite;
53 
54    protected BaseSession()
55    {
56        creationTime = lastReadTime = lastWriteTime =
57            lastIdleTimeForBoth = lastIdleTimeForRead = lastIdleTimeForWrite =
58                System.currentTimeMillis();
59    }
60    
61    public void close()
62    {
63        this.close( false );
64    }
65 
66    public Object getAttachment()
67    {
68        return attributes.get( "" );
69    }
70 
71    public Object setAttachment( Object attachment )
72    {
73        synchronized( attributes )
74        {
75            return attributes.put( "", attachment );
76        }
77    }
78 
79    public Object getAttribute( String key )
80    {
81        return attributes.get( key );
82    }
83 
84    public Object setAttribute( String key, Object value )
85    {
86        synchronized( attributes )
87        {
88            return attributes.put( key, value );
89        }
90    }
91    
92    public Object removeAttribute( String key )
93    {
94        synchronized( attributes )
95        {
96            return attributes.remove( key );
97        }
98    }
99 
100    public Set getAttributeKeys() {
101        synchronized( attributes )
102        {
103            return attributes.keySet();
104        }
105    }
106    
107    public long getReadBytes()
108    {
109        return readBytes;
110    }
111 
112    public long getWrittenBytes()
113    {
114        return writtenBytes;
115    }
116 
117    public long getWrittenWriteRequests()
118    {
119        return writtenWriteRequests;
120    }
121    
122    public void increaseReadBytes( int increment )
123    {
124        readBytes += increment;
125        lastReadTime = System.currentTimeMillis();
126    }
127 
128    public void increaseWrittenBytes( int increment )
129    {
130        writtenBytes += increment;
131        lastWriteTime = System.currentTimeMillis();
132    }
133 
134    public void increaseWrittenWriteRequests()
135    {
136        writtenWriteRequests ++;
137    }
138    
139    public long getCreationTime()
140    {
141        return creationTime;
142    }
143 
144    public long getLastIoTime()
145    {
146        return Math.max( lastReadTime, lastWriteTime );
147    }
148 
149    public long getLastReadTime()
150    {
151        return lastReadTime;
152    }
153 
154    public long getLastWriteTime()
155    {
156        return lastWriteTime;
157    }
158 
159    public boolean isIdle( IdleStatus status )
160    {
161        if( status == IdleStatus.BOTH_IDLE )
162            return idleCountForBoth > 0;
163 
164        if( status == IdleStatus.READER_IDLE )
165            return idleCountForRead > 0;
166 
167        if( status == IdleStatus.WRITER_IDLE )
168            return idleCountForWrite > 0;
169 
170        throw new IllegalArgumentException( "Unknown idle status: " + status );
171    }
172 
173    public int getIdleCount( IdleStatus status )
174    {
175        if( status == IdleStatus.BOTH_IDLE )
176            return idleCountForBoth;
177 
178        if( status == IdleStatus.READER_IDLE )
179            return idleCountForRead;
180 
181        if( status == IdleStatus.WRITER_IDLE )
182            return idleCountForWrite;
183 
184        throw new IllegalArgumentException( "Unknown idle status: " + status );
185    }
186    
187    public long getLastIdleTime( IdleStatus status )
188    {
189        if( status == IdleStatus.BOTH_IDLE )
190            return lastIdleTimeForBoth;
191 
192        if( status == IdleStatus.READER_IDLE )
193            return lastIdleTimeForRead;
194 
195        if( status == IdleStatus.WRITER_IDLE )
196            return lastIdleTimeForWrite;
197 
198        throw new IllegalArgumentException( "Unknown idle status: " + status );
199    }
200 
201    public void increaseIdleCount( IdleStatus status )
202    {
203        if( status == IdleStatus.BOTH_IDLE )
204        {
205            idleCountForBoth ++;
206            lastIdleTimeForBoth = System.currentTimeMillis();
207        }
208        else if( status == IdleStatus.READER_IDLE )
209        {
210            idleCountForRead ++;
211            lastIdleTimeForRead = System.currentTimeMillis();
212        }
213        else if( status == IdleStatus.WRITER_IDLE )
214        {
215            idleCountForWrite ++;
216            lastIdleTimeForWrite = System.currentTimeMillis();
217        }
218        else
219            throw new IllegalArgumentException( "Unknown idle status: "
220                                                + status );
221    }
222 
223    public void resetIdleCount( IdleStatus status )
224    {
225        if( status == IdleStatus.BOTH_IDLE )
226            idleCountForBoth = 0;
227        else if( status == IdleStatus.READER_IDLE )
228            idleCountForRead = 0;
229        else if( status == IdleStatus.WRITER_IDLE )
230            idleCountForWrite = 0;
231        else
232            throw new IllegalArgumentException( "Unknown idle status: "
233                                                + status );
234    }
235}

[all classes][org.apache.mina.common]
EMMA 2.0.4217 (C) Vladimir Roubtsov