/* * * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ // Copyright (c) 1995-96 by Cisco Systems, Inc. package com.sun.jmx.snmp.daemon; /** * A static instance of this class is usually created. It contains a * counter that is incremented every time it is accessed. For example, * this class can be used in <CODE>SnmpSession</CODE> to generate a request * identifier that is used to identify a message in a client-server session. * The class wraps around when it reaches the maximum positive value, 2^31 - 1. */ final class SnmpRequestCounter { /** * A counter with value between 1...2^31-1. */ int reqid = 0 ; public SnmpRequestCounter() {} /** * Returns the next request identifier. * @return next request identifier. The value wraps to 1 if it reaches negative value. */ public synchronized int getNewId() { if (++reqid < 0) reqid = 1 ; return reqid ; } }