# A classe Zookeeper

(PECL zookeeper >= 0.1.0)

## Introdução

Representa a sessão do ZooKeeper.

## Resumo da classe

class Zookeeper {
/* Métodos */
public function __construct(string `$host` = '', callable `$watcher_cb` = `null`, int `$recv_timeout` = 10000)
public function addAuth(string `$scheme`, string `$cert`, callable `$completion_cb` = `null`): bool
public function close(): void
public function connect(string `$host`, callable `$watcher_cb` = `null`, int `$recv_timeout` = 10000): void
public function create(
string `$path`,
string `$value`,
array `$acls`,
int `$flags` = `null`
): string
public function delete(string `$path`, int `$version` = -1): bool
public function exists(string `$path`, callable `$watcher_cb` = `null`): array
public function get(
string `$path`,
callable `$watcher_cb` = `null`,
array `&$stat` = `null`,
int `$max_size` = 0
): string
public function getAcl(string `$path`): array
public function getChildren(string `$path`, callable `$watcher_cb` = `null`): array
public function getClientId(): int
public function getConfig(): ZookeeperConfig
public function getRecvTimeout(): int
public function getState(): int
public function isRecoverable(): bool
public function set(
string `$path`,
string `$value`,
int `$version` = -1,
array `&$stat` = `null`
): bool
public function setAcl(string `$path`, int `$version`, array `$acl`): bool
public static function setDebugLevel(int `$logLevel`): bool
public static function setDeterministicConnOrder(bool `$yesOrNo`): bool
public function setLogStream(resource `$stream`): bool
public function setWatcher(callable `$watcher_cb`): bool
/* Constantes */
const int PERM_READ = 1;
const int PERM_WRITE = 2;
const int PERM_CREATE = 4;
const int PERM_DELETE = 8;
const int PERM_ADMIN = 16;
const int PERM_ALL = 31;
const int EPHEMERAL = 1;
const int SEQUENCE = 2;
const int LOG_LEVEL_ERROR = 1;
const int LOG_LEVEL_WARN = 2;
const int LOG_LEVEL_INFO = 3;
const int LOG_LEVEL_DEBUG = 4;
const int EXPIRED_SESSION_STATE = -112;
const int AUTH_FAILED_STATE = -113;
const int CONNECTING_STATE = 1;
const int ASSOCIATING_STATE = 2;
const int CONNECTED_STATE = 3;
const int READONLY_STATE = 5;
const int NOTCONNECTED_STATE = 999;
const int CREATED_EVENT = 1;
const int DELETED_EVENT = 2;
const int CHANGED_EVENT = 3;
const int CHILD_EVENT = 4;
const int SESSION_EVENT = -1;
const int NOTWATCHING_EVENT = -2;
const int SYSTEMERROR = -1;
const int RUNTIMEINCONSISTENCY = -2;
const int DATAINCONSISTENCY = -3;
const int CONNECTIONLOSS = -4;
const int MARSHALLINGERROR = -5;
const int UNIMPLEMENTED = -6;
const int OPERATIONTIMEOUT = -7;
const int BADARGUMENTS = -8;
const int INVALIDSTATE = -9;
const int NEWCONFIGNOQUORUM = -13;
const int RECONFIGINPROGRESS = -14;
const int OK = 0;
const int APIERROR = -100;
const int NONODE = -101;
const int NOAUTH = -102;
const int BADVERSION = -103;
const int NOCHILDRENFOREPHEMERALS = -108;
const int NODEEXISTS = -110;
const int NOTEMPTY = -111;
const int SESSIONEXPIRED = -112;
const int INVALIDCALLBACK = -113;
const int INVALIDACL = -114;
const int AUTHFAILED = -115;
const int CLOSING = -116;
const int NOTHING = -117;
const int SESSIONMOVED = -118;
const int NOTREADONLY = -119;
const int EPHEMERALONLOCALSESSION = -120;
const int NOWATCHER = -121;
const int RECONFIGDISABLED = -122;
}

## Constantes predefinidas

## Permissões do ZooKeeper

`Zookeeper::PERM_READ`

  Pode ler o valor dos nós e listar seus filhos

`Zookeeper::PERM_WRITE`

  Pode definir o valor dos nós

`Zookeeper::PERM_CREATE`

  Pode criar filhos

