BooleanFlag.java
上传用户:liming6160
上传日期:2022-06-07
资源大小:785k
文件大小:2k
源码类别:

J2ME

开发平台:

Java

  1. /*
  2.  *    Copyright (C) 2001 - 2007 Mobicom-Kavkaz, Inc
  3.  *    MFRadio - stream radio client for Java 2 Micro Edition
  4.  *    
  5.  *    Visit the project page at: http://mfradio.sourceforge.net
  6.  *
  7.  *    This program is free software; you can redistribute it and/or modify
  8.  *    it under the terms of the GNU General Public License as published by
  9.  *    the Free Software Foundation; either version 2 of the License, or
  10.  *    (at your option) any later version.
  11.  *
  12.  *    This program is distributed in the hope that it will be useful,
  13.  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15.  *    GNU General Public License for more details.
  16.  *
  17.  *    You should have received a copy of the GNU General Public License
  18.  *    along with this program; if not, write to the Free Software
  19.  *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  20.  *
  21.  *    Java (TM) and all Java (TM)-based marks are a trademark or 
  22.  *    registered trademark of Sun Microsystems, Inc, in the United States 
  23.  *    and other countries.
  24.  */
  25. package ru.mobicomk.mfradio.util;
  26. /**
  27.  * Boolean flag with synchronized access.
  28.  *
  29.  * <p>This class provides synchronized access to boolean value in 
  30.  * multi-threaded application.</p>
  31.  *
  32.  * @author  Roman Bondarenko
  33.  */
  34. public class BooleanFlag {
  35.     
  36.     private Object flagSync_;
  37.     private boolean flag_;
  38.     
  39.     /**
  40.      * Creates and initialize a new instance of BooleanFlag.
  41.      * @param value Initial flag value.
  42.      */
  43.     public BooleanFlag(boolean value) {
  44.         flagSync_ = new Object();
  45.         flag_ = value;
  46.     }
  47.     
  48.     /**
  49.      * Set flag (flag value after this call is <b>true</b>).
  50.      */
  51.     public void set() {
  52.         synchronized (flagSync_) {
  53.             flag_ = true;
  54.         }
  55.     }
  56.     /**
  57.      * Reset flag (flag value after this call is <b>false</b>).
  58.      */
  59.     public void reset() {
  60.         synchronized (flagSync_) {
  61.             flag_ = false;
  62.         }
  63.     }
  64.     /**
  65.      * Get flag value.
  66.      * @return Current flag value.
  67.      */
  68.     public boolean value() {
  69.         synchronized (flagSync_) {
  70.             return flag_;
  71.         }
  72.     }
  73.     
  74. }