#include <ServerConfig.h>
Diagrama de Hierarquia para tecgraf::ftc::v1_04_01::ServerConfig:
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. |
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Implementado por tecgraf::ftc::v1_04_01::FTCServerConfig.
std::ostream& operator<< | ( | std::ostream & | out, | |
const ServerConfig & | config | |||
) | [friend] |
Operador global para suportar stream.
out | Stream de saída. | |
config | Objeto que implementa o ServerConfig |