/** * Абстрактное дерево, от него наследуются все существующие деревья * * Ноды это дерева имеют доступ к списку нод, вложенных в них * *
* Связанные объекты: * * - {@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() { }; }