#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.
1.4.7