Android Open Source - 4est Needle






From Project

Back to project page 4est.

License

The source code is released under:

MIT License

If you think the Android project 4est listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.wordsaretoys.rise.utility;
// w w  w.j  a v  a 2s. c o m
/**
 * guides a thread (hyuck hyuck)
 * provides safe suspend/resume semantics
 */

public abstract class Needle implements Runnable {

  enum ThreadState { RUN, PAUSE, STOP }
  protected Thread thread = new Thread(this);
  ThreadState state = ThreadState.PAUSE;
  long timeout;
  
  public Needle(String name, long timeout) {
    thread.setName(name);
    this.timeout = timeout;
  }
  
  public void start() {
    thread.start();
  }
  
  public void setName(String name) {
    thread.setName(name);
  }
  
  public boolean isRunning() {
    return state == ThreadState.RUN;
  }
  
  public boolean isPaused() {
    return state == ThreadState.PAUSE;
  }
  
  public boolean isStopped() {
    return state == ThreadState.STOP;
  }
  
  public boolean isLooping() {
    return state != ThreadState.STOP;
  }

  public synchronized void resume() {
    state = ThreadState.RUN;
    notify();
  }
  
  public synchronized void pause() {
    state = ThreadState.PAUSE;
  }
  
  public synchronized void stop() {
    state = ThreadState.STOP;
    notify();
  }
  
  protected boolean block(long time) {
    try {
      synchronized(this) {
        // timed wait
        wait(time);
        // thread suspension check/wait
        while(state == ThreadState.PAUSE) {
          wait();
        }
      }
    } catch(InterruptedException e) {
      return true;
    }
    return false;
  }
  
  protected boolean inPump() {
    block(timeout);
    return isLooping();
  }
  
  public void setPriority(int priority) {
    thread.setPriority(priority);
  }
  
  public abstract void run();
}




Java Source Code List

com.wordsaretoys.forest.Audio.java
com.wordsaretoys.forest.Debris.java
com.wordsaretoys.forest.Game.java
com.wordsaretoys.forest.GlView.java
com.wordsaretoys.forest.MainActivity.java
com.wordsaretoys.forest.Map.java
com.wordsaretoys.forest.Player.java
com.wordsaretoys.forest.Render.java
com.wordsaretoys.forest.Rotors.java
com.wordsaretoys.forest.Shared.java
com.wordsaretoys.forest.Skybox.java
com.wordsaretoys.rise.geometry.Camera.java
com.wordsaretoys.rise.geometry.Geom.java
com.wordsaretoys.rise.geometry.Mote.java
com.wordsaretoys.rise.geometry.Ortho.java
com.wordsaretoys.rise.geometry.Quaternion.java
com.wordsaretoys.rise.geometry.Vector.java
com.wordsaretoys.rise.glwrapper.Mesh.java
com.wordsaretoys.rise.glwrapper.Shader.java
com.wordsaretoys.rise.glwrapper.Texture.java
com.wordsaretoys.rise.meshutil.HeightMapper.java
com.wordsaretoys.rise.meshutil.IndexBuffer.java
com.wordsaretoys.rise.meshutil.SurfaceMapper.java
com.wordsaretoys.rise.meshutil.VertexBuffer.java
com.wordsaretoys.rise.meshutil.Vindexer.java
com.wordsaretoys.rise.pattern.Bitmap.java
com.wordsaretoys.rise.pattern.F2FSumMap.java
com.wordsaretoys.rise.pattern.I2FCutMap.java
com.wordsaretoys.rise.pattern.I2FMap.java
com.wordsaretoys.rise.pattern.I2IMap.java
com.wordsaretoys.rise.pattern.Pattern.java
com.wordsaretoys.rise.pattern.Ring.java
com.wordsaretoys.rise.utility.Asset.java
com.wordsaretoys.rise.utility.Board.java
com.wordsaretoys.rise.utility.Dbg.java
com.wordsaretoys.rise.utility.Interval.java
com.wordsaretoys.rise.utility.Misc.java
com.wordsaretoys.rise.utility.Needle.java