Trait/Object

org.opalj.br.analyses

ProgressManagement

Related Docs: object ProgressManagement | package analyses

Permalink

trait ProgressManagement extends AnyRef

Enables the management of the progress of a long running computation. Typically a long running progress such as an analysis is expected to report progress every 250 to 2000 milliseconds. It should -- however -- check every ~100 milliseconds the interrupted status to enable a timely termination.

This trait defines a call-back interface that is implemented by some class that runs an analysis and which passes an instance of it to some analysis to report progress.

Note

Implementations must handle the case where a step that was started later finishes earlier than a previous step. In other words, even if the last step has ended, that does not mean that the analysis as a whole has already finished. Instead an implementation has to track how many steps have ended to determine when the whole analysis has ended.

,

Implementations of this class must be thread safe if the analysis is multi- threaded.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. ProgressManagement
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def isInterrupted(): Boolean

    Permalink

    This method is called by the analysis method to check whether the analysis should be aborted.

    This method is called by the analysis method to check whether the analysis should be aborted. The analysis will abort the computation if this method returns true.

  2. abstract def progress(step: Int, event: ProgressEvent, message: Option[String]): Unit

    Permalink

    This method is called by the analysis to report progress.

    This method is called by the analysis to report progress.

    An analysis is allowed to just report End events. However, if it reports start events it must also report End events and it must use the same id to do so. This enables the correlation of the events. The analysis must never report more than one Start/End event per step id.

    If the analysis is interrupted it may either signal (as the very last event) a Killed event or an End event if the analysis completed normally.

    step

    The step/id of the event. The first event reported by the analysis has to use the number "1". The step id of the Killed event is "-1".

    message

    An optional message. Typically used in combination with Start events.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. final def end(step: Int, message: Option[String]): Unit

    Permalink
  7. final def end(step: Int, message: String): Unit

    Permalink
  8. final def end(step: Int): Unit

    Permalink
  9. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  13. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  14. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  15. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  16. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  17. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  18. final def start(step: Int, message: String): Unit

    Permalink
  19. final def step[T](step: Int, startMessage: String)(f: ⇒ (T, Option[String])): T

    Permalink
  20. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  21. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  22. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  24. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped