public class HttpDownloader extends Object implements IsFinished, ResetCounters, GetCounters
// Создание клиента HttpClient client = new HttpClient() // Создание запроса откуда качать HttpRequest req = client.createRequest( "http://site/file.zip" ) // Создание докачки HttpDownloader dlr = client.createDownloader( req ) // Восстановление предыдущего состояния ContentFragments savedState = ... // Выполнять асинхронно dlr.setAsync( true ) // Если поддерживается, то использовать докачку по возможности dlr.setAllowPartialContent( true ) // Если поддерживается, то принудительно использовать докачку dlr.setForcePartialDownload( true ) // файл в который производиться закачка ContentBuffer fileBuf = new CFileBuffer( new java.io.File( 'filename' ) ); dlr.setContentBuffer( fileBuf ) // По завершению вызвать функцию dlr.onFinished( new Func1<Object,HttpDownloader>(){ public Object apply(HttpDownloader dl){ // закачка закончилась }}); // Просмотр прогресса скачивания dlr.addListener( new HttpListenerAdapter(){ protected void downloaderStateChanged( HttpDownloader.StateChangedEvent event, HttpDownloader downloader, HttpDownloader.State oldState, HttpDownloader.State newState ){ // смена состояния закачки } protected void downloaderProgress( HttpDownloader.ProgressEvent event, HttpDownloader dl ){ // прогресс закачки long totalSize = dl.getTotalSize(); long downloaded = dl.getDownloadedSize(); // процент закачки int pct = downloaded * 100 / totalSize; } }); // Запуск скачивания if( savedState!=null ) { dlr.start(savedState); } else { dlr.start(); } // Ожидание завершения dlr.waitForFinished() // Сохранение состояния savedState = dlr.getFragments()
В процессе работы ведется подсчет ошибок, скорости передачи и т.д. Все эти подсчеты хранятся в "счётчиках" (getCounters()).
Счетчики могут быть ограничивающие (MaxCounter, OverflowCounter) или не ограничивающие (IntCounter, LongCounter, ...). И первые и вторые, при наступлении какого-то события, увеличивается соответствующее значение счетчика.
Ограничивающие счетчики - они определяют дальнейшее поведение при превышении порогового значения. Так при превышении максимального значения (при max >= 0) счетчика tryCounter - завершиться работа скачивания данных.
OverflowCounter. А при превышении счетчика ошибок скачивания фрагментов (tryFagmentCounter) возможно два поведения: 1 - Пропуск фрагмента, 2 - Остановка с ошибкой;. Поведение задается значением свойства overflowAction.
| Имя / Метод | Тип счетчика | Описание |
| try / getTryCounter() | MaxCounter | Общий счетчик попыток получения данных |
| Modifier and Type | Class and Description |
|---|---|
static class |
HttpDownloader.AddedValidFragmentEvent
Уведомление о добавлении валидного фрагмента
|
protected static class |
HttpDownloader.CatchFirstStatus |
static class |
HttpDownloader.ContentValidateEvent
Уведомление о проверке контента
|
static class |
HttpDownloader.ContentValidateProgressEvent
Уведомление о удалии битого фрагмента
|
static class |
HttpDownloader.CountersResetedEvent
Уведомление о сбросе счетчиков (ошибок)
|
static class |
HttpDownloader.DownloadedFragmentEvent
Уведомление о получении фрагмента
|
static class |
HttpDownloader.FinishWithErrorEvent
Уведомление о завершении с ошибкой
|
static class |
HttpDownloader.FragmentErrorEvent
Уведомление о ошибки проверки фрагмента
|
static class |
HttpDownloader.GetPartEvent
Уведомление о начале получения фрагмента
|
static class |
HttpDownloader.GetPartFinishedEvent
Уведомление о завершении получения фрагмента
|
static class |
HttpDownloader.GetPartStartedEvent
Уведомление о начале получения фрагмента
|
static class |
HttpDownloader.ProgressEvent
Уведомление о прогрессе
|
static class |
HttpDownloader.RedirectEvent
Уведомление о переходе
|
static class |
HttpDownloader.RemovedInvalidFragmentEvent
Уведомление о удалии битого фрагмента
|
static class |
HttpDownloader.RepeatFragmentEvent
Уведомление о повторной закачке фрагмента
|
static class |
HttpDownloader.RepeatOverflowEvent
Уведомление о переполнении повторов
|
static class |
HttpDownloader.ResponseEvent
Уведомление о создании запроса
|
static class |
HttpDownloader.RetryEvent
Уведомление о повторе попытки
|
protected static class |
HttpDownloader.Signal
Сигнал при паралельной работы
|
static class |
HttpDownloader.SkippedFragmentEvent
Уведомление о пропуске фрагмента
|
static class |
HttpDownloader.State
Состояние Downloader
|
static class |
HttpDownloader.StateChangedEvent
Уведомление о смене состояния
|
| Modifier and Type | Field and Description |
|---|---|
protected boolean |
allowParialContent |
protected Boolean |
async |
protected xyz.cofe.cbuffer.ContentBuffer |
contentBuffer
Буфер данных
|
protected long |
contentLength |
protected ContentValidator |
contentValidator
Проверка скаченного контента
|
protected int |
defaultFragmentSize
размер фрагмента по умолчанию (64К)
|
protected long |
downloadedSize |
protected Date |
finished |
protected boolean |
followRedirect |
protected boolean |
forcePartialDownload |
protected ContentFragments |
fragments |
protected Lock |
fragmentsLock |
protected FragmentValidator |
fragmentValidator
Проверка получения фрагмента
|
protected HttpListenersHelper |
httpListenerHelper |
protected static HttpStatusHelper |
httpStatusHelper |
long |
id
Идентификатор объекта в пределах приложения
|
protected ReentrantLock |
lock |
protected int |
maxParallesGetParts
максимальное возможное кол-во паралельных потоков
|
protected static AtomicLong |
sequenceID |
protected Boolean |
serverContinueSupported |
protected HttpDownloader.Signal |
signal |
protected Date |
started |
protected HttpDownloader.State |
state |
protected long |
streamDownloadedSize
Кол-во байт загруженных в режиме stream
|
protected Thread |
thread |
protected xyz.cofe.collection.set.EventSet<ContentFragment> |
validatedFragments
Проверенные, валидные фрагменты
|
| Constructor and Description |
|---|
HttpDownloader(HttpRequest request)
Конструктор
|
HttpDownloader(Mirrors mirrors)
Конструктор
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
addGetPartProgressListener(Queue<Runnable> qe,
GetPart gp,
ContentFragment cf)
Добавляет подписчика на уведомление о прогрессе
|
Closeable |
addListener(HttpListener listener) |
Closeable |
addListener(HttpListener listener,
boolean weakLink) |
protected HttpDownloader.CatchFirstStatus |
catchFirstResponse(Mirrors mirrors,
HttpRequest request,
HttpResponse response,
ContentFragments fragments)
Захвать первого ответа
|
protected boolean |
checkFinishedParts(GetPartList gparts,
WeakHashMap<GetPart,ContentFragment> getPartFragment,
WeakHashMap<ContentFragment,GetPart> fragmentGetPart)
Проверить наличие законченных запросов, и удаляет успешно заверненные.
|
protected void |
checkPauseSignal(GetPartList gparts)
Проверяет сигнал паузы
|
protected HttpDownloader.Signal |
checkSignal() |
protected boolean |
checkStopSignal(GetPartList gparts,
WeakHashMap<GetPart,ContentFragment> getPartFragment)
Проверяет сигнал остановки
|
protected void |
continuePartialDownload(Mirrors mirrors,
HttpRequest request)
Продолжение фрагментарной загрузки
|
protected void |
continueStreamDownload(HttpRequest request,
HttpResponse firstRes)
Продолжение потоковой загрузки
|
protected ContentFragment |
createFragment(long begin,
long end)
Создание фрагмента
|
protected GetPartBuilder |
createGetPartBuilder(Mirrors mirrors,
HttpRequest request)
Создание построителя GetPart
|
protected CreatedNewParts |
createNewParts(List<ContentFragment> lfragments,
GetPartList gparts,
GetPartBuilder gpBuilder,
WeakHashMap<ContentFragment,GetPart> fragmentGetPart,
WeakHashMap<GetPart,ContentFragment> getPartFragment,
Queue<Runnable> qe)
Создает паралельные запросы на полчение недостающих частей
|
protected void |
finishAsError(GetPartList gparts,
WeakHashMap<GetPart,ContentFragment> getPartFragment,
String message)
Завершить работу паралельных потоков с сообщением.
|
protected void |
finishAsError(String message)
Завершение работы с сообщением
|
protected void |
finishPartialDownload()
Завершение работы фрагментарного скачивания
|
protected void |
finishStreamDownload()
Завершение работы потокогового скачивания
|
void |
fireEvent(HttpEvent event) |
protected void |
fireQueueEvents(Queue<Runnable> qe)
Разослать все уведомления в очереди
|
MaxCounter |
getBadStatusCounter()
Счетчик плохого статуса HTTP ответа
|
MaxCounter |
getBindErrCounter()
Счетчик BindException
|
MaxCounter |
getClientErrorCounter()
Счетчик ошибок клиента, 400 >= HTTP статус < 500
|
MaxCounter |
getConnectErrCounter()
Счетчик ConnectException
|
xyz.cofe.cbuffer.ContentBuffer |
getContentBuffer()
Указывает буффер для content-а
|
long |
getContentLength()
Указывает конечный объем контента (Значение береться из заголовка CONTENT-LENGTH).
|
ContentValidator |
getContentValidator()
Проверка скачанного контента
|
Map<String,Counter> |
getCounters()
Счетчики
|
int |
getDefaultFragmentSize()
Вовзаращает размер фрагмента по умолчанию (64К)
|
long |
getDownloadedSize()
Указывает объем скаченного контента.
|
Date |
getFinished()
Дата/время завершения закачки (перехода в состояние Finished)
|
ContentFragments |
getFragments()
Фрагменты данных
|
FragmentValidator |
getFragmentValidator()
Проверка получения фрагмента
|
GetPart[] |
getGetParts()
Возвращает паралельные загрузки
|
MaxCounter |
getHeadersNotExistsCounter()
Счетчик ошибок отсуствия заголовка
|
MaxCounter |
getHttpRetryCounter()
Счетчик HttpRetryException
|
MaxCounter |
getInfoStatusCounter()
Счетчик информационных сообщений, 100 >= HTTP статус < 200
|
Set<HttpListener> |
getListeners() |
Lock |
getLock()
Вовзаращает блокировку
|
MaxCounter |
getMalformedURLCounter()
Счетчик MalformedURLException
|
int |
getMaxParallesGetParts()
Вовзаращает максимальное возможное кол-во паралельных потоков
|
Mirrors |
getMirrors()
Зекрала/источники с которых происходит скачивание контента
|
MaxCounter |
getMultipleErrorsCounter()
Счетчик ошибок (более 1 ошибки за раз) старта
|
MaxCounter |
getNoRouteToHostCounter()
Счетчик NoRouteToHostException
|
long |
getPartialDownloadedSize()
Указывает объем скаченного контента, который содержиться в фрагментах.
|
MaxCounter |
getPortUnreachableCounter()
Счетчик PortUnreachableException
|
ProgressCounters |
getProgressCounters()
Общий счетчик попыток
|
MaxCounter |
getProtocolErrCounter()
Счетчик ProtocolException
|
IntCounter |
getRequestsCounter() |
MaxCounter |
getServerErrorCounter()
Счетчик ошибок сервера, 500 >= HTTP статус
|
protected HttpDownloader.Signal |
getSignal() |
MaxCounter |
getSocketErrCounter()
Счетчик SocketException
|
MaxCounter |
getSocketTimeoutCounter()
Счетчик SocketTimeoutException
|
Date |
getStarted()
Дата/время начала закачки (переход в состояние Starting)
|
HttpDownloader.State |
getState()
Получение состояния объекта
|
long |
getStreamDownloadedSize()
Кол-во байт загруженных в режиме stream
|
Thread |
getThread()
Возвращает thread в котром происходит исполнение
|
long |
getTotalSize()
Возвращает конечный объем конета.
|
MaxCounter |
getTryCounter()
Общий счетчик попыток
|
OverflowCounter |
getTryFagmentCounter() |
MaxCounter |
getTryStartCounter()
Счетчик попыток старта
|
MaxCounter |
getUnknownHostCounter()
Счетчик ошибок UnknownHostException
|
MaxCounter |
getUnknownServiceCounter()
Счетчик UnknownServiceException
|
MaxCounter |
getUnSupportedStatusCounter()
Счетчик не поддерживаемых статусов HTTP ответа
|
MaxCounter |
getUriSyntaxErrCounter()
Счетчик URISyntaxException
|
xyz.cofe.collection.set.EventSet<ContentFragment> |
getValidatedFragments()
Возвращает фрагменты которые валидны
|
LongCounter |
getWorkTimeCounter() |
boolean |
isAlive()
Возвращает признак паралельной работы,
соответ возможность вызвать методы waitForFinished() и stop()
|
boolean |
isAllowParialContent()
Поддерживать частичную докачку фрагментов
|
boolean |
isAsync()
Работать асинхронно (start)
|
boolean |
isFinished()
Объект находится в конечном состоянии, загрузка не производится
|
boolean |
isFollowRedirect()
Переходить по redirect
|
boolean |
isForcePartialDownload()
Форсировать частичную докачку, даже если это не требуется
|
boolean |
isPartialMode() |
Boolean |
isServerContinueSupported()
Указывает, сервер поддерживает докачку
|
static boolean |
isSupportedContinueDownload(HttpResponse response) |
protected void |
markDownloaded(ContentFragment cf)
Отметка фрагмента как закаченного
|
Closeable |
onFinished(xyz.cofe.collection.Func1<Object,HttpDownloader> runOnFinsihed)
Вызывать код когда запрос перейдет в состояние finished.
|
void |
pause()
Сигнал паузы
|
void |
removeListener(HttpListener listener) |
protected void |
repeatDownload(ContentFragment cf)
Повтор закачки указанного фрагмента
|
void |
resetCounters()
Сброс счетчиков
|
void |
resume()
Сигнал продолжения - снятие с паузы
|
protected void |
run(Mirrors mirrors,
ContentFragments fragments)
Начало закачки
|
void |
setAllowParialContent(boolean allowParialContent)
Поддерживать частичную докачку фрагментов
|
void |
setAsync(boolean async)
Работать асинхронно (start)
|
void |
setBadStatusCounter(MaxCounter cnt) |
void |
setBindErrCounter(MaxCounter cnt)
Счетчик BindException
|
void |
setClientErrorCounter(MaxCounter cnt) |
void |
setConnectErrCounter(MaxCounter cnt) |
void |
setContentBuffer(xyz.cofe.cbuffer.ContentBuffer contentBuffer)
Указывает буффер для content-а
|
void |
setContentValidator(ContentValidator cv)
Проверка скачанного контента
|
void |
setDefaultFragmentSize(int defFragmentSize)
Указывает размер фрагмента по умолчанию
|
void |
setFollowRedirect(boolean followRedirect)
Переходить по redirect
|
void |
setForcePartialDownload(boolean forcePartialDownload)
Форсировать частичную докачку, даже если это не требуется
|
protected void |
setFragments(ContentFragments fragments)
Установка фрагментов
|
void |
setFragmentValidator(FragmentValidator fv)
Проверка получения фрагмента
|
void |
setHeadersNotExistsCounter(MaxCounter cnt) |
void |
setHttpRetryCounter(MaxCounter cnt) |
void |
setInfoStatusCounter(MaxCounter cnt) |
void |
setMalformedURLCounter(MaxCounter cnt) |
void |
setMaxParallesGetParts(int maxParallesGetParts)
Указывает максимальное возможное кол-во паралельных потоков
|
void |
setMultipleErrorsCounter(MaxCounter cnt)
Счетчик ошибок (более 1 ошибки за раз) старта
|
void |
setNoRouteToHostCounter(MaxCounter cnt) |
protected void |
setPartialMode(boolean mode) |
void |
setPortUnreachableCounter(MaxCounter cnt) |
void |
setProtocolErrCounter(MaxCounter cnt) |
protected void |
setServerContinueSupported(Boolean serverContinueSupported)
Указывает, сервер поддерживает докачку
|
void |
setServerErrorCounter(MaxCounter cnt) |
protected void |
setSignal(HttpDownloader.Signal signal) |
void |
setSocketErrCounter(MaxCounter cnt)
Счетчик SocketException
|
void |
setSocketTimeoutCounter(MaxCounter cnt) |
protected void |
setState(HttpDownloader.State newState) |
protected HttpDownloader.StateChangedEvent |
setStateAndRetEvent(HttpDownloader.State newState) |
protected void |
setStreamDownloadedSize(long size)
Указывает кол-во байт загруженных в режиме stream
|
void |
setTryCounter(MaxCounter cnt)
Общий счетчик попыток
|
void |
setTryFagmentCounter(OverflowCounter cnt) |
void |
setTryStartCounter(MaxCounter cnt)
Счетчик попыток старта
|
void |
setUnknownHostCounter(MaxCounter cnt) |
void |
setUnknownServiceCounter(MaxCounter cnt) |
void |
setUnSupportedStatusCounter(MaxCounter cnt) |
void |
setUriSyntaxErrCounterCounter(MaxCounter cnt) |
protected void |
skipDownload(ContentFragment cf)
Пропуск закачки указанного фрагмента
|
void |
start()
Запуск на закачивание.
|
void |
start(ContentFragments fragments)
Возобновление скачивания
Можно вызывать в состоянии Prepare, Finished
|
void |
stop()
прерываение загрузки,
можно вызывать когда работает в параллельном/асинхронном режиме.
|
protected void |
switchPartialDownload(Mirrors mirrors,
HttpRequest request,
HttpResponse firstRes,
ContentFragments fragments)
Переключение в режим фрагментарной загруки из потокового режима
|
protected void |
validateContent(Mirrors mirrors,
HttpRequest request,
ContentValidator cv)
Проверка содержимого
|
void |
waitForFinished()
Ожидание завершения загрузки.
|
protected static final AtomicLong sequenceID
protected final ReentrantLock lock
public final long id
protected xyz.cofe.cbuffer.ContentBuffer contentBuffer
protected final HttpListenersHelper httpListenerHelper
protected boolean followRedirect
protected long downloadedSize
protected long streamDownloadedSize
protected long contentLength
protected Boolean async
protected Thread thread
protected boolean allowParialContent
protected boolean forcePartialDownload
protected Boolean serverContinueSupported
protected int maxParallesGetParts
protected volatile ContentValidator contentValidator
protected volatile FragmentValidator fragmentValidator
protected Lock fragmentsLock
protected ContentFragments fragments
protected int defaultFragmentSize
protected Date started
protected Date finished
protected HttpDownloader.State state
protected HttpDownloader.Signal signal
protected static HttpStatusHelper httpStatusHelper
protected xyz.cofe.collection.set.EventSet<ContentFragment> validatedFragments
public HttpDownloader(HttpRequest request)
request - тсочник (URL) с которого качается даныеpublic HttpDownloader(Mirrors mirrors)
mirrors - источники с которого производится скачиваниеpublic Lock getLock()
public void setContentBuffer(xyz.cofe.cbuffer.ContentBuffer contentBuffer)
contentBuffer - буфферpublic xyz.cofe.cbuffer.ContentBuffer getContentBuffer()
public Mirrors getMirrors()
public Set<HttpListener> getListeners()
public Closeable addListener(HttpListener listener)
public Closeable addListener(HttpListener listener, boolean weakLink)
public void removeListener(HttpListener listener)
public void fireEvent(HttpEvent event)
public boolean isFollowRedirect()
public void setFollowRedirect(boolean followRedirect)
followRedirect - true - переход по redirectpublic long getPartialDownloadedSize()
public long getDownloadedSize()
protected void setStreamDownloadedSize(long size)
size - кол-во байт загруженных в режиме streampublic long getStreamDownloadedSize()
public long getContentLength()
public long getTotalSize()
isPartialMode(),
getFragments(),
getContentLength()public boolean isAsync()
public void setAsync(boolean async)
async - true - работать асинхронноpublic Thread getThread()
public boolean isAllowParialContent()
public void setAllowParialContent(boolean allowParialContent)
allowParialContent - true (по умолчанию)public boolean isForcePartialDownload()
public void setForcePartialDownload(boolean forcePartialDownload)
forcePartialDownload - false (по умолчанию)public Boolean isServerContinueSupported()
protected void setServerContinueSupported(Boolean serverContinueSupported)
serverContinueSupported - null - если не известно, true/false - когда известноpublic int getMaxParallesGetParts()
public void setMaxParallesGetParts(int maxParallesGetParts)
maxParallesGetParts - максимальное возможное кол-во паралельных потоков, 1 и большеpublic ContentValidator getContentValidator()
public void setContentValidator(ContentValidator cv)
cv - проверяющий объектpublic FragmentValidator getFragmentValidator()
public void setFragmentValidator(FragmentValidator fv)
fv - проверяющий объектpublic ContentFragments getFragments()
protected void setFragments(ContentFragments fragments)
fragments - фрагментыprotected ContentFragment createFragment(long begin, long end)
begin - началоend - конец исключительноpublic int getDefaultFragmentSize()
public void setDefaultFragmentSize(int defFragmentSize)
defFragmentSize - размер фрагмента по умолчанию, 1 и большеpublic Date getStarted()
public Date getFinished()
public HttpDownloader.State getState()
protected void setState(HttpDownloader.State newState)
protected HttpDownloader.StateChangedEvent setStateAndRetEvent(HttpDownloader.State newState)
public boolean isFinished()
isFinished in interface IsFinishedprotected HttpDownloader.Signal getSignal()
protected void setSignal(HttpDownloader.Signal signal)
protected HttpDownloader.Signal checkSignal()
public void pause()
public void resume()
public boolean isPartialMode()
protected void setPartialMode(boolean mode)
public void start()
HttpDownloader.Statepublic void start(ContentFragments fragments)
fragments - Фрагменты которые требуется докачатьHttpDownloader.Stateprotected void run(Mirrors mirrors, ContentFragments fragments)
mirrors - запросы на скачиваниеfragments - ранее сохраненное состояние (возможно null)protected HttpDownloader.CatchFirstStatus catchFirstResponse(Mirrors mirrors, HttpRequest request, HttpResponse response, ContentFragments fragments)
mirrors - зеркала с которых производится скачиваниеrequest - запросresponse - ответfragments - ранее сохраненное состояние (возможно null)public static boolean isSupportedContinueDownload(HttpResponse response)
protected void switchPartialDownload(Mirrors mirrors, HttpRequest request, HttpResponse firstRes, ContentFragments fragments)
mirrors - зеркала с которых производится скачиваниеrequest - исходный запросfirstRes - первый ответfragments - состояние скаченных фрагментов или nullprotected void continuePartialDownload(Mirrors mirrors, HttpRequest request)
mirrors - зеркалаrequest - текущий запросprotected GetPartBuilder createGetPartBuilder(Mirrors mirrors, HttpRequest request)
mirrors - зеркалаrequest - Запросpublic GetPart[] getGetParts()
protected CreatedNewParts createNewParts(List<ContentFragment> lfragments, GetPartList gparts, GetPartBuilder gpBuilder, WeakHashMap<ContentFragment,GetPart> fragmentGetPart, WeakHashMap<GetPart,ContentFragment> getPartFragment, Queue<Runnable> qe)
lfragments - Список недостающих фрагментовgparts - Паралельные потоки закачекgpBuilder - Создание паралельного потока закачкиfragmentGetPart - Соответствие недостающий фрагмент - паралельные потокgetPartFragment - Соответствие паралельные поток - недостающий фрагментqe - Очередь сообщенийprotected void repeatDownload(ContentFragment cf)
cf - фрагментprotected void skipDownload(ContentFragment cf)
cf - фрагментprotected void markDownloaded(ContentFragment cf)
cf - фрагментprotected boolean checkFinishedParts(GetPartList gparts, WeakHashMap<GetPart,ContentFragment> getPartFragment, WeakHashMap<ContentFragment,GetPart> fragmentGetPart)
gparts - Список запросовgetPartFragment - Карта запрос - фрагментfragmentGetPart - Карта фрагмент - запросpublic xyz.cofe.collection.set.EventSet<ContentFragment> getValidatedFragments()
protected void validateContent(Mirrors mirrors, HttpRequest request, ContentValidator cv)
mirrors - зеркала с которых производится скачиваниеrequest - исходный запросcv - проверяющийprotected void addGetPartProgressListener(Queue<Runnable> qe, GetPart gp, ContentFragment cf)
qe - Очередь сообщенийgp - Паралельный потокcf - Фрагмент данныхprotected void fireQueueEvents(Queue<Runnable> qe)
qe - очередь уведомленийprotected boolean checkStopSignal(GetPartList gparts, WeakHashMap<GetPart,ContentFragment> getPartFragment)
gparts - паралельные потокиgetPartFragment - Карта поток < = > фрагментprotected void checkPauseSignal(GetPartList gparts)
gparts - паралельные потокиprotected void continueStreamDownload(HttpRequest request, HttpResponse firstRes)
request - запросfirstRes - первый ответpublic ProgressCounters getProgressCounters()
public MaxCounter getTryCounter()
public void setTryCounter(MaxCounter cnt)
cnt - счетчикpublic MaxCounter getTryStartCounter()
public void setTryStartCounter(MaxCounter cnt)
cnt - счетчикpublic OverflowCounter getTryFagmentCounter()
public void setTryFagmentCounter(OverflowCounter cnt)
public MaxCounter getMultipleErrorsCounter()
public void setMultipleErrorsCounter(MaxCounter cnt)
cnt - счетчикpublic MaxCounter getUnknownHostCounter()
public void setUnknownHostCounter(MaxCounter cnt)
public MaxCounter getHeadersNotExistsCounter()
public void setHeadersNotExistsCounter(MaxCounter cnt)
public MaxCounter getBadStatusCounter()
public void setBadStatusCounter(MaxCounter cnt)
public MaxCounter getServerErrorCounter()
public void setServerErrorCounter(MaxCounter cnt)
public MaxCounter getClientErrorCounter()
public void setClientErrorCounter(MaxCounter cnt)
public MaxCounter getInfoStatusCounter()
public void setInfoStatusCounter(MaxCounter cnt)
public MaxCounter getUnSupportedStatusCounter()
public void setUnSupportedStatusCounter(MaxCounter cnt)
public MaxCounter getUriSyntaxErrCounter()
public void setUriSyntaxErrCounterCounter(MaxCounter cnt)
public MaxCounter getUnknownServiceCounter()
public void setUnknownServiceCounter(MaxCounter cnt)
public MaxCounter getSocketTimeoutCounter()
public void setSocketTimeoutCounter(MaxCounter cnt)
public MaxCounter getProtocolErrCounter()
public void setProtocolErrCounter(MaxCounter cnt)
public MaxCounter getPortUnreachableCounter()
public void setPortUnreachableCounter(MaxCounter cnt)
public MaxCounter getMalformedURLCounter()
public void setMalformedURLCounter(MaxCounter cnt)
public MaxCounter getHttpRetryCounter()
public void setHttpRetryCounter(MaxCounter cnt)
public MaxCounter getSocketErrCounter()
public void setSocketErrCounter(MaxCounter cnt)
cnt - Счетчик ошибок клиентаpublic MaxCounter getBindErrCounter()
public void setBindErrCounter(MaxCounter cnt)
cnt - Счетчик ошибок клиентаpublic MaxCounter getConnectErrCounter()
public void setConnectErrCounter(MaxCounter cnt)
public MaxCounter getNoRouteToHostCounter()
public void setNoRouteToHostCounter(MaxCounter cnt)
public LongCounter getWorkTimeCounter()
public IntCounter getRequestsCounter()
public Map<String,Counter> getCounters()
getCounters in interface GetCounterspublic void resetCounters()
resetCounters in interface ResetCountersprotected void finishStreamDownload()
protected void finishAsError(GetPartList gparts, WeakHashMap<GetPart,ContentFragment> getPartFragment, String message)
gparts - паралельные потокиgetPartFragment - соответствие паралельный поток - фрагментmessage - сообщениеfinishAsError(java.lang.String)protected void finishAsError(String message)
message - сообщениеprotected void finishPartialDownload()
public void waitForFinished()
isAlive()public boolean isAlive()
public void stop()
isAlive()public Closeable onFinished(xyz.cofe.collection.Func1<Object,HttpDownloader> runOnFinsihed)
runOnFinsihed - код который надо вызватьCopyright © 2017. All rights reserved.