1
0
mirror of https://github.com/Rogiel/httpchannel synced 2025-12-05 23:22:51 +00:00

Implements SeekableDownloadChannel

The SeekableDownloadChannel implements SeekableByteChannel and allows to
set the position of the channel and read data from that point onward.
The SeekableDownloadChannel implementation, creates a new internal
DownloadChannel at every call to position(long), that will create a
resume channel onto that point, thus, not all service implementations
are supported.
This commit is contained in:
2012-01-17 23:11:03 -02:00
parent ff4abca387
commit a4c569f10e
29 changed files with 581 additions and 61 deletions

View File

@@ -23,6 +23,7 @@ import com.rogiel.httpchannel.service.Downloader;
import com.rogiel.httpchannel.service.DownloaderCapability;
import com.rogiel.httpchannel.service.Service;
import com.rogiel.httpchannel.service.ServiceID;
import com.rogiel.httpchannel.service.ServiceMode;
import com.rogiel.httpchannel.service.UploadChannel;
import com.rogiel.httpchannel.service.UploadService;
import com.rogiel.httpchannel.service.Uploader;
@@ -80,6 +81,12 @@ public class MultiUploadService extends AbstractHttpService implements Service,
return 0;
}
@Override
public CapabilityMatrix<ServiceMode> getPossibleServiceModes() {
return new CapabilityMatrix<ServiceMode>(ServiceMode.UNAUTHENTICATED,
ServiceMode.NON_PREMIUM, ServiceMode.PREMIUM);
}
@Override
public Uploader<MultiUploadUploaderConfiguration> getUploader(
String filename, long filesize,
@@ -178,7 +185,7 @@ public class MultiUploadService extends AbstractHttpService implements Service,
public UploaderImpl(String filename, long filesize,
MultiUploadUploaderConfiguration configuration) {
super(filename, filesize, configuration);
super(MultiUploadService.this, filename, filesize, configuration);
}
@Override
@@ -225,7 +232,7 @@ public class MultiUploadService extends AbstractHttpService implements Service,
Downloader<NullDownloaderConfiguration> {
protected DownloaderImpl(URI uri,
NullDownloaderConfiguration configuration) {
super(uri, configuration);
super(MultiUploadService.this, uri, configuration);
}
@Override
@@ -258,6 +265,7 @@ public class MultiUploadService extends AbstractHttpService implements Service,
if (!page.containsIgnoreCase(credential.getUsername()))
throw new AuthenticationInvalidCredentialException();
serviceMode = ServiceMode.NON_PREMIUM;
}
@Override