com.path.android.jobqueue.nonPersistentQueue
Class NetworkAwarePriorityQueue

java.lang.Object
  extended by com.path.android.jobqueue.nonPersistentQueue.MergedQueue
      extended by 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


Nested Class Summary
 
Nested classes/interfaces inherited from class com.path.android.jobqueue.nonPersistentQueue.MergedQueue
MergedQueue.SetId
 
Constructor Summary
NetworkAwarePriorityQueue(int initialCapacity, java.util.Comparator<JobHolder> comparator)
          create a network aware priority queue with given initial capacity * 2 and comparator
 
Method Summary
 CountWithGroupIdsResult countReadyJobs(boolean hasNetwork, java.util.Collection<java.lang.String> excludeGroups)
           
 CountWithGroupIdsResult countReadyJobs(java.util.Collection<java.lang.String> excludeGroups)
           
 CountWithGroupIdsResult countReadyJobs(long now, java.util.Collection<java.lang.String> excludeGroups)
           
protected  JobSet createQueue(MergedQueue.SetId ignoredQueueId, int initialCapacity, java.util.Comparator<JobHolder> comparator)
          create a TimeAwarePriorityQueue
protected  MergedQueue.SetId decideQueue(JobHolder jobHolder)
          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.
 JobHolder peek(boolean canUseNetwork, java.util.Collection<java.lang.String> excludeGroupIds)
          Queue.peek() implementation with network requirement filter
 JobHolder poll(boolean canUseNetwork, java.util.Collection<java.lang.String> excludeGroupIds)
          Queue.poll() implementation with network requirement filter
 
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
 

Constructor Detail

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 -
Method Detail

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)