Storage — различия между версиями

Материал из Deeptown Manual
Перейти к: навигация, поиск
м (create)
Строка 10: Строка 10:
 
[[#find|find]]
 
[[#find|find]]
 
[[#search|search]]
 
[[#search|search]]
[[#changeDir|changeDir]]</tt>
+
[[#changeDir|changeDir]]
 +
[[#currentDir|currentDir]]
 +
</tt>
  
 
__NOTOC__
 
__NOTOC__
Строка 16: Строка 18:
 
== mount ==
 
== mount ==
  
mount(''адрес хранилища'': <tt>[[string]]</tt>, ''адрес индекса'': <tt>[[string]]</tt>, ''флаги'': <tt>[[int]]</tt>) <br>
+
mount(''адрес хранилища'': <tt>[[string]]</tt>, <span style="background-color: #EBEBEB;">''адрес индекса'': <tt>[[string]]</tt></span>, <span style="background-color: #D0D0D0;">''флаги'': <tt>[[int]]</tt></span>) <br>
 
'''Возвращает''': <tt>[[MountPoint]]</tt> <br>
 
'''Возвращает''': <tt>[[MountPoint]]</tt> <br>
  
Строка 31: Строка 33:
 
== create ==
 
== create ==
  
create(''адрес'': <tt>[[string]]</tt>, ''имя ноды'': <tt>[[string]]</tt>, ''флаги создания'': <tt>[[int]]</tt>, <span style="background-color: #EBEBEB;">''флаги ноды'': <tt>[[int]]</tt>, </span><span style="background-color: #D0D0D0;">''точка монтирования'': <tt>[[MountPoint]]</tt></span>)<br>
+
create(''адрес'': <tt>[[string]]</tt>, ''имя ноды'': <tt>[[string]]</tt>, ''флаги создания'': <tt>[[int]]</tt>, <span style="background-color: #EBEBEB;">''флаги ноды'': <tt>[[int]]</tt></span>, <span style="background-color: #D0D0D0;">''точка монтирования'': <tt>[[MountPoint]]</tt></span>)<br>
 +
'''Возвращает''': <tt>[[Node_(DISS)|Node]]</tt> <br>
  
 
Метод создает ноду (файл) по указанному адресу. В качестве адреса передается DISS путь.  
 
Метод создает ноду (файл) по указанному адресу. В качестве адреса передается DISS путь.  
Строка 46: Строка 49:
  
 
== delete ==
 
== delete ==
 +
 +
delete(''адрес'': <tt>[[string]]</tt>, <span style="background-color: #EBEBEB;">''точка монтирования'': <tt>[[MountPoint]]</tt></span>)<br>
 +
 +
Метод удаляет ноду из дерева ФС. Если указана конкретная точка монтирования, то нода удаляется только с хранилища, соответствующего данной точке монтирования.
 +
 
== open ==
 
== open ==
 +
 +
open(''адрес'': <tt>[[string]]</tt>, ''флаги'': <tt>[[int]]</tt>, <span style="background-color: #EBEBEB;">''точка монтирования'': <tt>[[MountPoint]]</tt></span>)<br>
 +
'''Возвращает''': потомок <tt>[[Node_(DISS)|Node]]</tt> <br>
 +
 +
Метод осуществляет открытие ноды по указанному пути.
 +
 +
Флаги (имеют отношение к файлам с содержимым):
 +
* OPEN_READ -- нода открывается для чтения
 +
* OPEN_WRITE -- нода открывается для записи
 +
* OPEN_TRUNCATE -- нода открывается для записи, притом что текущее содержимое файла обнуляется.
 +
<!-- * OPEN_NOREV -- при записи номер ревизии не увеличивается -->
 +
 
== find ==
 
== find ==
 +
 +
find(''запрос'': <tt>[[string]]</tt>, <span style="background-color: #EBEBEB;">''точка монтирования'': <tt>[[MountPoint]]</tt></span>)<br>
 +
'''Возвращает''': <tt>[[array]]<[[Node (DISS)|Node]]></tt> <br>
 +
 +
Метод используется для выборки данных из ФС. Возвращается массив, отвечающий заданным критериям.
 +
 +
Примеры запросов: <br>
 +
<tt>/home/user/music/[artist="EndZone"] <br>
 +
/etc/[%name=~/\.conf$/] <br>
 +
[type=image/jpeg] <br>
 +
[%name=~'\.jpg$',type=image/jpeg] <br>
 +
[%name=~!\.jpg$!|%name=~!\.png$,type=~'^image']</tt>
 +
 +
Запрос состоит из частей пути (в обычном понимании; например <tt>/home/user/music</tt>) а так же тэгов, состоящих из квадратных скобок, в которых заключаются термины поиска. Если элементы пути не указаны, поиск будет вестись в текущей директории.
 +
 
== search ==
 
== search ==
 +
 +
open(''правила поиска'': <tt>[[string]]</tt>, <span style="background-color: #EBEBEB;">''точка монтирования'': <tt>[[MountPoint]]</tt></span>)<br>
 +
'''Возвращает''': <tt>[[array]]<[[Node (DISS)|Node]]></tt> <br>
 +
 +
Метод похож по смыслу на метод <tt>[[#find|find]]</tt>, однако критерий поиска задается единственным оператором тэгом <tt>[...]</tt>; поиск ведется во всем хранилище.
 +
 
== changeDir ==
 
== changeDir ==
 +
 +
changeDir(''новая директория'': <tt>[[string]]</tt>) <br>
 +
 +
Метод устанавливает текущую директорию.
 +
 +
== currentDir ==
 +
 +
'''Возвращает''': <tt>[[string]]</tt> <br>
 +
 +
Метод возвращает текущую директорию.

Версия 22:49, 1 мая 2008

Класс Storage предоставляет интерфейс для доступа к DISS -- файловой системе Диптауна. Все методы класса -- статические. Предоставляются методы для монтирования оверлеев, открытия, создания, удаления и поиска файлов, а так же методы навигации по содержимому графа ФС.


Родители: нет (класс оболочка)
Методы: mount create delete open find search changeDir currentDir


mount

mount(адрес хранилища: string, адрес индекса: string, флаги: int)
Возвращает: MountPoint

Метод производит монтирование оверлея к ФС. Адрес хранилища -- это URL ресурса который необходимо подключить. Например, в случае подключения директории реальной ФС, будет запись вида fs:путь/к/хранилищу. Второй параметр содержит URL к индексу для данного хранилища. Если параметр не указан, индекс будет создан автоматически.

Флаги:

  • MOUNT_READONLY -- хранилище монтируется в режиме "только чтение".
  • MOUNT_USER -- файлы из данного оверлея будут видны только самому пользователю, примонтировавшему хранилище.
  • MOUNT_GROUP -- файлы из данного оверлея будут видны группе пользователей, в которую входит данный пользователь.
  • MOUNT_PROTECTED -- данный режим монтирования доступен только суперпользователю. При этом, файлы в этом хранилище не могут быть перекрыты обычными пользователями. Перекрыть файлы из защищенного хранилища можно только еще одним защищенным оверлеем.

Если не указан ни один из флагов, то оверлей монтируется так, что его файлы будут видны всем пользователям. Это доступно, естественно, только суперпользователю.

create

create(адрес: string, имя ноды: string, флаги создания: int, флаги ноды: int, точка монтирования: MountPoint)
Возвращает: Node

Метод создает ноду (файл) по указанному адресу. В качестве адреса передается DISS путь.

Флаги ноды:

  • TYPE_DIRECTORY -- нода является директорией.
  • TYPE_FILE -- обычный файл
  • TYPE_DATA -- Специальный файл, содержащий vary данные прямо в индексе.
  • TYPE_LINK -- в настоящий момент не реализовано
  • TYPE_STREAM -- файл содержащий адрес потока. При открытии такого файла, открывается поток, по соответствующему адресу.
  • TYPE_EVENT -- в настоящий момент не реализовано
  • TYPE_MUTEX -- в настоящий момент не реализовано
  • FLAG_READONLY -- файл доступен только для чтения

delete

delete(адрес: string, точка монтирования: MountPoint)

Метод удаляет ноду из дерева ФС. Если указана конкретная точка монтирования, то нода удаляется только с хранилища, соответствующего данной точке монтирования.

open

open(адрес: string, флаги: int, точка монтирования: MountPoint)
Возвращает: потомок Node

Метод осуществляет открытие ноды по указанному пути.

Флаги (имеют отношение к файлам с содержимым):

  • OPEN_READ -- нода открывается для чтения
  • OPEN_WRITE -- нода открывается для записи
  • OPEN_TRUNCATE -- нода открывается для записи, притом что текущее содержимое файла обнуляется.

find

find(запрос: string, точка монтирования: MountPoint)
Возвращает: array<Node>

Метод используется для выборки данных из ФС. Возвращается массив, отвечающий заданным критериям.

Примеры запросов:
/home/user/music/[artist="EndZone"]
/etc/[%name=~/\.conf$/]
[type=image/jpeg]
[%name=~'\.jpg$',type=image/jpeg]
[%name=~!\.jpg$!|%name=~!\.png$,type=~'^image']

Запрос состоит из частей пути (в обычном понимании; например /home/user/music) а так же тэгов, состоящих из квадратных скобок, в которых заключаются термины поиска. Если элементы пути не указаны, поиск будет вестись в текущей директории.

search

open(правила поиска: string, точка монтирования: MountPoint)
Возвращает: array<Node>

Метод похож по смыслу на метод find, однако критерий поиска задается единственным оператором тэгом [...]; поиск ведется во всем хранилище.

changeDir

changeDir(новая директория: string)

Метод устанавливает текущую директорию.

currentDir

Возвращает: string

Метод возвращает текущую директорию.

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
информация
документация
Инструменты