Package com.biglybt.core.subs.impl
Class SubscriptionSchedulerImpl
- java.lang.Object
-
- com.biglybt.core.subs.impl.SubscriptionSchedulerImpl
-
- All Implemented Interfaces:
SubscriptionManagerListener
,SubscriptionScheduler
public class SubscriptionSchedulerImpl extends java.lang.Object implements SubscriptionScheduler, SubscriptionManagerListener
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Set<java.lang.String>
active_result_downloaders
private java.util.Map<Subscription,java.util.List<AESemaphore>>
active_subscription_downloaders
private static int
FAIL_INIT_DELAY
private static int
FAIL_MAX_DELAY
private java.lang.String
last_sched_str
private long
last_schedule
private SubscriptionManagerImpl
manager
private java.util.Map<java.lang.String,java.lang.Long>
rate_limit_map
private ThreadPool
result_downloader
private TimerEvent
schedule_event
private boolean
schedule_in_progress
private static java.lang.Object
SCHEDULER_FAILED_SCAN_CONSEC_KEY
private static java.lang.Object
SCHEDULER_FAILED_SCAN_TIME_KEY
private static java.lang.Object
SCHEDULER_NEXT_SCAN_KEY
private boolean
schedulng_permitted
-
Constructor Summary
Constructors Modifier Constructor Description protected
SubscriptionSchedulerImpl(SubscriptionManagerImpl _manager)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
associationsChanged(byte[] association_hash)
protected void
calculateSchedule()
boolean
download(Subscription subs, boolean is_auto)
void
download(Subscription subs, boolean is_auto, SubscriptionDownloadListener listener)
void
download(Subscription subs, SubscriptionResult original_result)
void
downloadAsync(Subscription subs, boolean is_auto)
protected long
getNextScan(Subscription sub)
protected void
log(java.lang.String str)
protected void
log(java.lang.String str, java.lang.Throwable e)
protected void
scanFailed(Subscription sub)
protected void
scanSuccess(Subscription sub)
protected void
schedule()
void
subscriptionAdded(Subscription subscription)
void
subscriptionChanged(Subscription subscription)
void
subscriptionRemoved(Subscription subscription)
void
subscriptionRequested(SearchProvider sp, java.util.Map<java.lang.String,java.lang.Object> properties)
void
subscriptionRequested(java.net.URL url, java.util.Map<java.lang.String,java.lang.Object> options)
void
subscriptionSelected(Subscription subscription)
-
-
-
Field Detail
-
SCHEDULER_NEXT_SCAN_KEY
private static final java.lang.Object SCHEDULER_NEXT_SCAN_KEY
-
SCHEDULER_FAILED_SCAN_CONSEC_KEY
private static final java.lang.Object SCHEDULER_FAILED_SCAN_CONSEC_KEY
-
SCHEDULER_FAILED_SCAN_TIME_KEY
private static final java.lang.Object SCHEDULER_FAILED_SCAN_TIME_KEY
-
FAIL_INIT_DELAY
private static final int FAIL_INIT_DELAY
- See Also:
- Constant Field Values
-
FAIL_MAX_DELAY
private static final int FAIL_MAX_DELAY
- See Also:
- Constant Field Values
-
manager
private SubscriptionManagerImpl manager
-
active_subscription_downloaders
private java.util.Map<Subscription,java.util.List<AESemaphore>> active_subscription_downloaders
-
rate_limit_map
private java.util.Map<java.lang.String,java.lang.Long> rate_limit_map
-
active_result_downloaders
private java.util.Set<java.lang.String> active_result_downloaders
-
result_downloader
private ThreadPool result_downloader
-
schedulng_permitted
private boolean schedulng_permitted
-
schedule_event
private TimerEvent schedule_event
-
schedule_in_progress
private boolean schedule_in_progress
-
last_schedule
private long last_schedule
-
last_sched_str
private java.lang.String last_sched_str
-
-
Constructor Detail
-
SubscriptionSchedulerImpl
protected SubscriptionSchedulerImpl(SubscriptionManagerImpl _manager)
-
-
Method Detail
-
downloadAsync
public void downloadAsync(Subscription subs, boolean is_auto) throws SubscriptionException
- Specified by:
downloadAsync
in interfaceSubscriptionScheduler
- Throws:
SubscriptionException
-
download
public void download(Subscription subs, boolean is_auto, SubscriptionDownloadListener listener)
- Specified by:
download
in interfaceSubscriptionScheduler
-
download
public boolean download(Subscription subs, boolean is_auto) throws SubscriptionException
- Specified by:
download
in interfaceSubscriptionScheduler
- Throws:
SubscriptionException
-
download
public void download(Subscription subs, SubscriptionResult original_result)
- Specified by:
download
in interfaceSubscriptionScheduler
-
calculateSchedule
protected void calculateSchedule()
-
schedule
protected void schedule()
-
getNextScan
protected long getNextScan(Subscription sub)
-
scanSuccess
protected void scanSuccess(Subscription sub)
-
scanFailed
protected void scanFailed(Subscription sub)
-
log
protected void log(java.lang.String str)
-
log
protected void log(java.lang.String str, java.lang.Throwable e)
-
subscriptionAdded
public void subscriptionAdded(Subscription subscription)
- Specified by:
subscriptionAdded
in interfaceSubscriptionManagerListener
-
subscriptionChanged
public void subscriptionChanged(Subscription subscription)
- Specified by:
subscriptionChanged
in interfaceSubscriptionManagerListener
-
subscriptionSelected
public void subscriptionSelected(Subscription subscription)
- Specified by:
subscriptionSelected
in interfaceSubscriptionManagerListener
-
subscriptionRemoved
public void subscriptionRemoved(Subscription subscription)
- Specified by:
subscriptionRemoved
in interfaceSubscriptionManagerListener
-
associationsChanged
public void associationsChanged(byte[] association_hash)
- Specified by:
associationsChanged
in interfaceSubscriptionManagerListener
-
subscriptionRequested
public void subscriptionRequested(java.net.URL url, java.util.Map<java.lang.String,java.lang.Object> options)
- Specified by:
subscriptionRequested
in interfaceSubscriptionManagerListener
-
subscriptionRequested
public void subscriptionRequested(SearchProvider sp, java.util.Map<java.lang.String,java.lang.Object> properties) throws SubscriptionException
- Throws:
SubscriptionException
-
-