Referência da Classe tecgraf::ftc::v1_04_01::ServerConfig

Define as configurações utilizadas no BaseServer. Mais...

#include <ServerConfig.h>

Diagrama de Hierarquia para tecgraf::ftc::v1_04_01::ServerConfig:

tecgraf::ftc::v1_04_01::FTCServerConfig Lista de todos os Membros.

Tipos Públicos

 LOG_OFF
 LOG_FATAL
 LOG_ERROR
 LOG_WARN
 LOG_INFO
 LOG_DEBUG
 LOG_TRACE
 LOG_ALL = LOG_TRACE
enum  ServerLogLevel {
  LOG_OFF, LOG_FATAL, LOG_ERROR, LOG_WARN,
  LOG_INFO, LOG_DEBUG, LOG_TRACE, LOG_ALL = LOG_TRACE
}
 Níveis de log. Mais...

Métodos Públicos

 ServerConfig ()
 Construtor.
virtual ~ServerConfig ()
 Destrutor.
virtual const std::string & hostname () const =0
 Retorna o endereço/IP para o servidor.
virtual void hostname (const std::string &value)=0
 Define o endereço/IP para o servidor.
virtual uint16_t port () const =0
 Retorna a porta que o servidor irá escutar as conexões de novos clientes.
virtual void port (uint16_t value)=0
 Define a porta que o servidor irá escutar as conexões de novos clientes.
virtual uint32_t channel_request_timeout () const =0
 Retorna o tempo máximo para o consumo de uma requisição (DataChannelInfo).
virtual void channel_request_timeout (const uint32_t value)=0
 Define o timeout para o consumo de uma requisição (DataChannelInfo).
virtual uint32_t client_timeout () const =0
 Retorna o tempo máximo em milisegundos que um cliente é desconectado por inatividade.
virtual void client_timeout (const uint32_t value)=0
 Define o tempo máximo em milisegundos que um cliente é desconectado por inatividade.
virtual std::size_t max_clients () const =0
 Retorna o número maximo de clientes que o servidor suporta.
virtual void max_clients (std::size_t value)=0
 Define o número maximo de clientes que o servidor suporta.
virtual std::size_t max_channel_requests () const =0
 Retorna o número máximo permitido de possíveis registros à requisições de canais de dados (DataChannelInfo).
virtual void max_channel_requests (std::size_t value)=0
 Número máximo permitido de possíveis registros à requisições de canais de dados (DataChannelInfo).
virtual std::size_t client_buffer_size () const =0
 Retorna o tamanho do espaço de memória utilizado na comunicação com cada cliente.
virtual void client_buffer_size (std::size_t value)=0
 Define o tamanho do espaço de memória utilizado na comunicação com cada cliente.
virtual bool is_test_mode () const =0
 Retorna true se o servidor deve executar em modo de teste.
virtual void is_test_mode (bool value)=0
 Define se o servidor deve executar em modo de teste.
virtual ServerLogLevel log_level () const =0
 Retorna o nível de logging.
virtual void log_level (ServerLogLevel value)=0
 Define o nível de logging.
virtual const std::string & log_filename () const =0
 Retorna o nome do arquivo de saída que será gravado o log.
virtual void log_filename (const std::string &value)=0
 Define o nome do arquivo de saída que será gravado o log.
virtual bool log_date_time () const =0
 Retorna se faz o log da data e hora.
virtual void log_date_time (bool value)=0
 Define se faz o log da data e hora.
virtual std::size_t thread_pool_size () const =0
 Retorna o tamanho do pool de threads utilizado no servidor.
virtual void thread_pool_size (const std::size_t value)=0
 Define o tamanho do pool de threads utilizado no servidor.
virtual void print (std::ostream &out) const
 Imprime as configuração para o stream de saída.

Amigas

std::ostream & operator<< (std::ostream &out, const ServerConfig &config)
 Operador global para suportar stream.

Descrição Detalhada

Define as configurações utilizadas no BaseServer.

O comportamento de várias variáveis internas do servidor é definido nas configurações. O valor para cada variável depende de cada utilização e pode ser refinado para atender melhor cada caso.

Autor:
Tecgraf


Enumerações

enum tecgraf::ftc::v1_04_01::ServerConfig::ServerLogLevel

