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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user