`Zookeeper::PERM_DELETE`

  Pode excluir filhos

`Zookeeper::PERM_ADMIN`

  Pode executar set_acl()

`Zookeeper::PERM_ALL`

  Todas as opções acima combinadas com operação binária OU

## Opções de criação do ZooKeeper

`Zookeeper::EPHEMERAL`

  Se a opção Zookeeper::EPHEMERAL estiver definida, o nó será removido automaticamente se a sessão do cliente terminar.

`Zookeeper::SEQUENCE`

  Se a opção Zookeeper::SEQUENCE estiver definida um número de sequência único e crescente será anexado ao nome do caminho. O número de sequência tem sempre um comprimento fixo de 10 dígitos, preenchido com 0.

## Níveis de registro do ZooKeeper

`Zookeeper::LOG_LEVEL_ERROR`
  Emite apenas mensagens de erro
`Zookeeper::LOG_LEVEL_WARN`

  Emite erros/avisos

`Zookeeper::LOG_LEVEL_INFO`

  Emite grandes mensagens de ação além de erros/avisos

`Zookeeper::LOG_LEVEL_DEBUG`

  Emite tudo

## Estados do ZooKeeper

`Zookeeper::EXPIRED_SESSION_STATE`

  Conectado, mas a sessão expirou

`Zookeeper::AUTH_FAILED_STATE`

  Conectado, mas a autenticação falhou

`Zookeeper::CONNECTING_STATE`

  Conectando

`Zookeeper::ASSOCIATING_STATE`

  Associando

`Zookeeper::CONNECTED_STATE`

  Conectado

`Zookeeper::READONLY_STATE`

  A FAZER: ajude-nos a melhorar esta extensão.

`Zookeeper::NOTCONNECTED_STATE`

  Falha na conexão

## Tipos de Observação do ZooKeeper

`Zookeeper::CREATED_EVENT`

  Um nó foi criado

  Isso é gerado apenas por observações em nós inexistentes. Essas observações são definidas usando Zookeeper::exists.

`Zookeeper::DELETED_EVENT`

  Um nó foi excluído

  Isso é gerado apenas por inspeções em nós. Essas inspeções são definidas usando Zookeeper::exists e Zookeeper::get.

`Zookeeper::CHANGED_EVENT`

  Um nó foi alterado

  Isso é gerado apenas por inspeções em nós. Essas inspeções são definidas usando Zookeeper::exists e Zookeeper::get.

`Zookeeper::CHILD_EVENT`
  Ocorreu uma alteração na lista de filhos

  Isso é gerado apenas por observações na lista de filhos de um nó. Essas observações são definidas usando Zookeeper::getChildren.

`Zookeeper::SESSION_EVENT`

  Uma sessão foi perdida

  Isso é gerado quando um cliente perde contato ou se reconecta com um servidor.

`Zookeeper::NOTWATCHING_EVENT`

  Uma observação foi removida

  Isso é gerado quando o servidor, por algum motivo, provavelmente por uma restrição de recursos, não monitora mais um nó para um cliente.

## Erros do sistema e do servidor do ZooKeeper

`Zookeeper::SYSTEMERROR`

  Isso nunca é gerado pelo servidor e não deve ser usado para outra finalidade que não seja indicar um intervalo. Especificamente, códigos de erro maiores que esse valor, mas menores que Zookeeper::APIERROR, são erros de sistema.

`Zookeeper::RUNTIMEINCONSISTENCY`

  Uma inconsistência de tempo de execução foi encontrada.

`Zookeeper::DATAINCONSISTENCY`

  Foi encontrada uma inconsistência de dados.

`Zookeeper::CONNECTIONLOSS`

  A conexão com o servidor foi perdida.

`Zookeeper::MARSHALLINGERROR`

  Erro ao empacotar ou desempacotar dados.

`Zookeeper::UNIMPLEMENTED`

  A operação não foi implementada.

`Zookeeper::OPERATIONTIMEOUT`

  Atingido o tempo limite de operação.

`Zookeeper::BADARGUMENTS`

  Argumentos inválidos.

`Zookeeper::INVALIDSTATE`

  Estado de identificador inválido.

`Zookeeper::NEWCONFIGNOQUORUM`

  Não há quorum de nova configuração conectado e atualizado com o líder da última configuração confirmada - tente invocar a reconfiguração depois que novos servidores forem conectados e sincronizados.

  Disponível a partir do ZooKeeper 3.5.0

