com.path.android.jobqueue.nonPersistentQueue
Class NetworkAwarePriorityQueue
java.lang.Object
com.path.android.jobqueue.nonPersistentQueue.MergedQueue
com.path.android.jobqueue.nonPersistentQueue.NetworkAwarePriorityQueue
- All Implemented Interfaces:
- JobSet
public class NetworkAwarePriorityQueue
- extends MergedQueue
A MergedQueue
class that can separate jobs based on their network requirement
Constructor Summary |
NetworkAwarePriorityQueue(int initialCapacity,
java.util.Comparator<JobHolder> comparator)
create a network aware priority queue with given initial capacity * 2 and comparator |
Methods inherited from class com.path.android.jobqueue.nonPersistentQueue.MergedQueue |
clear, countReadyJobs, countReadyJobs, findById, offer, peek, peekFromQueue, poll, pollFromQueue, remove, size |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
NetworkAwarePriorityQueue
public NetworkAwarePriorityQueue(int initialCapacity,
java.util.Comparator<JobHolder> comparator)
- create a network aware priority queue with given initial capacity * 2 and comparator
- Parameters:
initialCapacity
- comparator
-
peek
public JobHolder peek(boolean canUseNetwork,
java.util.Collection<java.lang.String> excludeGroupIds)
Queue.peek()
implementation with network requirement filter
- Parameters:
canUseNetwork
- if true
, does not check network requirement if false
, returns only from
no network queue
- Returns:
poll
public JobHolder poll(boolean canUseNetwork,
java.util.Collection<java.lang.String> excludeGroupIds)
Queue.poll()
implementation with network requirement filter
- Parameters:
canUseNetwork
- if true
, does not check network requirement if false
, returns only from
no network queue
- Returns:
decideQueue
protected MergedQueue.SetId decideQueue(JobHolder jobHolder)
- Description copied from class:
MergedQueue
- decides which queue should the job holder go
if first queue, should return 0
if second queue, should return 1
is only called when an item is inserted. methods like remove always call both queues.
- Specified by:
decideQueue
in class MergedQueue
- Returns:
createQueue
protected JobSet createQueue(MergedQueue.SetId ignoredQueueId,
int initialCapacity,
java.util.Comparator<JobHolder> comparator)
- create a
TimeAwarePriorityQueue
- Specified by:
createQueue
in class MergedQueue
- Parameters:
ignoredQueueId
- initialCapacity
- comparator
-
- Returns:
countReadyJobs
public CountWithGroupIdsResult countReadyJobs(boolean hasNetwork,
java.util.Collection<java.lang.String> excludeGroups)
countReadyJobs
public CountWithGroupIdsResult countReadyJobs(long now,
java.util.Collection<java.lang.String> excludeGroups)
countReadyJobs
public CountWithGroupIdsResult countReadyJobs(java.util.Collection<java.lang.String> excludeGroups)