Escrever transações

Na última seção, discutimos as interações de leitura de atributos e eventos. Nesta seção, vamos falar sobre a gravação de atributos, que é a alteração de um valor de atributo em um cluster, como Level.

Transação de gravação sem marcação de tempo

Sequência de operações de uma transação de gravação sem marcação de tempo
Figura 1: transação de gravação não programada

Ação de solicitação de gravação

Direção: Iniciador -> Objetivo

De forma semelhante à ação de solicitação de leitura, nessa ação, o iniciador fornece ao destino:

  • Solicitações de gravação: uma lista de uma ou mais tuplas contendo o caminho e os dados.
  • Solicitação com marcação de tempo: uma sinalização que indica se a ação faz parte de uma transação de gravação com marcação de tempo.
  • Suppress Response: uma sinalização que indica se a ação de status da resposta precisa ser suprimida.

Ação de resposta de gravação

Direção: Objetivo -> Iniciador

Depois que o destino receber a ação de solicitação de gravação, ele finalizará a transação com uma ação de resposta de gravação que contém:

  • Respostas de gravação: uma lista de caminhos e códigos de erro para cada solicitação de gravação enviada na ação de solicitação de gravação.

Restrições de gravação sem marcação de tempo

A ação de solicitação de gravação pode ser um groupcast, mas, nesse caso, a sinalização de supressão de resposta precisa ser definida. O motivo é que, caso contrário, a rede poderia ser inundada por respostas simultâneas de todos os membros de um grupo.

Para ativar esse comportamento, o caminho usado na lista "Solicitações de gravação" pode conter grupos ou conter caracteres curinga, mas apenas no campo "Endpoint".

Transação de gravação com marcação de tempo

Sequência de operações de uma transação de gravação com marcação de tempo
Figura 2: transação de gravação com marcação de tempo

As transações de gravação cronometrada adicionam algumas etapas às transações de gravação sem marcação de tempo.

Ação de solicitação com marcação de tempo

Direção: Iniciador -> Objetivo

Um iniciador inicia a transação enviando essa ação que contém:

  • Tempo limite: quantos milissegundos essa transação pode permanecer aberta. Durante esse período, a próxima ação enviada pelo iniciador será considerada válida.

Depois que a ação de solicitação programada for recebida, o destino precisará confirmar a ação com uma ação de resposta de status. Quando o iniciador receber uma ação de resposta de status informando que não há erros, ele vai enviar uma ação de solicitação de gravação.

Ação de solicitação de gravação

Igual à Ação de solicitação de gravação descrita anteriormente.

Ação de resposta de gravação

Igual à Ação de resposta de gravação descrita anteriormente.

Restrições de gravação com tempo determinado

A ação de solicitação cronometrada, a ação de solicitação de gravação e a ação de resposta de gravação são apenas unicast.