Níveis de log.

Cada nível de log inclui o anterior na ordem crescente que se segue. Por exemplo, LOG_WARN tem um nível que irá incluir logs dos níveis inferiores LOG_ERROR e LOG_FATAL também no log. Logo, o último nível, LOG_ALL, irá incluir o log de todos os níveis anteriores.


Métodos

virtual void tecgraf::ftc::v1_04_01::ServerConfig::channel_request_timeout ( const uint32_t  value  )  [pure virtual]

Define o timeout para o consumo de uma requisição (DataChannelInfo).

Após o registro de uma requisição para um canal de dados (DataChannelInfo), o cliente tem X milisegundos para se conectar ao servidor, se após esse tempo o cliente FTC não se conectar ao servidor e solicitar o canal de dados a requisição é removida.

Parâmetros:
value Tempo máximo em milisegundos que o servidor espera para remover uma requisição não consumida

Implementado por tecgraf::ftc::v1_04_01::FTCServerConfig.

virtual uint32_t tecgraf::ftc::v1_04_01::ServerConfig::channel_request_timeout (  )  const [pure virtual]

Retorna o tempo máximo para o consumo de uma requisição (DataChannelInfo).

Após o registro de uma requisição para um canal de dados (DataChannelInfo), o cliente tem X milisegundos para se conectar ao servidor, se após esse tempo o cliente FTC não se conectar ao servidor e solicitar o canal de dados a requisição é removida.

Retorna:
Retorna o tempo máximo em milisegundos de timeout para requisição de um canal

Implementado por tecgraf::ftc::v1_04_01::FTCServerConfig.

virtual void tecgraf::ftc::v1_04_01::ServerConfig::client_buffer_size ( std::size_t  value  )  [pure virtual]

Define o tamanho do espaço de memória utilizado na comunicação com cada cliente.

Esse espaço de memória é criado para cada nova conexão com um cliente. Sua função principal é a de armazenar a transmissão parcial de um dado cliente/servidor ou vice-versa. O mesmo é utilizado também quando o canal não suporta transferTo/transferFrom.

Parâmetros:
value Retorna o tamanho do espaço de memória utilizado na comunicação com cada cliente.

Implementado por tecgraf::ftc::v1_04_01::FTCServerConfig.

virtual std::size_t tecgraf::ftc::v1_04_01::ServerConfig::client_buffer_size (  )  const [pure virtual]

Retorna o tamanho do espaço de memória utilizado na comunicação com cada cliente.

Esse espaço de memória é criado para cada nova conexão com um cliente. Sua função principal é a de armazenar a transmissão parcial de um dado cliente/servidor ou vice-versa. O mesmo é utilizado também quando o canal não suporta transferTo/transferFrom.

Retorna:
O tamanho do espaço de memória utilizado na comunicação com cada cliente.

Implementado por tecgraf::ftc::v1_04_01::FTCServerConfig.

virtual void tecgraf::ftc::v1_04_01::ServerConfig::client_timeout ( const uint32_t  value  )  [pure virtual]

Define o tempo máximo em milisegundos que um cliente é desconectado por inatividade.

Caso um cliente conectado não efetue nenhuma operação no tempo máximo configurado, é forçado a desconexão do mesmo por timeout.

Parâmetros:
value Tempo máximo em milisegundos que um cliente é desconectado por inatividade.

Implementado por tecgraf::ftc::v1_04_01::FTCServerConfig.

virtual uint32_t tecgraf::ftc::v1_04_01::ServerConfig::client_timeout (  )  const [pure virtual]

Retorna o tempo máximo em milisegundos que um cliente é desconectado por inatividade.

Caso um cliente conectado não efetue nenhuma operação no tempo máximo configurado, é forçado a desconexão do mesmo por timeout.

Retorna:
Tempo máximo em milisegundos que um cliente é desconectado por inatividade.

Implementado por tecgraf::ftc::v1_04_01::FTCServerConfig.

virtual void tecgraf::ftc::v1_04_01::ServerConfig::hostname ( const std::string &  value  )  [pure virtual]

Define o endereço/IP para o servidor.

Parâmetros:
value O endereço/IP para o servidor.

Implementado por tecgraf::ftc::v1_04_01::FTCServerConfig.

