Biblioteca NDB

.html ›› .html ››
Parent Previous Next

Biblioteca NDB

A biblioteca ndb provê funções para manipular NodeDatabases, como abrir um NodeDatabase, retornar o nó pai de um nó, etc..

Todas as funções estão contidas na table/variável "NDB" da unidade "ndb.lua".


Exemplo de uso:

-- Primeiro, é necessário usar a unidade "ndb.lua"
require("ndb.lua");   

-- Agora é possível acessar as funções da biblioteca
NDB.FUNCAO_DA_BIBLIOTECA(Parametro1, Parametro2, ...);



Funções da biblioteca NDB


function NDB.load(fileName [, userName])


Carrega um NodeDatabase que está localizado no HD Virtual do plug-in e retorna o nodo raiz.


Parâmetros:


Retorno:


Observações:


function NDB.newMemNodeDatabase([initialContent])


Cria um novo NodeDatabase temporário que reside apenas na memória. Quando o Firecast fecha, os dados salvos neste NodeDatabase são perdidos.


Parâmetros:


Retorno:



function NDB.newObserver(node)


Cria um novo objeto NodeObserver para o nodo passado como parâmetro. Um NodeObserver é capaz de monitorar e notificar as mudanças ocorridas em um determinado Nodo de NodeDatabase.


Parâmetros:


Retorno:



function NDB.newTransaction(node)

Cria uma nova transação para controlar como as mudanças são salvas/compartilhadas em um NodeDatabase


Parâmetros:


Retorno:


Observações:



function NDB.isNodeObject(value)


Verifica se determinado valor é um objeto nodo.


Parâmetros:


Retorno:


function NDB.getRoot(node)


Retorna o nodo raiz de um nodo, isto é, o nodo mais externo do NodeDatabase.


Parâmetros:


Retorno:



function NDB.getParent(node)


Retorna o nodo pai de um nodo, isto é, o nodo que contém o nodo passado como parâmetro.


Parâmetros:


Retorno:



function NDB.getChildNodes(node)


Retorna todos os nodos filhos de um determinado nodo.


Parâmetros:


Retorno:



function NDB.getAttributes(node)


Retorna uma tabela contendo todos os atributos e  valores de um determinado objeto nodo.


Parâmetros:


Retorno:


Observação:



function NDB.getNodeName(node)


Retorna o nome de um objeto nodo.


Parâmetros:


Retorno:


function NDB.getPersistedAttributeValue(node, attributeName)


Retorna o valor que está persistido/salvo no servidor de um atributo de um objeto nodo.


Parâmetros:


Retorno:


Observações:



function NDB.createChildNode(node, childName)


Cria um nodo filho dentro de um nodo.


Parâmetros:


Retorno:



function NDB.deleteNode(node)


Remove um nodo do Node Database.


Parâmetros:


Observações:



function NDB.clearNode(node)


Limpa um objeto nodo, isto é, remove todos os atributos e todos os nodos filhos de um determinado nodo.


Parâmetros:


Observações:



function NDB.copy(destinationNode, sourceNode)

Copia os dados de um node de NodeDatabase para outro node de NodeDatabase.


Parâmetros:


Observações:



function NDB.beginUpdate(node)

Coloca o Node Database em estado de "em alterações". Enquanto estiver neste estado, as sincronizações de dados e notificações/eventos referentes a alterações no NodeDatabase serão adiadas até que este saia do modo "em alterações".

Alterar o NodeDatabase para o modo de alterações pode melhorar a performance de procedimentos que fazem várias alterações consecutivas no mesmo. 

Para tirar o NodeDatabase do estado "em alterações", invoque a função NDB.endUpdate


Parâmetros:


Observações:



function NDB.endUpdate(node)

Faz com que o NodeDatabase saia do modo "em alterações" que havia sido previamente ativado pela função NDB.beginUpdate.

Ao sair do modo "em alterações", as mudanças feitas serão sincronizadas e os devidos eventos/notificações serão invocadas!


Parâmetros:


Observações:



function NDB.getState(node)


Retorna o estado de um NodeDatabase


Parâmetros:


Retorno:


function NDB.onReady(node, callback[, failCallback])


