Титла: Как да извикам функция? Публикувано от: rcbandit в Apr 06, 2011, 22:54 Имам следния проблем
Имам този JSON стринг Код
Трябва от този код като се получи да се извика функция и да й се предадът двете променливи Успях да подкарам обръщането на абикновенни променливи в JSON стринг и обратно, но сега как да се извика функцията следкато се получи и се обърне пак в стойности Код
Горното го написах използвайки библиотеката JANSSON Титла: Re: Как да извикам функция? Публикувано от: b2l в Apr 06, 2011, 23:01 Нищо не мога да разбера от въпроса ти.
Титла: Re: Как да извикам функция? Публикувано от: clovenhoof в Apr 06, 2011, 23:42 // off
Четейки въпроса се сетих за това : http://www.youtube.com/watch?v=Du5eFmessRA ($2) Титла: Re: Как да извикам функция? Публикувано от: b2l в Apr 06, 2011, 23:46 // off Хахахахаха - ти ме уби направо бе :D :D :D :D :D [_]3 [_]3 [_]3 [_]3 [_]3 [_]3 [_]3 Титла: Re: Как да извикам функция? Публикувано от: rcbandit в Apr 07, 2011, 00:09 Пример: Да кажем че имаме 6 функции в един демон. Демона получава този JSON. Целта изпращането на JSON стринга е да му се каже на демона какво да прави - коя функция дя извика и какви параметри да подаде. Получава нещо като набор от каманди за изпълнение от демона. Как ще стане това в случая.
Титла: Re: Как да извикам функция? Публикувано от: gat3way в Apr 07, 2011, 00:32 http://www.newty.de/fpt/index.html
Титла: Re: Как да извикам функция? Публикувано от: rcbandit в Apr 07, 2011, 01:17 Код
Има ли по-оптимизирано решение на горния код. Проблема е че яко имам много функции switch case става прекалено толям. Титла: Re: Как да извикам функция? Публикувано от: gat3way в Apr 07, 2011, 01:36 Цялата идея на това беше да се избегнaт switch-овете, ползвайки указатели към функции. Разбери, че няма да станат тези неща с копи-пействане, това не е модване на някакъв PHP-базиран CMS. Трябва поне малко да осмислиш за какво става въпрос.
Титла: Re: Как да извикам функция? Публикувано от: rcbandit в Apr 07, 2011, 02:09 Код
най-накрая схванах! добре a какво се прави в случай когато веднъж имаме 3 аргумента а друг път повече? Има ли някакво решение? Просто правя функцията сповече аргументи и предавам NULL на излишните аргументи? Титла: Re: Как да извикам функция? Публикувано от: d0ni в Apr 07, 2011, 02:35 в твоя случай най-добре е да предаваш json обекта като един параметър и всяка функция да си го обикаля и да си чете каквото й е нужно.
също така може да избегнеш switch/if, ако функциите ти ги сложиш в отделен .so файл и ги извикваш с dlopen/dlsym от демона Титла: Re: Как да извикам функция? Публикувано от: rcbandit в Apr 17, 2011, 11:23 Отново имам проблеми с викането на функцията:
Извикването не се получава Код: #include"hashtbl.h" Търсенето на на стойност по ключ се получава но когато трябва да се предаде имено на функцията към pointer не се получава. Някакви идей как да се реши проблема? Прикрепям пълния код п.п и с горния начин на викане на функция не става - връща грешка Segmentation fault при викане Титла: Re: Как да извикам функция? Публикувано от: bvbfan в Apr 17, 2011, 12:33 Код
PS: Ако има някакви проблеми, мога да помогна, но нямам много свободно време ;) Титла: Re: Как да извикам функция? Публикувано от: rcbandit в Apr 17, 2011, 12:49 много благодаря, това е предостатъчно
п.п кой варянт ви се вижда по добър: 1. Да сложа всички функции в един демон и за ги викам използвайки hash table и function pointer 2. Да сложа всяка функция в отделен .so файл и да ги зареждам по време на зареждане използвайки Dynamic loading and un-loading of shared libraries using libdl като предполагам се избягва hash table. Кой би бил по-бърз и удобен? |