На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
Модераторы: Qraizer
Страницы: (14) « Первая ... 11 12 [13] 14  все  ( Перейти к последнему сообщению )  
> SObjectizer 5.3.0
    Цитата JoeUser @
    Игорь, как ты считаешь, есть ли повод для "призадуматься"? Ну по поводу имен, нотаций ... ?

    О чём призадуматься? Стилей наименования много, мой любимый я озвучил. Какой применять для библиотеки - дело её авторов.
      Цитата MyNameIsIgor @
      я озвучил

      Кинь, плс, линк. Я пропустил где это.
        Вот же
        Цитата MyNameIsIgor @
        Мне stl-style нравится гораздо больше
          Цитата MyNameIsIgor @
          Вот же

          А, оке! Пасип.
            Цитата JoeUser @
            И тем не менее... so_5::rt::mchain_params - выделенное некрасиво и убого, имхо. Последний идентификатор - длинный и ничего не говорит новичку, ничего. Если бы это было "a", ничего бы не изменилось.
            JoeUser, а как надо-то?
            А в целом, никто не запрещает namespace fromTheCeiling = so_5. Или namespace mySo = so_5::rt.

            Добавлено
            Цитата JoeUser @
            Возможно тутошнее общение, возможно Oraizer, возможно искривление пространственно-временного континуума, привели меня к мысли, что - кулл это STL, это хорошо и правильно!
            Вообще-то, если я правильно помню контекст, я только предложил не путать библиотеки с фреймворками. Так-то против Qt я ничего не имею, однако всему своё место.
              Цитата Qraizer @
              JoeUser, а как надо-то?

              Вместо этого, нечто типа "SuperLibrary", ну или как-то так. S0_ как-то несерьезно (но это чисто имхо).

              Цитата Qraizer @
              А в целом, никто не запрещает

              ... и не кто не запрещает подчеркивание ... а почему тогда гавняют UTF-8 в именах преременных?
                Кто? Стандарт разрешает реализациям использовать любые символы из расширенного набора, но сам расширенный набор не определяет. Так что если твой компилятор позволяет, юзай на здоровье, но в переносимости ты потеряешь. Также не стандартизированы допустимые кодировки для файлов исходных текстов. Но ты всегда можешь использовать UNC, только это будет нечитабельно от слова вообще.

                Так что Стандарт не возражает, но если ты имеешь в виду коллег, то это более чем ожидаемо.
                  Цитата Qraizer @
                  Вообще-то, если я правильно помню контекст, я только предложил не путать библиотеки с фреймворками. Так-то против Qt я ничего не имею, однако всему своё место.

                  Не, ты вообще не при чем. Вернее, сознательно. :D Просто я тебя упомянул по той причине, что в твоих примерах я видел хорошее применение STL, не худшее, чем это можно реализовать с помощью Qt. Вот такой вот был контекст.
                    Вот какая штука готовиться к релизу в версии 5.5.13. Уже полностью работает, но окончательно не зафиксирована. Поэтому еще есть возможность что-то переделать, если вдруг обнаружатся какие-то фатальные недостатки.
                      SObjectizer обновился до версии 5.5.13. Подробности релиза можно узнать здесь. Сорри, что не выкладываю краткого описания изменений. Надеюсь, что тем, кто проектом интересуется, не составит труда пройти по ссылке и прочесть нормальное описание релиза.
                        За последнее время:
                        • состоялся релиз версии 5.5.14, в которой произведена унификация форматов разных типов обработчиков сообщений;
                        • подготовлен пример, показывающий, как механизм mchain может использоваться в механизмах overload control для агентов;
                        • более-менее обозначились планы на ближайшее будущее:
                          • подготовка презентации об опыте использования SObjectizer-а и извлеченных из этого опыта уроках;
                          • эксперименты по интеграции SObjectizer-а в GUI-приложения посредством использования механизма mchain-ов;
                          • подготовка еще одной, может быть двух, презентаций для серии Deep Dive into SObjectizer-5.5. По крайней мере нужно рассказать подробнее о диспетчерах. Ну и об mchain-ах, если получится;
                          • проработка двух больших фич для следующих версий SO-5: возможность представления агентов в виде иерархических конечных автоматов (с историческими состояниями, с реакциями на вход-выход и т.д.) и возможность использования в диспетчерах преаллоцированных буферов в качестве очередей сообщений (при этом экземпляр сообщения не создается динамически, как сейчас, а конструируется in-place в буфере диспетчера). Имхо, фичи очень важные, особенно для определенных классов задач. Но пока понятные лишь в общих чертах. Так что здесь еще над чем подумать.
                        Собственно говоря, если у кого-то есть вопросы/замечания/предложения, то сейчас удобный момент для того, чтобы уделить этому какое-то время. Так, если вам что-то не нравится в SO-5 или чего-то сильно не хватает и вы найдете возможность об этом сказать, то ваши пожелания вполне могут быть учтены в ближайших релизах SObjectizer-а.
                          Есть мысль расшить возможности агентов SO-5 так, чтобы они могли представлять из себя иерархические конечные автоматы. Вот здесь описано первое приближение к тому, как это могло бы выглядеть. Интересно было бы получить фидбек по поводу этой идеи.
                            В SO-5.5.15 будет возможность задавать ограничение по времени пребывания агента в конкретном состоянии. А так же отменять это ограничения. Но не станет ли поведение связки методов time_limit/drop_time_limit неприятным сюрпризом для пользователей? Интересны любые мнения.
                                SObjectizer -- это небольшой фреймворк для упрощения разработки многопоточных приложений на C++11 за счет использования идей из моделей акторов и publish-subscribe. SObjectizer является OpenSource-проектом и распространяется под трехпунктной BSD-лицензией.

                                Этот релиз добавляет возможность создания агентов в виде иерархических конечных автоматов. В версии 5.5.15 поддерживаются такие вещи, как композитные состояния, shallow- и deep-история, обработчики входа/выхода, лимиты времени, передача события на обработку в другое состояние (что-то вроде defer) и подавление событий.

                                Малюсенький примерчик для демонстрации новых возможностей: агент, который реализует мигающий LED-индикатор. Этот агент обрабатывает сигнал `turn_on_off` для включения и выключения режима мигания. Когда режим мигания включен, агент зажигает LED-индикатор на 1.5 секунды, затем тушит его на 0.75 секунды, затем опять зажигает и опять тушит и так до тех пор, пока не получит следующий сигнал `turn_on_off`. В виде диаграммы состояний этот конечный автомат может быть представлен следующим образом:
                                user posted image

                                Код этого агента может выглядеть вот так:
                                ExpandedWrap disabled
                                  class blinking_led final : public so_5::agent_t
                                  {
                                      state_t off{ this },
                                          blinking{ this },
                                          blink_on{ initial_substate_of{ blinking } },
                                          blink_off{ substate_of{ blinking } };
                                   
                                  public :
                                      struct turn_on_off : public so_5::signal_t {};
                                   
                                      blinking_led( context_t ctx ) : so_5::agent_t{ ctx }
                                      {
                                          this >>= off;
                                   
                                          off.just_switch_to< turn_on_off >( blinking );
                                   
                                          blinking.just_switch_to< turn_on_off >( off );
                                   
                                          blink_on
                                              .on_enter( []{ /* some device-specific code */ } )
                                              .on_exit( []{ /* some device-specific code */ } )
                                              .time_limit( std::chrono::milliseconds{1500}, blink_off );
                                   
                                          blink_off
                                              .time_limit( std::chrono::milliseconds{750}, blink_on );
                                      }
                                  };


                                Более подробно поддержка иерархических конечных автоматов описана в Wiki проекта: so-5.5 In-depth - Agent States и в обновленной презентации Dive into SObjectizer-5.5. Second Part: Agent's States

                                Взять версию 5.5.15 можно либо из раздела Files на SouceForge, либо из Svn репозитория, либо из зеркала на GitHub.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0509 ]   [ 18 queries used ]   [ Generated: 28.03.24, 22:57 GMT ]