Monitora um NodeDatabase e notifica o programador quando ele estiver pronto para ser usado


Parâmetros:


Observações:




function NDB.pushTransaction(node, transaction)

Ativa uma transação em um NodeDatabase.


Parâmetros:


Observações:



function NDB.popTransaction(node)

Desativa a última transação ativada em um NodeDatabase pela função NDB.pushTransaction


Parâmetros:


Observações:




function NDB.getServerUTCTime(node)

Retorna a data e hora do servidor do NodeDatabase em UTC (Coordinated Universal Time)


Parâmetros:


Retorno:


Observações:


Funções de persistência de dados do NodeDatabase


function NDB.exportXML(node)

Salva o conteúdo de um node de NodeDatabase como XML


Parâmetros:


Retorno:


function NDB.importXML(destinationNode, xmlString)

Carrega os dados de um XML em um node de NodeDatabase.


Parâmetros:


Observações:



Funções de gerenciamento de permissões do NodeDatabase

NodeDatabases permitem definir permissões aos usuários, podendo, por exemplo, selecionar quais pessoas poderão alterar um Objeto Nodo e/ou quais pessoas não poderão saber da existência de algum Objeto Nodo.




function NDB.setPermission(node, selKind, selId, permission, allowance)


Define uma permissão a alguém a um Objeto nodo.


Parâmetros:



Observações:


Exemplos:


-- Não permitir nem os jogadores e nem os espectadores verem os valores de Sheet
NDB.setPermission(sheet, "group", "jogadores", "read", "deny");
NDB.setPermission(sheet, "group", "espectadores", "read", "deny");

-- Desfazer as permissões acima, voltando para valores padrões/herdados.
NDB.setPermission(sheet, "group", "jogadores", "read", nil);
NDB.setPermission(sheet, "group", "espectadores", "read", nil); 

-- Permitir que +jogadores possam alterar valores de sheet
NDB.setPermission(sheet, "group", "jogadores", "write", "allow"); 

-- Permitir que o usuário AlyssonRPG tenha permissões de mestre:
NDB.setPermission(sheet, "user", "AlyssonRPG", "read", "allow");
NDB.setPermission(sheet, "user", "AlyssonRPG", "write", "allow");
NDB.setPermission(sheet, "user", "AlyssonRPG", "createChild", "allow");
NDB.setPermission(sheet, "user", "AlyssonRPG", "delete", "allow");
NDB.setPermission(sheet, "user", "AlyssonRPG", "readPermissions", "allow");
NDB.setPermission(sheet, "user", "AlyssonRPG", "writePermissions", "allow");




function NDB.getPermission(node, selKind, selId, permission)


Retorna a definição de uma permissão de alguém de um Objeto nodo que foi previamente definida pelo método NDB.setPermission


Parâmetros:


Retorno:

       A função pode retornar um dos 4 abaixo:


Observações:



function NDB.testPermission(node, permission)


Realiza um teste de permissão: Verifica se o usuário atual possui determinada permissão em um objeto nodo, seja permissão herdada ou permissão definida localmente.


Parâmetros:


Retorno:




function NDB.enumPermissions(node)


Retorna todas as permissões que foram definidas em um determinado objeto nodo.


Parâmetros:


Retorno:



function NDB.resetPermissions(node)

Exclui todas as definições de permissões em um determinado objeto nodo.


Parâmetros:




function NDB.editPermissions(node)

Apresenta uma interface padrão para o usuário editar as permissões de um Node do NodeDatabase


Parâmetros:




Funções de comunicação através do NodeDatabase

NodeDatabases permitem o envio e recebimento de mensagens aos usuários que estão acessando o mesmo NodeDatabase.



function NDB.broadcastMessage(node, messageId, message[, loopBack])

Envia uma mensagem a todos os outros usuários que estão com o nodeDatabase aberto.


Parâmetros:



Observações:



function NDB.newBroadcastListener(node, messageId, callback)



Cria uma escuta de mensagens para receber mensagens postadas pela função NDB.broadcastMessage


Parâmetros:


Retorno:


Observações:

Created with the Personal Edition of HelpNDoc: Effortlessly Create Encrypted, Password-Protected PDFs