SObjectizer to stosunkowo mały framework, który ułatwia rozwój złożonych aplikacji wielowątkowych w C++. SObjectizer umożliwia programistom budowanie swoich programów w oparciu o asynchroniczną wymianę wiadomości, wykorzystując podejścia takie jak model aktora, publikowanie i subskrypcja oraz CSP. To projekt OpenSource na licencji BSD-3-CLAUSE. Krótkie wrażenie o SObjectizer można zdobyć na podstawie tej prezentacji.
Wersja 5.6.0 jest pierwszym dużym wydaniem nowego odgałęzienia SObjectizer-5.6. Co oznacza również zakończenie rozwoju odgałęzienia SObjectizer-5.5, które rozwijało się przez ponad cztery lata.
Ponieważ wersja 5.6.0 otwiera nowy rozdział w rozwoju SObjectizer, nie ma zupełnie nowych funkcji w porównaniu z tym, co zostało zmienione i/lub usunięte z SObjectizer. W szczególności:
- jest używany C++17 (wcześniej stosowano podzbiór C++11);
- projekt przeniósł się i teraz działa na BitBucket z oficjalnym, a nie eksperymentalnym, lustrzanym odbiciem na GitHubie;
- agenci nie mają już nazw stringowych;
- wsparcie dla synchronizacji między agentami zostało usunięte (jego odpowiednik został wdrożony w towarzyszącym projekcie so5extra);
- usunięto wsparcie dla ad-hoc agentów;
- do przesyłania wiadomości używane są teraz tylko wolne funkcje send, send_delayed, send_periodic (stare metody deliver_message, schedule_timer, single_timer z publicznego API zostały usunięte);
- funkcje send_delayed i send_periodic mają teraz jednolity format, niezależnie od typu odbiorcy wiadomości (czy to mbox, mchain czy referencja do agenta);
- dodano klasę message_holder_t, aby uprościć pracę z prealokowanymi wiadomościami;
- usunięto wiele rzeczy, które były oznaczone jako deprecated jeszcze w odgałęzieniu 5.5;
- no i jeszcze różne inne.
Bardziej szczegółową listę zmian można znaleźć tutaj. Tam również, w Wiki projektu, można znaleźć dokumentację do wersji 5.6.
Archiwum z nową wersją SObjectizer można pobrać na BitBucket lub na SourceForge.
PS. Specjalnie dla sceptyków, którzy uważają, że SObjectizer nikomu nie jest potrzebny i nikt go nie używa. To nieprawda.
Źródło: linux.org.ru