`Zookeeper::RECONFIGINPROGRESS`

  Reconfiguração solicitada enquanto outra reconfiguração está em andamento. Isso não é suportado no momento. Tente novamente.

  Disponível a partir do ZooKeeper 3.5.0

## Erros da API do ZooKeeper

`Zookeeper::OK`

  Está tudo bem.

`Zookeeper::APIERROR`

  Isso nunca é gerado pelo servidor e não deve ser usado para outra finalidade que não seja indicar um intervalo. Especificamente, códigos de erro maiores que esse valor são erros de API (enquanto valores menores que isso indicam um Zookeeper::SYSTEMERROR).

`Zookeeper::NONODE`

  O nó não existe.

`Zookeeper::NOAUTH`

  Não autenticado.

`Zookeeper::BADVERSION`

  Conflito de versão.

`Zookeeper::NOCHILDRENFOREPHEMERALS`

  Nós efêmeros podem não ter filhos.

`Zookeeper::NODEEXISTS`

  O nó já existe.

`Zookeeper::NOTEMPTY`

  O nó tem filhos.

`Zookeeper::SESSIONEXPIRED`

  A sessão foi expirada pelo servidor.

`Zookeeper::INVALIDCALLBACK`

  Função de retorno inválida especificada.

`Zookeeper::INVALIDACL`

  ACL inválida especificada.

`Zookeeper::AUTHFAILED`

  A autenticação do cliente falhou.

`Zookeeper::CLOSING`

  O ZooKeeper está fechando.

`Zookeeper::NOTHING`

  (não é erro) Nenhuma resposta do servidor ao processo.

`Zookeeper::SESSIONMOVED`

  Sessão movida para outro servidor, então a operação é ignorada.

`Zookeeper::NOTREADONLY`

  Solicitação de mudança de estado passada para servidor somente leitura.

`Zookeeper::EPHEMERALONLOCALSESSION`

  Tentativa de criar um nó efêmero em uma sessão local.

`Zookeeper::NOWATCHER`

  O observador não pôde ser encontrado.

`Zookeeper::RECONFIGDISABLED`

  Tentativa de executar uma operação de reconfiguração quando o recurso de reconfiguração está desabilitado.

## Índice

- Zookeeper::addAuth — Especifica credenciais da aplicação
- Zookeeper::close — Fecha o identificador do zookeeper e libera todos os recursos
- Zookeeper::connect — Cria um identificador usado para comunicação com o ZooKeeper
- Zookeeper::__construct — Cria um identificador para comunicação com o ZooKeeper
- Zookeeper::create — Cria um nó de forma síncrona
- Zookeeper::delete — Exclui um nó no zookeeper de forma síncrona
- Zookeeper::exists — Verifica a existência de um nó no zookeeper de forma síncrona
- Zookeeper::get — Obtém os dados associados a um nó de forma síncrona
- Zookeeper::getAcl — Obtém a ACL associada a um nó de forma síncrona
- Zookeeper::getChildren — Lista os filhos de um nó de forma síncrona
- Zookeeper::getClientId — Retorna o ID da sessão do cliente, válido somente se estiver conectado no momento (ou seja, o último estado do observador é ZOO_CONNECTED_STATE)
- Zookeeper::getConfig — Obtém instância de ZookeeperConfig
- Zookeeper::getRecvTimeout — Retorna o tempo limite desta sessão, válido somente se estiver conectado no momento (ou seja, o último estado do observador foi ZOO_CONNECTED_STATE). Este valor pode mudar após a reconexão do servidor.
- Zookeeper::getState — Obtém o estado da conexão do zookeper
- Zookeeper::isRecoverable — Verifica se o estado atual da conexão do zookeeper pode ser recuperado
- Zookeeper::set — Define os dados associados a um nó
- Zookeeper::setAcl — Define a ACL associada a um nó de forma síncrona
- Zookeeper::setDebugLevel — Define o nível de depuração para a biblioteca
- Zookeeper::setDeterministicConnOrder — Habilita/desabilita a randomização da ordem da extremidade final do quorum
- Zookeeper::setLogStream — Define o fluxo a ser usado pela biblioteca para registro
- Zookeeper::setWatcher — Define uma função observadora

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open