h1. LAview-Core h2. LAview-Core Entities * Document Build Directory - директория сборки документа - LyX, LaTeX (включая картинки и прочее); * PDF-document - объект в памяти; * LyX Template - шаблон протокола в формате .LyX; * LaTeX Template - шаблон протокола в формате .TeX; * IDoc - дерево документа в памяти; * Data Request - любой запрос на данные; * Storage Request - запрос на получение данных из Data Storage; * Protocol Type - основной идентификатор объекта документа; h2. LAview-Core Goals h3. Core <-> User Interface Responsibilities: * выполнять команду "Подготовить протокол"; * выдавать PDF/DVI/etc - однофайловый результат через буфер в памяти; * выдавать объект-директорию (очищается в деструкторе) с результатом LaTeX/LyX для последующего редактирования (включая картинки); h3. Core <-> Data Storage Interface Responsibilities: * обрабатывать IDoc по полученному от Data Storage рег. выр-ю ReqReg; * посылать запрос в Data Storage на получение общего рег. в-я ReqReg для поиска в IDoc запросов. h3. Core <-> Protocol Plugins Responsibilities: * поиск, запуск и работа с плагинами ("TypeModules":https://wiki.gnome.org/Projects/Vala/TypeModules, "TypeModuleSample":https://wiki.gnome.org/Projects/Vala/TypeModuleSample), PATH при загрузке плагина не дополнять ни чем; * посылать запросы и по полученным данным обрабатывать структуру IDoc; * получение от плагина идентификатора типа для идентификации таблиц, рисунков, текстовых запросов ([Throttle2.Manual, MeasTable4.ntk....]). h3. Core <-> LaTeX-Struct Responsibilities: h2. Interfaces h3. MVC Interface * метод слепого Лося, бегущего через горящий лес. h3. Protocol host-Interface * выдача данных из Data Storage по запросу; h3. Data Storage host-Interface ничего тут не должно быть h2. Remarks * Установка общих библиотек выполняется по общему принципу без разделения по модулям. Т.е., общие expat, post_calc.dll (для пост-расчётов), insys_printf_format.{dll,so} в LAview-Core/bin или в $PREFIX/lib. * В задачи плагинов должно выходить сохранение состояния для каждого объекта, идентифицируемого по его типу+набор символов, напр. Throttle[A-Za-z0-9]+.