Storage

Материал из Deeptown Manual
Перейти к: навигация, поиск

Класс 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 путь.

Флаги открытия:

Те же, что указываются в методе open

Флаги ноды(класс Node):

  • 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

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

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

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