virtual const std::string& tecgraf::ftc::v1_04_01::ServerConfig::hostname (  )  const [pure virtual]

Retorna o endereço/IP para o servidor.

Retorna:
O endereço/IP para o servidor.

Implementado por tecgraf::ftc::v1_04_01::FTCServerConfig.

virtual void tecgraf::ftc::v1_04_01::ServerConfig::is_test_mode ( bool  value  )  [pure virtual]

Define se o servidor deve executar em modo de teste.

No modo teste, o servidor mantém todos os registros às possíveis requisições à canais de dados, mesmo que um cliente feche o canal. Permitindo assim um cliente se reconectar com a mesma chave de acesso.

Parâmetros:
value Define se o servidor deve executar em modo de teste.

Implementado por tecgraf::ftc::v1_04_01::FTCServerConfig.

virtual bool tecgraf::ftc::v1_04_01::ServerConfig::is_test_mode (  )  const [pure virtual]

Retorna true se o servidor deve executar em modo de teste.

No modo teste, o servidor mantém todos os registros às possíveis requisições à canais de dados, mesmo que um cliente feche o canal. Permitindo assim um cliente se reconectar com a mesma chave de acesso.

Retorna:
true se o servidor deve executar em modo de teste.

Implementado por tecgraf::ftc::v1_04_01::FTCServerConfig.

virtual void tecgraf::ftc::v1_04_01::ServerConfig::log_date_time ( bool  value  )  [pure virtual]

Define se faz o log da data e hora.

Parâmetros:
value Informa se faz o log da data e hora.

Implementado por tecgraf::ftc::v1_04_01::FTCServerConfig.

virtual bool tecgraf::ftc::v1_04_01::ServerConfig::log_date_time (  )  const [pure virtual]

Retorna se faz o log da data e hora.

Retorna:
Retorna se faz o log da data e hora.

Implementado por tecgraf::ftc::v1_04_01::FTCServerConfig.

virtual void tecgraf::ftc::v1_04_01::ServerConfig::log_filename ( const std::string &  value  )  [pure virtual]

Define o nome do arquivo de saída que será gravado o log.

Parâmetros:
value O nome do arquivo de saída que será gravado o log.

Implementado por tecgraf::ftc::v1_04_01::FTCServerConfig.

virtual const std::string& tecgraf::ftc::v1_04_01::ServerConfig::log_filename (  )  const [pure virtual]

Retorna o nome do arquivo de saída que será gravado o log.

Retorna:
O nome do arquivo de saída que será gravado o log.

Implementado por tecgraf::ftc::v1_04_01::FTCServerConfig.

virtual void tecgraf::ftc::v1_04_01::ServerConfig::log_level ( ServerLogLevel  value  )  [pure virtual]

Define o nível de logging.

Parâmetros:
value O nível de logging.

virtual ServerLogLevel tecgraf::ftc::v1_04_01::ServerConfig::log_level (  )  const [pure virtual]

Retorna o nível de logging.

Retorna:
O nivel de logging.

Implementado por tecgraf::ftc::v1_04_01::FTCServerConfig.

virtual void tecgraf::ftc::v1_04_01::ServerConfig::max_channel_requests ( std::size_t  value  )  [pure virtual]

Número máximo permitido de possíveis registros à requisições de canais de dados (DataChannelInfo).

Número máximo de registros à requisições de canais de dados que o servidor irá permitir.

Parâmetros:
value Número maximo de requisiçoes.

Implementado por tecgraf::ftc::v1_04_01::FTCServerConfig.

virtual std::size_t tecgraf::ftc::v1_04_01::ServerConfig::max_channel_requests (  )  const [pure virtual]

Retorna o número máximo permitido de possíveis registros à requisições de canais de dados (DataChannelInfo).

Número máximo de registros à requisições de canais de dados que o servidor irá permitir.

Retorna:
Número maximo de requisições.

Implementado por tecgraf::ftc::v1_04_01::FTCServerConfig.

virtual void tecgraf::ftc::v1_04_01::ServerConfig::max_clients ( std::size_t  value  )  [pure virtual]

Define o número maximo de clientes que o servidor suporta.

Caso o número de clientes conectados alcance o número máximo configurado, novos clientes que tentarem se conectar serão forçadamente desconectados.

