Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Новое API доступа к конфигурации / 8 сообщений из 8, страница 1 из 1
01.02.2016, 16:36
    #39160391
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Новое API доступа к конфигурации
Вот есть там такой класс:
Код: plaintext
1.
2.
3.
4.
5.
6.
interface Config : ReferenceCounted
{
ConfigEntry find(Status status, const string name);
ConfigEntry findValue(Status status, const string name, const string value);
ConfigEntry findPos(Status status, const string name, uint pos);
}


С первым методом всё в принципе ясно, но может кто-нибудь простым русским языком объяснить для чего предназначены оставшиеся два? Что человек должен писать в их реализации?
...
Рейтинг: 0 / 0
01.02.2016, 16:51
    #39160417
miwaonline
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Новое API доступа к конфигурации
Dimitry SibiryakovВот есть там такой класс:
Код: plaintext
1.
2.
3.
4.
5.
6.
interface Config : ReferenceCounted
{
ConfigEntry find(Status status, const string name);
ConfigEntry findValue(Status status, const string name, const string value);
ConfigEntry findPos(Status status, const string name, uint pos);
}



С первым методом всё в принципе ясно, но может кто-нибудь простым русским языком объяснить для чего предназначены оставшиеся два? Что человек должен писать в их реализации?

Хм. Безотносительно конфигурации

findValue - вернуть елемент (конфигурации), значение которого равно value
findPos - вернуть елемент (конфигурации) под порядковым номером pos

Разве нет? Или я что-то неправильно понимаю в вопросе?
...
Рейтинг: 0 / 0
01.02.2016, 16:57
    #39160432
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Новое API доступа к конфигурации
Dimitry Sibiryakov,

дык потому что в конфиге Firebird name ни фига не уникальный для сложных свойств

вот тебе пример раз

plugins.confPlugin = UDR {
Module = $(root)/plugins/udr_engine
Config = UDR_config
}

Config = UDR_config {
path = $(root)/plugins/udr
}

вот тебе пример два

fbtrace.confdatabase = %[\\/]my_database.fdb
{
enabled = true
}

database = %[\\/](test|azk2|rulez).fdb
{
enabled = true
log_filename = \1.log
}
...
Рейтинг: 0 / 0
01.02.2016, 17:03
    #39160440
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Новое API доступа к конфигурации
Dimitry SibiryakovЧто человек должен писать в их реализации?Какой-такой человек ? Этот интерфейс реализуется движком, а не внешним плагином, iirc
...
Рейтинг: 0 / 0
01.02.2016, 17:23
    #39160461
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Новое API доступа к конфигурации
hvladКакой-такой человек ? Этот интерфейс реализуется движком, а не внешним
плагином, iirc
Угу, реализуется. Но таким способом, который делает наследование от данной реализации с
целью её полиморфизма и расширения совершенно невозможным.

Вот написал я наследника от ConfigFile с расширенным набором макросов. Но чтобы теперь
сделать из него IConfig и скормить плагину, мне придётся полностью реализовать данный
интерфейс с нуля. Либо выцарапывать объявление класса ConfigAccess из PluginManager.cpp в
заголовки. И я пока не знаю что из этого проще.

PS: А всё потому, что кое-кто решил не использовать стандартный метод "класс реализующий
интерфейсы" и изобрёл жуткую систему обёрток над обёртками.
PPS: Есть ещё возможность забить на IConfig и сделать-таки совершенно новый интерфейс
конфига общепринятыми методами.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
01.02.2016, 17:45
    #39160480
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Новое API доступа к конфигурации
Dimitry Sibiryakov,

какое нафиг наследование ? В куда ты собираешься подставлять свою реализацию ?

PS Ты же 100500 раз говорил, что не понимаешь С++ - какого лешего ты позволяешь себе критиковать то, что не понимаешь ?
...
Рейтинг: 0 / 0
01.02.2016, 18:03
    #39160497
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Новое API доступа к конфигурации
hvladВ куда ты собираешься подставлять свою реализацию ?
В место между движком и плагином, естественно. Куда ещё, по-твоему, можно подставить
реализацию интерфейса, позволяющую плагину получить из его конфига строку, расширенную из
"$(this_dbDir).$(dbid).$(UserName)", например?..

hvladТы же 100500 раз говорил, что не понимаешь С++
Не говорил. И С++ я как раз понимаю. В отличии от тех извращений, которые наворочены в сабже.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
01.02.2016, 18:36
    #39160507
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Новое API доступа к конфигурации
Dimitry SibiryakovВ место между движком и плагиномКаким образом ?
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Новое API доступа к конфигурации / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]