public final class RemoteDataChannel extends Object implements IRemoteDataChannel
| Modifier and Type | Field and Description |
|---|---|
static int |
MAX_IDENTIFIER_SIZE
Tamanho maximo do identificador
|
static int |
MAX_KEY_SIZE
Tamanho maximo da chave
|
static int |
MIN_BUFFER_SIZE
Tamanho minimo para o buffer.
|
OP_GET_POSITION, OP_GET_SIZE, OP_READ, OP_SET_POSITION, OP_SET_SIZE, OP_TRANSFER_FROM, OP_TRANSFER_TO, OP_WRITE| Constructor and Description |
|---|
RemoteDataChannel(boolean writable,
String host,
int port,
byte[] key)
Cria um canal de dados remoto.
|
| Modifier and Type | Method and Description |
|---|---|
void |
close()
Solicita o fechamento do canal.
|
int |
getBufferSize() |
ResultMessage |
getLastResultMessage() |
long |
getPosition()
Obtém a posição atual do canal.
|
long |
getSize()
Obtém a quantidade de bytes no canal a partir da posição inicial.
|
boolean |
isOpen()
Verifica se o canal está aberto.
|
void |
keepAlive()
Operação que faz um poll no servidor com o intuito de manter a conexao
ativa
|
void |
open()
Solicita a abertura do arquivo.
|
int |
read(ByteBuffer dest)
Lê uma sequência de bytes do arquivo.
|
int |
read(ByteBuffer dest,
long remotePosition)
Lê uma sequência de bytes do arquivo.
|
long |
remaining()
Retorna a quantidade de bytes no canal a partir da posição atual.
|
void |
setBufferSize(int bufferSize) |
void |
setPosition(long position)
Define a nova posição do arquivo.
|
void |
setSize(long size)
Define a quantidade de bytes para o canal.
|
long |
skip(long bytes)
Metodo que pula/ignora uma quantidade de bytes a partir da posicao atual.
|
short |
supportedOperations()
Retornas os metodos/operações suportados pela implementação do canal de
dados.
|
long |
transferFrom(ReadableByteChannel source,
long remotePosition,
long count)
Transfere os dados de um fluxo de entrada para o arquivo.
|
long |
transferTo(long remotePosition,
long count,
WritableByteChannel dest)
Transfere os dados do arquivo para um fluxo de saída.
|
int |
write(ByteBuffer source)
Escreve uma sequência de bytes no arquivo.
|
int |
write(ByteBuffer source,
long remotePosition)
Escreve uma sequência de bytes no arquivo.
|
public static final int MAX_IDENTIFIER_SIZE
public static final int MAX_KEY_SIZE
public static final int MIN_BUFFER_SIZE
public RemoteDataChannel(boolean writable,
String host,
int port,
byte[] key)
writable - Indica se a escrita é permitida no arquivo.host - A máquina do servidor de arquivos.port - A porta do servidor de arquivos.key - A chave de acesso ao arquivo com tamanho máximo padrão MAX_KEY_SIZE.public void open()
throws PermissionException,
FileNotFoundException,
FailureException,
MaxClientsReachedException,
InvalidProtocolVersionException
open in interface IRemoteDataChannelPermissionException - Caso o usuário não tenha permissão para
realizar o modo de abertura solicitado.FileNotFoundException - Caso o arquivo não exista.FailureException - Caso ocorra alguma falha no procedimento.MaxClientsReachedException - Caso o servidor não possa mais receber
clientes.InvalidProtocolVersionException - Caso o servidor não suporte a
versão do protocolo utilizada pelo cliente.public boolean isOpen()
isOpen in interface ChannelisOpen in interface IDataChanneltrue caso o canal esteja aberto, ou false, caso
contrário.public void close()
throws IOException
close in interface Closeableclose in interface AutoCloseableclose in interface Channelclose in interface IDataChannelIOException - Caso ocorra alguma falha no procedimento.public void setSize(long size)
throws PermissionException,
FailureException
UnsupportedOperationException.setSize in interface IDataChannelsize - O novo tamanho.PermissionExceptionFailureExceptionpublic long getPosition()
throws FailureException
UnsupportedOperationException.getPosition in interface IDataChannelFailureExceptionpublic void setPosition(long position)
throws FailureException
UnsupportedOperationException.setPosition in interface IDataChannelposition - A nova posição.FailureExceptionpublic long getSize()
throws FailureException
UnsupportedOperationException.getSize in interface IDataChannelFailureExceptionpublic int read(ByteBuffer dest) throws FailureException
UnsupportedOperationException.read in interface IDataChanneldest - O buffer.FailureExceptionpublic int read(ByteBuffer dest, long remotePosition) throws FailureException
UnsupportedOperationException.read in interface IDataChanneldest - O buffer.remotePosition - A posição do arquivo a partir da qual a leitura vai ser iniciada.FailureExceptionpublic int write(ByteBuffer source) throws PermissionException, FailureException, FileLockedException
UnsupportedOperationException.write in interface IDataChannelsource - O buffer.PermissionExceptionFailureExceptionFileLockedExceptionpublic int write(ByteBuffer source, long remotePosition) throws PermissionException, FailureException, FileLockedException
UnsupportedOperationException.write in interface IDataChannelsource - O buffer.remotePosition - A posição do arquivo a partir da qual a escrita vai ser iniciada.PermissionExceptionFailureExceptionFileLockedExceptionpublic long transferTo(long remotePosition,
long count,
WritableByteChannel dest)
throws FailureException,
IOException
UnsupportedOperationException.transferTo in interface IDataChannelremotePosition - A posição inicial a partir daqual o arquivo será lido.count - A quantidade de bytes que serão transferidos.dest - O fluxo de saída que receberá os dados do arquivo.IOExceptionFailureExceptionpublic long transferFrom(ReadableByteChannel source, long remotePosition, long count) throws IOException, DataChannelException
UnsupportedOperationException.transferFrom in interface IDataChannelsource - O fluxo de entrada.remotePosition - A posição inicial a partir daqual o arquivo será escrito.count - A quantidade de bytes que serão transferidos.IOExceptionDataChannelException - Caso ocorra alguma situação excepcional no canal.public void keepAlive()
throws FailureException
keepAlive in interface IRemoteDataChannelFailureExceptionpublic void setBufferSize(int bufferSize)
bufferSize - O tamanho do buffer em bytes.public int getBufferSize()
public short supportedOperations()
IDataChannelsupportedOperations in interface IDataChannelpublic long remaining()
throws IOException,
DataChannelException
IDataChannelremaining in interface IDataChannelIOException - Caso ocorra alguma falha no procedimento.DataChannelException - Caso ocorra alguma situação excepcional no canal.public long skip(long bytes)
throws IOException,
DataChannelException
IDataChannelskip in interface IDataChannelbytes - quantidade de bytes a serem pulados. Quantidade de bytes a serem
pulados deve ser maior ou igual a zero.IOException - Caso ocorra alguma falha no procedimento.DataChannelException - Caso ocorra alguma situação excepcional no canal.public ResultMessage getLastResultMessage()
Copyright © 2019 Tecgraf/PUC-Rio. All rights reserved.