mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-12 00:27:26 -05:00
Merges from master branch.
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
package io.github.dsheirer.sample;
|
||||
|
||||
import io.github.dsheirer.sample.real.IOverflowListener;
|
||||
import io.github.dsheirer.source.Source;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -33,6 +34,7 @@ public class OverflowableTransferQueue<E>
|
||||
|
||||
public enum State {NORMAL, OVERFLOW};
|
||||
private IOverflowListener mOverflowListener;
|
||||
private Source mSourceOverflowListener;
|
||||
|
||||
private LinkedTransferQueue<E> mQueue = new LinkedTransferQueue<E>();
|
||||
private AtomicInteger mCounter = new AtomicInteger();
|
||||
@@ -73,6 +75,14 @@ public class OverflowableTransferQueue<E>
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes and returns a single element from the head of the queue or null if the queue is empty
|
||||
*/
|
||||
public E poll()
|
||||
{
|
||||
return mQueue.poll();
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves elements from the queue into the collection up to the maximum number of elements specified
|
||||
*/
|
||||
@@ -91,13 +101,21 @@ public class OverflowableTransferQueue<E>
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a listener to receive overflow state change events
|
||||
* Sets a listener to receive overflow state change events.
|
||||
*/
|
||||
public void setOverflowListener(IOverflowListener listener)
|
||||
{
|
||||
mOverflowListener = listener;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the source to receive overflow state change events (in addition to an IOverflow listener)
|
||||
*/
|
||||
public void setSourceOverflowListener(Source source)
|
||||
{
|
||||
mSourceOverflowListener = source;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Toggles the overflow state and broadcast state change to listener
|
||||
@@ -110,6 +128,11 @@ public class OverflowableTransferQueue<E>
|
||||
{
|
||||
mOverflowListener.sourceOverflow(overflow);
|
||||
}
|
||||
|
||||
if(mSourceOverflowListener != null)
|
||||
{
|
||||
mSourceOverflowListener.broadcastOverflowState(overflow);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -125,4 +148,4 @@ public class OverflowableTransferQueue<E>
|
||||
mOverflow.set(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user