Class BoundedBuffer<T>

java.lang.Object
ch.hslu.exercises.sw06.ex4.BoundedBuffer<T>
Type Parameters:
T - Elememente des Buffers
All Implemented Interfaces:
Buffer<T>

public final class BoundedBuffer<T> extends Object implements Buffer<T>
Puffer nach dem First In First Out Prinzip mit einer begrenzten Kapazität. Der Puffer ist thread sicher.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Erzeugt einen Puffer mit bestimmter Kapazität.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    add(T elem)
    Ein Element T speichern.
    boolean
    add(T elem, long millis)
    Ein Element T speichern oder nach einem Timeout abbrechen.
    void
     
    boolean
    Gibt, ob der Puffer leer ist.
    boolean
    Gibt, ob der Puffer voll ist.
    Liest und entfernt ein Element.
    remove(long millis)
    Liest und entfernt ein Element oder nach einem Timeout abbrechen.
    int
    Gibt die Anzahl im Puffer gespeicherten Elemente zurück.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • BoundedBuffer

      public BoundedBuffer(int n)
      Erzeugt einen Puffer mit bestimmter Kapazität.
      Parameters:
      n - Kapazität des Puffers
  • Method Details

    • add

      public void add(T elem) throws InterruptedException
      Description copied from interface: Buffer
      Ein Element T speichern. Falls der Puffer voll ist, warten bis ein Platz frei wird.
      Specified by:
      add in interface Buffer<T>
      Parameters:
      elem - zu speicherndes Element.
      Throws:
      InterruptedException - wenn das Warten unterbrochen wird.
    • remove

      public T remove() throws InterruptedException
      Description copied from interface: Buffer
      Liest und entfernt ein Element. Falls der Puffer leer ist, warten bis ein Platz belegt wird.
      Specified by:
      remove in interface Buffer<T>
      Returns:
      gelesenes Element.
      Throws:
      InterruptedException - falls das Warten unterbrochen wird.
    • add

      public boolean add(T elem, long millis) throws InterruptedException
      Description copied from interface: Buffer
      Ein Element T speichern oder nach einem Timeout abbrechen. Falls der Puffer voll ist, warten bis ein Platz frei wird.
      Specified by:
      add in interface Buffer<T>
      Parameters:
      elem - zu speicherndes Element.
      millis - Timeout bis zum Abbruch.
      Returns:
      true, wenn Element gespeichert wurde, false, wenn Timeout eingetreten ist.
      Throws:
      InterruptedException - wenn das Warten unterbrochen wird.
    • remove

      public T remove(long millis) throws InterruptedException
      Description copied from interface: Buffer
      Liest und entfernt ein Element oder nach einem Timeout abbrechen. Falls der Puffer leer ist, warten bis ein Platz belegt wird.
      Specified by:
      remove in interface Buffer<T>
      Parameters:
      millis - Timeout bis zum Abbruch.
      Returns:
      gelesenes Element.
      Throws:
      InterruptedException - falls das Warten unterbrochen wird.
    • addSynchronized

      public void addSynchronized(T elem)
    • empty

      public boolean empty()
      Description copied from interface: Buffer
      Gibt, ob der Puffer leer ist.
      Specified by:
      empty in interface Buffer<T>
      Returns:
      true wenn der Puffer leer ist, sonst false.
    • full

      public boolean full()
      Description copied from interface: Buffer
      Gibt, ob der Puffer voll ist.
      Specified by:
      full in interface Buffer<T>
      Returns:
      true wenn der Puffer voll ist, sonst false.
    • size

      public int size()
      Description copied from interface: Buffer
      Gibt die Anzahl im Puffer gespeicherten Elemente zurück.
      Specified by:
      size in interface Buffer<T>
      Returns:
      Anzahl Elemente.