KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > jmx > adaptor > snmp > agent > Counter


1 /*
2  * Copyright (c) 2003, Intracom S.A. - www.intracom.com
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * This package and its source code is available at www.jboss.org
19 **/

20 package org.jboss.jmx.adaptor.snmp.agent;
21
22 /**
23  * Simple, thread safe counter implementattion with accessor methods.
24  *
25  * (Maybe replace with EDU.oswego.cs.dl.util.concurrent.SynchronizedLong?)
26  *
27  * @version $Revision: 44604 $
28  *
29  * @author <a HREF="mailto:spol@intracom.gr">Spyros Pollatos</a>
30  * @author <a HREF="mailto:dimitris@jboss.org">Dimitris Andreadis</a>
31  */

32 public final class Counter
33 {
34    /** the internal counter */
35    private long count;
36    
37    /**
38     * CTOR - initialises the counter to the provided value.
39     *
40     * @param countStart the starting counter value
41     */

42    public Counter(long countStart)
43    {
44       this.count = countStart;
45    }
46      
47    /**
48     * Returns the current value (i.e. the next to be used).
49     */

50    public synchronized long peek()
51    {
52       return this.count;
53    }
54      
55    /**
56     * Returns the current value (i.e. the next to be used) and advances
57     * the counter by one.
58     */

59    public synchronized long advance()
60    {
61       return this.count++;
62    }
63         
64 } // class Counter
65
Popular Tags