#include <RemoteDataChannel.h>
Diagrama de Hierarquia para tecgraf::ftc::v1_04_01::RemoteDataChannel:
Métodos Públicos | |
FTC_DECL | RemoteDataChannel (const bool writable, const std::string &hostname, uint16_t port, const std::vector< uint8_t > &access_key) |
Construtor. | |
virtual FTC_DECL | ~RemoteDataChannel () |
Destrutor. | |
virtual FTC_DECL void | open () |
Abre o canal de dados remoto. | |
virtual FTC_DECL void | close () |
Fecha o canal de dados remoto. | |
virtual FTC_DECL uint16_t | supportedOperations () const |
virtual FTC_DECL bool | isOpen () const |
virtual FTC_DECL int64_t | remaining () const |
virtual FTC_DECL uint64_t | skip (const uint64_t count) |
virtual FTC_DECL uint64_t | position () const |
virtual FTC_DECL void | position (const uint64_t position) |
virtual FTC_DECL uint64_t | size () const |
virtual FTC_DECL void | size (const uint64_t size) |
virtual FTC_DECL int64_t | read (Buffer &dest) |
virtual FTC_DECL int64_t | read (Buffer &dest, const uint64_t remotePosition) |
virtual FTC_DECL int64_t | read (char *dest, const std::size_t nbytes) |
Lê uma quantidade de bytes do canal remoto. | |
virtual FTC_DECL int64_t | read (char *dest, const std::size_t nbytes, const uint64_t remotePosition) |
Lê uma quantidade de bytes a partir de uma dada posição no canal remoto. | |
virtual FTC_DECL int64_t | read (char *dest, const std::size_t offset, const std::size_t nbytes, const uint64_t remotePosition) |
Lê uma quantidade de bytes a partir de uma dada posição no canal remoto. | |
virtual FTC_DECL int64_t | write (Buffer &source) |
virtual FTC_DECL int64_t | write (Buffer &source, const uint64_t remotePosition) |
virtual FTC_DECL int64_t | write (const char *source, const uint64_t nbytes) |
Escreve uma quantidade de bytes do canal remoto. | |
virtual FTC_DECL int64_t | write (const char *source, const uint64_t nbytes, const uint64_t remotePosition) |
Escreve uma quantidade de bytes a partir de uma posição no canal remoto. | |
virtual FTC_DECL int64_t | write (const char *source, const std::size_t offset, const uint64_t nbytes, const uint64_t remotePosition) |
Escreve uma quantidade de bytes a partir de uma posição no canal remoto. | |
virtual FTC_DECL int64_t | transferTo (const uint64_t remotePosition, const uint64_t nbytes, IDataChannel &dest) |
virtual FTC_DECL int64_t | transferFrom (IDataChannel &source, const uint64_t remotePosition, const uint64_t nbytes) |
virtual FTC_DECL int64_t | transferTo (const uint64_t remotePosition, const uint64_t nbytes, FILE &fd) |
Transfere os dados do canal de dados remoto diretamente para um arquivo local. | |
FTC_DECL void | keepAlive () |
Notifica o servidor sobre o interesse de manter a conexão ativa. | |
FTC_DECL std::size_t | bufferSize () const |
Tamanho do buffer em bytes utilizado nas operações. | |
FTC_DECL void | bufferSize (std::size_t value) |
Define o tamanho em bytes do buffer utilizado nas operações. |
Esta classe representa o cliente FTC. Tendo o endereço/porta e chave de acesso previamente conhecido, é possível se conectar com o servidor FTC abrindo o canal de dados e, assim então, executar operações sobre o canal de dados.
A obtenção das informações para conexão com o servidor FTC não faz parte do escopo do FTC. Logo, deve existir uma maneira para que essa informação seja transmitida do servidor FTC para o cliente FTC.
FTC_DECL tecgraf::ftc::v1_04_01::RemoteDataChannel::RemoteDataChannel | ( | const bool | writable, | |
const std::string & | hostname, | |||
uint16_t | port, | |||
const std::vector< uint8_t > & | access_key | |||
) |
Construtor.
Obs: A conexão com o servidor só é estabelecida no método open.
writable | Indica se o canal de dados deve ser aberto para leitura. | |
hostname | Endereço do servidor (hostname ou endereco IP válido). | |
port | Porta TCP do servidor (1-65535). | |
access_key | Chave de acesso ao canal de dados (Tamanho maximo: AccessKey::MAX_SIZE). |
std::invalid_argument | Caso algum argumento esteja inválido |
FTC_DECL void tecgraf::ftc::v1_04_01::RemoteDataChannel::bufferSize | ( | std::size_t | value | ) |
Define o tamanho em bytes do buffer utilizado nas operações.
value | O tamanho do buffer em bytes. |
FTC_DECL std::size_t tecgraf::ftc::v1_04_01::RemoteDataChannel::bufferSize | ( | ) | const |
Tamanho do buffer em bytes utilizado nas operações.
virtual FTC_DECL void tecgraf::ftc::v1_04_01::RemoteDataChannel::close | ( | ) | [virtual] |
Fecha o canal de dados remoto.
Informa ao servidor FTC que o arquivo deve ser fechado e em seguida fecha a conexão TCP.
FailureException | Caso ocorra uma falha na comunicação ponto a ponto. | |
IllegalStateException | Caso o canal não esteja aberto. |
virtual FTC_DECL bool tecgraf::ftc::v1_04_01::RemoteDataChannel::isOpen | ( | ) | const [virtual] |
Informa se o canal está aberto ou não.
Implementação obrigatoria.
true
se, e somente se, o canal está aberto.Implementa tecgraf::ftc::v1_04_01::IDataChannel.
FTC_DECL void tecgraf::ftc::v1_04_01::RemoteDataChannel::keepAlive | ( | ) |
Notifica o servidor sobre o interesse de manter a conexão ativa.
Envia uma pequena mensagem para o servidor com o intuito de manter a conexão ativa.
virtual FTC_DECL void tecgraf::ftc::v1_04_01::RemoteDataChannel::open | ( | ) | [virtual] |
Abre o canal de dados remoto.
Estabelece uma conexão TCP com o servidor FTC e requisita a abertura do canal de dados.
FailureException | Caso já esteja aberto, falha na conexão/comunicação ponto a ponto, falha na autenticação, falha na negociação ou falha ao abrir canal de dados | |
InvalidKeyException | Caso a chave passada não seja reconhecida | |
InvalidProtocolVersionException | Versão não reconhecida ou não suportada pelo servidor | |
MaxClientsReachedException | O servidor se encontra com o número máximo de conexões suportadas preenchidas | |
FileNotFoundException | Arquivo solicidado não encontrado/sem view | |
NoPermissionException | Sem permissão para abrir o canal de dados remoto | |
IllegalStateException | Caso sejam lidos dados não esperados |
virtual FTC_DECL void tecgraf::ftc::v1_04_01::RemoteDataChannel::position | ( | const uint64_t | position | ) | [virtual] |
Define a nova posição do arquivo.
Implementação opcional. No caso da operação não ser suportada deve ser lançada UnsupportedOperationException.
position | A nova posição |
UnsupportedOperationException | Caso a operação não seja suportada nesse canal. |
UnsupportedOperationException | Operação não é suportada pelo canal remoto. | |
FailureException | Caso ocorra uma falha na comunicação ponto a ponto. | |
IllegalStateException | Caso o canal não esteja aberto. |
Implementa tecgraf::ftc::v1_04_01::IDataChannel.
virtual FTC_DECL uint64_t tecgraf::ftc::v1_04_01::RemoteDataChannel::position | ( | ) | const [virtual] |
Obtém a posição atual do canal.
Implementação opcional. No caso da operação não ser suportada deve ser lançada UnsupportedOperationException.
UnsupportedOperationException | Caso a operação não seja suportada nesse canal. |
UnsupportedOperationException | Operação não é suportada pelo canal remoto. | |
FailureException | Caso ocorra uma falha na comunicação ponto a ponto. | |
IllegalStateException | Caso o canal não esteja aberto. |
Implementa tecgraf::ftc::v1_04_01::IDataChannel.
virtual FTC_DECL int64_t tecgraf::ftc::v1_04_01::RemoteDataChannel::read | ( | char * | dest, | |
const std::size_t | offset, | |||
const std::size_t | nbytes, | |||
const uint64_t | remotePosition | |||
) | [virtual] |
Lê uma quantidade de bytes a partir de uma dada posição no canal remoto.
dest | Ponteiro para o espaço onde os bytes lidos serão escritos. | |
offset | Posição em dest que começara a ser transferido os dados do canal remoto. | |
nbytes | Quantidades de bytes a serem lidos. | |
remotePosition | A posição deste canal remoto a partir da qual a leitura vai ser iniciada. |
virtual FTC_DECL int64_t tecgraf::ftc::v1_04_01::RemoteDataChannel::read | ( | char * | dest, | |
const std::size_t | nbytes, | |||
const uint64_t | remotePosition | |||
) | [virtual] |
Lê uma quantidade de bytes a partir de uma dada posição no canal remoto.
dest | Ponteiro para o espaço onde os bytes lidos serão escritos. | |
nbytes | Quantidades de bytes a serem lidos. | |
remotePosition | A posição deste canal remoto a partir da qual a leitura vai ser iniciada. |
virtual FTC_DECL int64_t tecgraf::ftc::v1_04_01::RemoteDataChannel::read | ( | char * | dest, | |
const std::size_t | nbytes | |||
) | [virtual] |
Lê uma quantidade de bytes do canal remoto.
dest | Ponteiro para o espaço onde os bytes lidos serão escritos. | |
nbytes | Quantidades de bytes a serem lidos. |
virtual FTC_DECL int64_t tecgraf::ftc::v1_04_01::RemoteDataChannel::read | ( | Buffer & | dest, | |
const uint64_t | remotePosition | |||
) | [virtual] |
Lê uma sequência de bytes do arquivo.
Implementação opcional. No caso da operação não ser suportada deve ser lançada UnsupportedOperationException.
dest | O buffer de destino dos bytes a serem lidos do canal | |
remotePosition | A posição deste canal partir da qual a leitura vai ser iniciada. |
UnsupportedOperationException | Caso a operação não seja suportada nesse canal. |
Implementa tecgraf::ftc::v1_04_01::IDataChannel.
virtual FTC_DECL int64_t tecgraf::ftc::v1_04_01::RemoteDataChannel::read | ( | Buffer & | dest | ) | [virtual] |
Lê uma sequência de bytes do arquivo.
Implementação opcional. No caso da operação não ser suportada deve ser lançada UnsupportedOperationException.
dest | O buffer de destino dos bytes a serem lidos do canal |
UnsupportedOperationException | Caso a operação não seja suportada nesse canal. |
Implementa tecgraf::ftc::v1_04_01::IDataChannel.
virtual FTC_DECL int64_t tecgraf::ftc::v1_04_01::RemoteDataChannel::remaining | ( | ) | const [virtual] |
Retorna a quantidade de bytes no canal a partir da posição atual e o limite.
O valor -1 significa end-of-stream.
O valor 0 significa que atualmente não há dados, mas pode vir a ter. Utilizado em live-streams
Implementação obrigatoria.
Implementa tecgraf::ftc::v1_04_01::IDataChannel.
virtual FTC_DECL void tecgraf::ftc::v1_04_01::RemoteDataChannel::size | ( | const uint64_t | size | ) | [virtual] |
Define a quantidade de bytes para o canal.
Implementação opcional. No caso da operação não ser suportada deve ser lançada UnsupportedOperationException.
size | O novo tamanho |
UnsupportedOperationException | Caso a operação não seja suportada nesse canal. |
UnsupportedOperationException | Operação não é suportada pelo canal remoto. | |
NoPermissionException | Arquivo remoto foi aberto somente para leitura. | |
ReadOnlyException | Canal remoto foi aberto somente para leitura. | |
FailureException | Caso ocorra uma falha na comunicação ponto a ponto. | |
IllegalStateException | Caso o canal não esteja aberto. |
Implementa tecgraf::ftc::v1_04_01::IDataChannel.
virtual FTC_DECL uint64_t tecgraf::ftc::v1_04_01::RemoteDataChannel::size | ( | ) | const [virtual] |
Obtém a quantidade de bytes no canal a partir da posição inicial.
Implementação opcional. No caso da operação não ser suportada deve ser lançada UnsupportedOperationException.
UnsupportedOperationException | Caso a operação não seja suportada nesse canal. |
UnsupportedOperationException | Operação não é suportada pelo canal remoto. | |
FailureException | Caso ocorra uma falha na comunicação ponto a ponto. | |
IllegalStateException | Caso o canal não esteja aberto. |
Implementa tecgraf::ftc::v1_04_01::IDataChannel.
virtual FTC_DECL uint64_t tecgraf::ftc::v1_04_01::RemoteDataChannel::skip | ( | const uint64_t | count | ) | [virtual] |
Metodo que pula/ignora uma quantidade de bytes a partir da posicao atual.
Implementação obrigatoria.
count | quantidade de bytes a serem pulados. |
Implementa tecgraf::ftc::v1_04_01::IDataChannel.
virtual FTC_DECL uint16_t tecgraf::ftc::v1_04_01::RemoteDataChannel::supportedOperations | ( | ) | const [virtual] |
Retorna os métodos/operações suportados pela implementação do canal de dados. Todas as implementações devem definir as operações suportadas.
Implementação obrigatoria.
Implementa tecgraf::ftc::v1_04_01::IDataChannel.
virtual FTC_DECL int64_t tecgraf::ftc::v1_04_01::RemoteDataChannel::transferFrom | ( | IDataChannel & | source, | |
const uint64_t | remotePosition, | |||
const uint64_t | nbytes | |||
) | [virtual] |
Transfere os dados de um fluxo de entrada para o arquivo.
Implementação opcional. No caso da operação não ser suportada deve ser lançada UnsupportedOperationException.
source | O fluxo de entrada. | |
remotePosition | A posição inicial a partir da qual este canal será escrito. | |
nbytes | A quantidade de bytes para serem transferidos |
UnsupportedOperationException | Caso a operação não seja suportada nesse canal. |
Implementa tecgraf::ftc::v1_04_01::IDataChannel.
virtual FTC_DECL int64_t tecgraf::ftc::v1_04_01::RemoteDataChannel::transferTo | ( | const uint64_t | remotePosition, | |
const uint64_t | nbytes, | |||
FILE & | fd | |||
) | [virtual] |
Transfere os dados do canal de dados remoto diretamente para um arquivo local.
remotePosition | A posição inicial a partir da qual este canal será lido. | |
nbytes | Quantidade de bytes a serem transferidos. | |
fd | Descritor do arquivo local. |
virtual FTC_DECL int64_t tecgraf::ftc::v1_04_01::RemoteDataChannel::transferTo | ( | const uint64_t | remotePosition, | |
const uint64_t | nbytes, | |||
IDataChannel & | dest | |||
) | [virtual] |
Transfere os dados do arquivo para um fluxo de saída.
Implementação opcional. No caso da operação não ser suportada deve ser lançada UnsupportedOperationException.
remotePosition | A posição inicial a partir da qual este canal será lido. | |
nbytes | A quantidade de bytes para serem transferidos. | |
dest | O fluxo de saída que receberá os dados do canal. |
UnsupportedOperationException | Caso a operação não seja suportada nesse canal. |
Implementa tecgraf::ftc::v1_04_01::IDataChannel.
virtual FTC_DECL int64_t tecgraf::ftc::v1_04_01::RemoteDataChannel::write | ( | const char * | source, | |
const std::size_t | offset, | |||
const uint64_t | nbytes, | |||
const uint64_t | remotePosition | |||
) | [virtual] |
Escreve uma quantidade de bytes a partir de uma posição no canal remoto.
source | Ponteiro de onde os dados serão lidos. | |
offset | Posição inicial em source será transferido para o canal remoto. | |
nbytes | Quantidade de bytes para serem escritos. | |
remotePosition | A posição deste canal remoto a partir da qual a escrita vai ser iniciada. |
virtual FTC_DECL int64_t tecgraf::ftc::v1_04_01::RemoteDataChannel::write | ( | const char * | source, | |
const uint64_t | nbytes, | |||
const uint64_t | remotePosition | |||
) | [virtual] |
Escreve uma quantidade de bytes a partir de uma posição no canal remoto.
source | Ponteiro de onde os dados serão lidos. | |
nbytes | Quantidade de bytes para serem escritos. | |
remotePosition | A posição deste canal remoto a partir da qual a escrita vai ser iniciada. |
virtual FTC_DECL int64_t tecgraf::ftc::v1_04_01::RemoteDataChannel::write | ( | const char * | source, | |
const uint64_t | nbytes | |||
) | [virtual] |
Escreve uma quantidade de bytes do canal remoto.
source | Ponteiro de onde os dados serão lidos. | |
nbytes | Quantidade de bytes para serem escritos. |
virtual FTC_DECL int64_t tecgraf::ftc::v1_04_01::RemoteDataChannel::write | ( | Buffer & | source, | |
const uint64_t | remotePosition | |||
) | [virtual] |
Escreve uma sequência de bytes no arquivo.
Implementação opcional. No caso da operação não ser suportada deve ser lançada UnsupportedOperationException.
source | O buffer de origem dos bytes a serem escritos no canal | |
remotePosition | A posição deste canal a partir da qual a escrita vai ser iniciada. |
UnsupportedOperationException | Caso a operação não seja suportada nesse canal. |
Implementa tecgraf::ftc::v1_04_01::IDataChannel.
virtual FTC_DECL int64_t tecgraf::ftc::v1_04_01::RemoteDataChannel::write | ( | Buffer & | source | ) | [virtual] |
Escreve uma sequência de bytes no arquivo.
Implementação opcional. No caso da operação não ser suportada deve ser lançada UnsupportedOperationException.
source | O buffer de origem dos bytes a serem escritos no canal |
UnsupportedOperationException | Caso a operação não seja suportada nesse canal. |
Implementa tecgraf::ftc::v1_04_01::IDataChannel.