SOObjectizer to stosunkowo niewielki framework upraszczający tworzenie złożonych aplikacji wielowątkowych w C++. SObjectizer umożliwia programistom budowanie programów w oparciu o asynchroniczne przesyłanie wiadomości przy użyciu podejść takich jak Actor Model, Publish-Subscription i CSP. Jest to projekt OpenSource na licencji BSD-3-CLAUSE. Na podstawie tego można stworzyć krótkie wrażenie dotyczące SObjectizera tę prezentację.
Wersja 5.6.0 jest pierwszą główną wersją nowej gałęzi SObjectizer-5.6. Oznacza to także zakończenie rozwoju gałęzi SObjectizer-5.5, która rozwija się od ponad czterech lat.
Ponieważ wersja 5.6.0 otwiera nowy rozdział w rozwoju SObjectizera, nie ma żadnych innowacji w porównaniu z tym, co zostało zmienione i/lub usunięte z SObjectizera. W szczególności:
- Używany jest C++ 17 (poprzednio używany był podzbiór C++ 11);
- projekt został przeniesiony i teraz żyje BitBucketa z oficjalnym, a nie eksperymentalnym, lustro na GitHubie;
- współpraca agentów nie ma już nazw ciągów;
- Z SObjectizera usunięto obsługę synchronicznej interakcji pomiędzy agentami (jego odpowiednik jest zaimplementowany w projekcie towarzyszącym so5 ekstra);
- usunięto obsługę agentów ad hoc;
- do wysyłania wiadomości wykorzystywane są obecnie wyłącznie darmowe funkcje send, send_delayed, send_periodic (stare metody Deliver_message, Schedule_timer, single_timer zostały usunięte z publicznego API);
- funkcje send_delayed i send_periodic mają teraz ten sam format niezależnie od rodzaju odbiorcy wiadomości (czy jest to mbox, mchain czy link do agenta);
- dodano klasę message_holder_t, aby uprościć pracę z wcześniej przydzielonymi wiadomościami;
- usunięto wiele rzeczy, które w gałęzi 5.5 oznaczono jako przestarzałe;
- No i mnóstwo innych rzeczy.
Bardziej szczegółową listę zmian można znaleźć tutaj. Tam, w projekcie Wiki, możesz znaleźć dokumentacja dla wersji 5.6.
Archiwa z nową wersją SObjectizera można pobrać ze strony BitBucketa lub SourceForge.
PS. Zwłaszcza dla sceptyków, którzy uważają, że SObjectizer jest nikomu niepotrzebny i nie jest przez nikogo używany. Ten nie w ten sposób.
Źródło: linux.org.ru