Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Патчи > Принятые патчи

Важная информация

Принятые патчи Иногда выкладывают патчи, которые потом в итоге все-таки принимают в ядро.

Повод для гордости.

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.06.2010, 17:04   #1
Astellar
Гость
 
Сообщений: n/a
По умолчанию [10091][idea] Use ACE for CLI args parsing.

Продолжаем знакомить народ с возможностями АСЕ.

Чем лично меня не устраивает текущий вариант? Как минимум тем, что он сложен для расширения, выглядит уж очень монструозно и не поддерживает ассоциацию коротких и длинных аргументов друг с другом. Гораздо понятнее и компактнее выглядит код, использующий класс ACE_Get_Opt.

Помимо компактности, у этого класса есть масса преимуществ. Как пример: возможность группировать короткие аргументы (по типу 'ps -aux'); крайне легкое описание того, является ли аргумент требуемым или опциональным. Не факт, что что-либо из этого будет ядром использоваться, но в теории было бы неплохо дать возможность конфигурировать некоторые параметры запуска не только путем правки файлов *.conf, но и аргументами командной строки.

Сам код выложу позже, пока что другие заботы внимания требуют.
 
Старый 20.06.2010, 18:57   #2
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

не думаю что это стоит кардианальной смены консольных, тем более что и чат комманд тоже значит...

единствеено что не хватает в текущей системе - маркера к кому направлена комманда - себе/выбранной цели/явно указанной цели...
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума  
Старый 20.06.2010, 18:59   #3
Astellar
Гость
 
Сообщений: n/a
По умолчанию

Не-не-не. Консольных аргументов при старте сервера.
Код:
./mangos-realmd --version
как пример.
 
Старый 20.06.2010, 19:03   #4
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

а... извиняюсь, не понял... по исходному тексту
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума  
Старый 20.06.2010, 19:08   #5
Astellar
Гость
 
Сообщений: n/a
По умолчанию

Да ничего страшного, я там не особо и указал, что я понимаю под Command Line Interface arguments. Я тут просто целью задался, как можно больше самописного/стороннего кода заменить на то, что уже предоставляется библиотекой с широчайшими возможностями. В принципе идей много.
 
Старый 20.06.2010, 19:13   #6
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

в мангос cli = console line interface (in mangosd)
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума  
Старый 21.06.2010, 01:38   #7
Astellar
Гость
 
Сообщений: n/a
По умолчанию

В общем как-то вот так это выглядит.

Из плюсов следует отметить единообразную обработку ошибок вида "не указано требуемое значение аргумента командной строки". Остальное в принципе осталось почти нетронутым.

Разве что показал ассоциацию длинной опции с короткой (на примере --version и -v). Ну и --service заменил на -s run, более единообразно получилось.

Патч в сообщение не помещается, ибо "многа букаф" поэтому только вложением.
Вложения
Тип файла: diff opts.diff (10.2 Кб, 28 просмотров)
 
2 пользователя(ей) сказали cпасибо:
PSZ (21.06.2010), Vladimir (21.06.2010)
Старый 21.06.2010, 05:40   #8
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

В [10091]. Спасибо
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума  
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[10158] Fixed 2 format args errors in debug output. newsbot CMaNGOS Commits 0 07.07.2010 21:10
[10091] Use ACE for command line options parse. newsbot CMaNGOS Commits 0 21.06.2010 06:00
[10081][idea] Drop usage of DOTCONFDocument. Astellar Принятые патчи 8 20.06.2010 00:55
[9770] Use more proper std::istringstream for parse args. newsbot CMaNGOS Commits 0 21.04.2010 11:31
[9612] Add to SendMonsterMove var args for optional values. newsbot CMaNGOS Commits 0 24.03.2010 00:50


Текущее время: 20:53. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot