Calculator Problem Set Javadocs

cs101.util.semaphore
Class GBS

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjava.awt.Panel
              extended bycs101.util.semaphore.GraphicalSemaphore
                  extended bycs101.util.semaphore.GBS
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class GBS
extends GraphicalSemaphore

Implements simple binary semaphores in java witha graphical display.
Interface is gbs.request(), gbs.release().
It also provides a graphical display of the semaphores status.

This utility borrows heavily from the design and implementation of cs101.util.BS. It mearly adds a graphical display.
Copyright 1996 Massachusetts Institute of Technology

Version:
$Id: GBS.java,v 1.3 2003/09/23 15:36:21 gus Exp $
Author:
Todd C. Parnell, tparnell@ai.mit.edu, Joshua R. Brown, reuben@ai.mit.edu (added graphics), Lynn Andrea Stein, las@ai.mit.edu (semaphore design)
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class java.awt.Panel
java.awt.Panel.AccessibleAWTPanel
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class cs101.util.semaphore.GraphicalSemaphore
display, InstanceCounter, label, myNumber
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
GBS(boolean initVal, java.lang.String label)
          Constructs a binary semaphore with the intial value passed in.
 
Method Summary
 void release()
          Releases the semaphore.
 void request()
          Requests the semaphore.
protected  void setupGUI()
          Does all of the graphical setup on this level then calls the superclasses method to finish the setup.
protected  void showStatus()
          Prints out the current state of the semaphore.
 
Methods inherited from class cs101.util.semaphore.GraphicalSemaphore
getMinimumSize, getPreferredSize
 
Methods inherited from class java.awt.Panel
addNotify, getAccessibleContext
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getListeners, getMaximumSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, paramString, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, removeNotify, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFont, setLayout, transferFocusBackward, transferFocusDownCycle, update, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isOpaque, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

GBS

public GBS(boolean initVal,
           java.lang.String label)
Constructs a binary semaphore with the intial value passed in.

Parameters:
initVal - Initial value for semaphore. (true => in use)
label - Used to identfy the semaphore in the display.
Method Detail

setupGUI

protected void setupGUI()
Does all of the graphical setup on this level then calls the superclasses method to finish the setup. This method is primarly responsible for setting up the display Panel.

Overrides:
setupGUI in class GraphicalSemaphore

request

public void request()
Requests the semaphore. If the semaphore is currently busy, causes the requesting process to wait() until the semaphore is release()d. Unlike java.lang.Object.wait(), the requesting process is not suspended if the semaphore is currently free.

Specified by:
request in class GraphicalSemaphore
See Also:
release(), Object.wait()

release

public void release()
Releases the semaphore. Any objects currently wait()ing on the semaphore are notify()d (and one of them will be granted the semaphore). Unlike java.lang.Object.notify(), the semaphore is also freed so that if there are no wait()ing objects, the next object to request() the semaphore will receive it.

Specified by:
release in class GraphicalSemaphore
See Also:
request(), Object.notifyAll()

showStatus

protected void showStatus()
Prints out the current state of the semaphore. Changes the graphical display.

Specified by:
showStatus in class GraphicalSemaphore

Calculator Problem Set Javadocs