Parâmetros:
value O número maximo de clientes que o servidor suporta.

Implementado por tecgraf::ftc::v1_04_01::FTCServerConfig.

virtual std::size_t tecgraf::ftc::v1_04_01::ServerConfig::max_clients (  )  const [pure virtual]

Retorna o número maximo de clientes que o servidor suporta.

Caso o número de clientes conectados alcance o número máximo configurado, novos clientes que tentarem se conectar serão forçadamente desconectados.

Retorna:
O número maximo de clientes que o servidor suporta.

Implementado por tecgraf::ftc::v1_04_01::FTCServerConfig.

virtual void tecgraf::ftc::v1_04_01::ServerConfig::port ( uint16_t  value  )  [pure virtual]

Define a porta que o servidor irá escutar as conexões de novos clientes.

É comum a utilização da porta 0 para conexão. A porta 0 é especial, pois obriga o servidor a utilizar uma porta que esteja disponível no sistema na hora da conexão.

Parâmetros:
value A porta que o servidor irá escutar as conexões de novos clientes. Caso seja 0, uma porta disponível será obtida.

Implementado por tecgraf::ftc::v1_04_01::FTCServerConfig.

virtual uint16_t tecgraf::ftc::v1_04_01::ServerConfig::port (  )  const [pure virtual]

Retorna a porta que o servidor irá escutar as conexões de novos clientes.

Retorna:
A porta que o servidor irá escutar as conexões de novos clientes.

Implementado por tecgraf::ftc::v1_04_01::FTCServerConfig.

virtual void tecgraf::ftc::v1_04_01::ServerConfig::print ( std::ostream &  out  )  const [virtual]

Imprime as configuração para o stream de saída.

Parâmetros:
out Stream de saída.

Reimplementado por tecgraf::ftc::v1_04_01::FTCServerConfig.

virtual void tecgraf::ftc::v1_04_01::ServerConfig::thread_pool_size ( const std::size_t  value  )  [pure virtual]

Define o tamanho do pool de threads utilizado no servidor.

O servidor implementa internamente um pool de threads para atender as mensagens cliente/servidor. Os threads são criados na instanciação do servidor. Por isso, deve ser levado em conta o custo para a máquina para a criação do número total configurado de threads.

Deve ser levado em conta o caso em que uma requisição seja bloqueada num thread por uma implementação de um canal de dados (IDataChannel). Se isso for verdade, e todos os threads forem bloqueados, o servidor irá parar de responder. Assim, nesse caso onde a implementação do canal de dados tem operações é bloqueantes, uma boa prática seria limitar o número de clientes ao número de threads menos 1. Dessa maneira sempre vai existir um thread no mínimo para recusar novas conexões.

Parâmetros:
value O tamanho do pool de threads utilizado no servidor.

Implementado por tecgraf::ftc::v1_04_01::FTCServerConfig.

virtual std::size_t tecgraf::ftc::v1_04_01::ServerConfig::thread_pool_size (  )  const [pure virtual]

Retorna o tamanho do pool de threads utilizado no servidor.

O servidor implementa internamente um pool de threads para atender as mensagens cliente/servidor. Os threads são criados na instanciação do servidor. Por isso, deve ser levado em conta o custo para a máquina para a criação do número total configurado de threads.

Deve ser levado em conta o caso em que uma requisição seja bloqueada num thread por uma implementação de um canal de dados (IDataChannel). Se isso for verdade, e todos os threads forem bloqueados, o servidor irá parar de responder. Assim, nesse caso onde a implementação do canal de dados tem operações é bloqueantes, uma boa prática seria limitar o número de clientes ao número de threads menos 1. Dessa maneira sempre vai existir um thread no mínimo para recusar novas conexões.

Retorna:
O tamanho do pool de threads utilizado no servidor.

Implementado por tecgraf::ftc::v1_04_01::FTCServerConfig.


Amigas e Funções Relacionadas

std::ostream& operator<< ( std::ostream &  out,
const ServerConfig config 
) [friend]

Operador global para suportar stream.

Parâmetros:
out Stream de saída.
config Objeto que implementa o ServerConfig


A documentação para esta classe foi gerada a partir do seguinte arquivo:
Gerado em Mon Feb 3 03:15:08 2014 para FTC[C++] por  doxygen 1.4.7