Naiad:plugins

From

(Difference between revisions)
Jump to: navigation, search
(Created page with "Все исходные файлы плагинов продуктов находятся в директории [qdione_install_dir]/src/plugins/collections . Каждый п…")
 
(4 intermediate revisions not shown)
Line 3: Line 3:
Каждый плагин представляет собой дерево директорий. Корневая директория имеет название, аналогичное названию плагина. В ней располагаются следующие директории: main (обязательно), filtering, aggregation и virtual.
Каждый плагин представляет собой дерево директорий. Корневая директория имеет название, аналогичное названию плагина. В ней располагаются следующие директории: main (обязательно), filtering, aggregation и virtual.
 +
Плагины написаны на языке С++ с использованием библиотек Qt4. (Для удобства используйте среду разработки QtCreator.)
 +
В папке main находится сам плагин продукта, состоящий из проектного файла plugin_name.pro и файла исходных текстов plugin_name.cpp. В файле plugin_name.cpp реализуются две основные функции buildConstraintExpression и buildGranule (которые вызываются из QDione при загрузке гранулы), а так же несколько вспомогательных функций.
 +
Функция buildConstraintExpression создаёт строку (ограничений для каждой переменной) для отправления на OPeNDAP сервер. Строка имеет вид:
-
--[[User:Denis.spiridonov|Denis.spiridonov]] 08:38, 26 December 2012 (UTC)
+
'''variable_name1[min:stride:max],variable_name2[min:stride:max],...''',
 +
 
 +
где [min:stride:max] - формат записи ограничений (для каждой переменной ограничения могут быть разными), variable_name[1,2] - имена переменных. Например, "wvc_row_time[0:1:1623],wvc_lon[0:1:1623][0:1:75],wvc_lat[0:1:1623]"
 +
 
 +
Общий вид функции '''extern "C" QString buildConstraintExpression(QStringList & nativeVariableStringList, QString xOffset, QString yOffset, QString zOffset, DioneDapDataFile* dapfile);'''
 +
 
 +
Переменная nativeVariableStringList хранит список имён переменных, для которых необходимо создать ограничения ([min:stride:max]);
 +
Переменные xOffset, yOffset, zOffset содержать ограничения (строки), которые передаются в запросе (из XML или web-запроса);
 +
Переменная dapfile - указатель на файл, используемый OPeNDAP.
 +
 
 +
Функция buildGranule строит структуру гранул в QDione из OPeNDAP файла. Возвращает true, если гранула построена правильно, иначе false.
 +
 
 +
Общий вид функции '''extern "C" bool buildGranule(DioneDapDataFile* dapfile, DioneGranule * granule);'''
 +
 
 +
Переменная dapfile - указатель на OPeNDAP файл;
 +
Переменная granule - указатель на гранулу, которую необходимо построить.
 +
 
 +
===============
 +
Плагины, которые могут быть использованы любой коллекцией, находятся в директории [qdione_install_dir]/src/plugins/generic
 +
 
 +
Для разработки плагина продукта необходимо..
 +
--[[User:Denis.spiridonov|Denis.spiridonov]] 10:50, 26 December 2012 (UTC)

Latest revision as of 10:50, 26 December 2012

Все исходные файлы плагинов продуктов находятся в директории [qdione_install_dir]/src/plugins/collections .

Каждый плагин представляет собой дерево директорий. Корневая директория имеет название, аналогичное названию плагина. В ней располагаются следующие директории: main (обязательно), filtering, aggregation и virtual.

Плагины написаны на языке С++ с использованием библиотек Qt4. (Для удобства используйте среду разработки QtCreator.)

В папке main находится сам плагин продукта, состоящий из проектного файла plugin_name.pro и файла исходных текстов plugin_name.cpp. В файле plugin_name.cpp реализуются две основные функции buildConstraintExpression и buildGranule (которые вызываются из QDione при загрузке гранулы), а так же несколько вспомогательных функций.

Функция buildConstraintExpression создаёт строку (ограничений для каждой переменной) для отправления на OPeNDAP сервер. Строка имеет вид:

variable_name1[min:stride:max],variable_name2[min:stride:max],...,

где [min:stride:max] - формат записи ограничений (для каждой переменной ограничения могут быть разными), variable_name[1,2] - имена переменных. Например, "wvc_row_time[0:1:1623],wvc_lon[0:1:1623][0:1:75],wvc_lat[0:1:1623]"

Общий вид функции extern "C" QString buildConstraintExpression(QStringList & nativeVariableStringList, QString xOffset, QString yOffset, QString zOffset, DioneDapDataFile* dapfile);

Переменная nativeVariableStringList хранит список имён переменных, для которых необходимо создать ограничения ([min:stride:max]); Переменные xOffset, yOffset, zOffset содержать ограничения (строки), которые передаются в запросе (из XML или web-запроса); Переменная dapfile - указатель на файл, используемый OPeNDAP.

Функция buildGranule строит структуру гранул в QDione из OPeNDAP файла. Возвращает true, если гранула построена правильно, иначе false.

Общий вид функции extern "C" bool buildGranule(DioneDapDataFile* dapfile, DioneGranule * granule);

Переменная dapfile - указатель на OPeNDAP файл; Переменная granule - указатель на гранулу, которую необходимо построить.

===

Плагины, которые могут быть использованы любой коллекцией, находятся в директории [qdione_install_dir]/src/plugins/generic

Для разработки плагина продукта необходимо.. --Denis.spiridonov 10:50, 26 December 2012 (UTC)

Personal tools
MediaWiki Appliance - Powered by TurnKey Linux