initi.doc/docfiles/providers/managers/trees/globalTree/tree.js

142 lines
5.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Абстрактное дерево, от него наследуются все существующие деревья
*
* Ноды это дерева имеют доступ к списку нод, вложенных в них
*
* <br>
* Связанные объекты:
*
* - {@link Trees} - Здесь можно найти примеры, как работать с менеджером деревьев
* - {@link Trees.GlobalTree.Node} - Здесь можно найти примеры, как работать с содержимым глобальной ноды
*
* @example
* // Пример 1: Как получить глобальное дерево?
*
* // Пример взят для дерева тополгии
* var tree = null;
* ps.pl.tm.get(new v2.string("st")).then(function(ref){
* // ref - это ссылка на объект
* // метод value возвращает целевой объект. В данном случае дерево {@type Trees.GlobalTree}
* tree = ref.value();
* }, function(err){
* // в случае неудачи придет ошибка.
* // обычно в ошибке содержится три переменные err - код ошибки, message - краткое описание, sub - если к этому
* // привела другая ошибка внутри системы.
* })
*
* @example
* // Пример 2: Как получить ноду дерева?
*
* // Пример взят для дерева тополгии
* var tree = null;
* var node = null;
*
* // Осуществляем запрос к менеджеру деревьев, на получение провайдера дерева
* ps.pl.tm.get(new v2.string("st")).then(function(ref){
* // ref - это ссылка на объект
* // метод value возвращает целевой объект. В данном случае дерево Trees.SchemeTree
* tree = ref.value();
*
* // Доступ к ноде осуществляется похожим образом, но теперь вместо строки нужно указать v2.integer
* // Так как возвратится нативный проимс, мы можем вернуть его и обработать в следующем then
* return tree.get(v2.integer.from_number(0))
* }, function(err){
* // в случае неудачи придет ошибка.
* // обычно в ошибке содержится три переменные err - код ошибки, message - краткое описание, sub - если к этому
* // привела другая ошибка внутри системы.
* }).then(function(ref){
* // Вот мы и получили ноду.
* node = ref.value();
* }, function(err){
* // Отобразим ошибку
* console.warn(err);
* })
*
* @group manager
* @class GlobalTree
* @extends manager
* @memberof Trees
*/
function GlobalTree() {
/**
* Интерфейс доступа к ноде
*
* Ответ должен быть обработан в промисе,
*
* при успехе вернется {@link tools.reference} -> {@link Trees.GlobalTree.Node}
*
* при отмене вернется ошибка {@link Errors.PromiseReject}
*
* @example
* // Пример:
*
* // Допустим мы хотим получить корневую ноду.
* // Так сложилось, что корневая нода, всегда нулевая
* var nodeId = v2.integer.from_number(0);
*
* // Допустим что мы где-то уже получили дерево.
* var promise = tree.get(nodeId);
*
* promise.then(function(ref){
* // Вот мы и получили ноду.
* node = ref.value();
* }, function(err){
* // Отобразим ошибку
* console.warn(err);
* })
*
* @public
* @function get
* @param {v2.integer} nodeId Идентификатор ноды в дереве
* @returns {tools.promise}
* @memberof Trees.GlobalTree
*/
this.get = function(nodeId) {
};
/**
* Осуществляет уаление ноды из дерева.
*
* @example
* // Пример:
*
* // Допустим, что мы знаем, что в дереве существует нода с таким идентификатором
* var nodeId = v2.integer.from_number(1);
* var tree = null;
* ps.pl.tm.get(new v2.string("st")).then(function(ref){
* // ref - это ссылка на объект
* // метод value возвращает целевой объект. В данном случае дерево {@type Trees.GlobalTree}
* tree = ref.value();
*
* // Произведет удаление ноды 1 из дерева
* // Ответ придет по подписке на существование нод в дереве.
* tree.remove(nodeId);
* }, function(err){
* console.log(err)
* })
*
*
* @public
* @function remove
* @param {v2.integer} nodeId Идентификатор ноды в дереве
* @memberof Trees.GlobalTree
*/
this.remove = function(nodeId) {
};
/**
* Возвращает адрес дерева в системе
*
*
* @public
* @function sys_addr
* @returns {v2.address}
* @memberof Trees.GlobalTree
*/
this.sys_addr = function() {
};
}