рд╢рд╛рдЦрд╛ 5.5 рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ SObjectizer рдХрд╛ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рдЪрд╛рд░ рд╕рд╛рд▓ рдкрд╣рд▓реЗ - рдЕрдХреНрдЯреВрдмрд░ 2014 рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдЖрдЬ
рдЕрдЧрд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг 5.5.23 рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рддрд╣рдд рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ , рдЬреЛ рдХрд┐ рд╕рдВрднрд╡рддрдГ рд╕рдВрднрд╡рддрдГ, SObjectizer-5.5 рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛ред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдкрд┐рдЫрд▓реЗ рдЪрд╛рд░ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдЬреЛ рдХреБрдЫ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЙрд╕реЗ рджреЗрдЦрдиреЗ рдФрд░ рджреЗрдЦрдиреЗ рдХрд╛ рдпрд╣ рдПрдХ рдмрдбрд╝рд╛ рдХрд╛рд░рдг рд╣реИред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдФрд░ рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХрд╛ рд╕рд╛рд░рдЧрд░реНрднрд┐рдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛: рдХреНрдпрд╛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛, рдХреНрдпреЛрдВ, рдХреИрд╕реЗ рдЗрд╕рдиреЗ рдЦреБрдж рдХреЛ рдпрд╛ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ред
рд╢рд╛рдпрдж рдХрд┐рд╕реА рдХреЛ рдкреБрд░рд╛рддрддреНрд╡ рдХреА рджреГрд╖реНрдЯрд┐ рд╕реЗ рдРрд╕реА рдХрд╣рд╛рдиреА рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреАред рдФрд░ рдХрд┐рд╕реА рдХреЛ, рд╢рд╛рдпрдж, рд╕реА + + рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЕрднрд┐рдиреЗрддрд╛ рдврд╛рдВрдЪреЗ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрджрд┐рдЧреНрдз рд╕рд╛рд╣рд╕рд┐рдХ рд╕реЗ рдмрдЪрдирд╛ рд╣реЛрдЧрд╛;)
рдкреБрд░рд╛рдиреЗ рд╕реА ++ рд╕рдВрдХрд▓рдХ рдХреА рднреВрдорд┐рдХрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЧреАрддрд╛рддреНрдордХ рд╡рд┐рд╖рдпрд╛рдВрддрд░
SObjectizer-5 рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ 2010 рдХреЗ рдордзреНрдп рдореЗрдВ рд╢реБрд░реВ рд╣реБрдЖред рдЙрд╕реА рд╕рдордп, рд╣рдордиреЗ рддреБрд░рдВрдд C ++ 0x рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ред рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 2011 рдореЗрдВ, рдЙрддреНрдкрд╛рджрди рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП SObjectizer-5 рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд▓рдЧрд╛ред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд╛рдорд╛рдиреНрдп C ++ 11 рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рдХ рдирд╣реАрдВ рдереЗред
рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╣рдо "рдЖрдзреБрдирд┐рдХ рд╕реА ++" рдХреА рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХреЗ: рд╡реИрд░реЗрдбрд┐рдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ, рдиреЛрдПрдХреНрд╕рд╕реЗрдкреНрдЯ, рдХреЙрдиреНрд╕реНрдЯреИрдХреНрд╕, рдЖрджрд┐ред рдпрд╣ рдПрд╕рдУрдмреАрдЬреЗрдирд╛рдЗрдЬрд░ рдПрдкреАрдЖрдИ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред рдФрд░ рдпрд╣ рдмрд╣реБрдд, рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реБрдЖред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг рдкрдврд╝рдиреЗ рдХреЗ рджреМрд░рд╛рди рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░рд╢реНрди рд╣реИ "рдпрд╣ рдкрд╣рд▓реЗ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?", рддреЛ рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ: "рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛"ред
рдкрд┐рдЫрд▓реЗ рджрд┐рдиреЛрдВ SObjectizer-5.5 рдореЗрдВ рдХреНрдпрд╛ рджрд┐рдЦрд╛рдИ рдФрд░ / рдпрд╛ рдмрджрд▓рд╛ рд╣реИ?
рдЗрд╕ рдЦрдВрдб рдореЗрдВ, рд╣рдо рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдЬрд╛рдПрдВрдЧреЗ, рдЬреЛ рдХрд┐ SObjectizer рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рднрд╛рд╡ рдбрд╛рд▓рддреА рд╣реИрдВред рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рдХреНрд░рдо рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╣реИ рдФрд░ рд╡рд░реНрдгрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ "рдорд╣рддреНрд╡" рдпрд╛ "рд╡рдЬрди" рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред
So_5 :: rt рдирд╛рдо рд╕реНрдерд╛рди рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛
рдХреНрдпрд╛ рдерд╛?
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдкрд╛рдВрдЪрд╡реЗрдВ SObjectizer рдореЗрдВ, SObjectizer рд░рдирдЯрд╛рдЗрдо рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдм рдХреБрдЫ so_5 :: rt рдирд╛рдо рд╕реНрдерд╛рди рдХреЗ рдЕрдВрджрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ so_5 :: rt :: environment_t, so_5 :: rt :: agent_t, so_5 :: rt :: message_t, рдЖрджрд┐ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, SO-5.5.0 рд╕реЗ рдкрд╛рд░рдВрдкрд░рд┐рдХ HelloWorld рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЖрдк рдХреНрдпрд╛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
#include <so_5/all.hpp> class a_hello_t : public so_5::rt::agent_t { public: a_hello_t( so_5::rt::environment_t & env ) : so_5::rt::agent_t( env ) {} void so_evt_start() override { std::cout << "Hello, world! This is SObjectizer v.5." << std::endl; so_environment().stop(); } void so_evt_finish() override { std::cout << "Bye! This was SObjectizer v.5." << std::endl; } }; int main() { try { so_5::launch( []( so_5::rt::environment_t & env ) { env.register_agent_as_coop( "coop", new a_hello_t( env ) ); } ); } catch( const std::exception & ex ) { std::cerr << "Error: " << ex.what() << std::endl; return 1; } return 0; }
рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо "рдЖрд░рдЯреА" рд░рди-рдЯрд╛рдЗрдо рдХреЗ рд▓рд┐рдП рд╣реИред рдФрд░ рдпрд╣ рд╣рдореЗрдВ рдкреНрд░рддреАрдд рд╣реБрдЖ рдХрд┐ "so_5 :: rt" рд░рд┐рдХреЙрд░реНрдб "so_5 :: runtime" рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рдФрд░ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реИред
рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП "рдЖрд░рдЯреА" рдХреЗрд╡рд▓ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп" рд╣реИ рдФрд░ рдХреБрдЫ рдирд╣реАрдВред рдФрд░ "рд░рдирдЯрд╛рдЗрдо" рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реЙрд░реНрдЯрд╣реИрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ "рдЖрд░рдЯреА" рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдирдХреА рднрд╛рд╡рдирд╛рдУрдВ рдХрд╛ рдЗрддрдирд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрднреА-рдХрднреА RuNet рдореЗрдВ SObjectizer рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдШреЛрд╖рдгрд╛рдПрдВ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп" рдХреЗ рдЕрд▓рд╛рд╡рд╛ "rt" рдХреА рдЕрдиреБрдорддрд┐ рдпреЛрдЧреНрдп рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рд╣реЛрд▓реАрд╡рд░ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИрдВред
рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЗрд╕рд╕реЗ рдердХ рдЧрдП рд╣реИрдВред рдФрд░ рд╣рдордиреЗ рд╕рд┐рд░реНрдл so_5 :: rt рдиреЗрдорд╕реНрдкреЗрд╕ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ред
рдХреНрдпрд╛ рдмрди рдЧрдпрд╛ рд╣реИ?
рд╕рдм рдХреБрдЫ рдЬреЛ "so_5 :: rt" рдХреЗ рдЕрдВрджрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдмрд╕ "so_5" рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╡рд╣реА HelloWorld рдЕрдм рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
#include <so_5/all.hpp> class a_hello_t : public so_5::agent_t { public: a_hello_t( context_t ctx ) : so_5::agent_t( ctx ) {} void so_evt_start() override { std::cout << "Hello, world! This is SObjectizer v.5 (" << SO_5_VERSION << ")" << std::endl; so_environment().stop(); } void so_evt_finish() override { std::cout << "Bye! This was SObjectizer v.5." << std::endl; } }; int main() { try { so_5::launch( []( so_5::environment_t & env ) { env.register_agent_as_coop( "coop", env.make_agent<a_hello_t>() ); } ); } catch( const std::exception & ex ) { std::cerr << "Error: " << ex.what() << std::endl; return 1; } return 0; }
рд▓реЗрдХрд┐рди рдкреБрд░рд╛рдиреЗ рдирд╛рдо "so_5 :: rt" рд╡реИрд╕реЗ рднреА рдЙрдкрд▓рдмреНрдз рдереЗ, рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ s (рдЯрд╛рдЗрдкреЗрдбрд┐рдлреНрд╕) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рдереЗред рдЗрд╕рд▓рд┐рдП SO-5.5 рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдХреЛрдб SO-5.5 рдХреЗ рд╣рд╛рд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рднреА рдХрд╛рдо рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред
рдЕрдВрдд рдореЗрдВ, so_5 :: rt рдирд╛рдо рд╕реНрдерд╛рди 5.6 рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рд╛?
рд╕рдВрднрд╡рддрдГ, SObjectizer рдкрд░ рдХреЛрдб рдЕрдм рдЕрдзрд┐рдХ рдкрдардиреАрдп рд╣реИред рдлрд┐рд░ рднреА, so_5 :: send () so_5 :: rt :: send () рд╕реЗ рдмреЗрд╣рддрд░ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЦреИрд░, рдпрд╣рд╛рдБ, SObjectizer рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╕рд╛рде рдХреА рддрд░рд╣, рд╕рд┐рд░рджрд░реНрдж рдХрдо рд╣реЛ рдЧрдпрд╛ рд╣реИред рдПрдХ рд╕рдордп рдореЗрдВ SObjectizer рдХреА рдШреЛрд╖рдгрд╛рдУрдВ рдХреЗ рдЖрд╕-рдкрд╛рд╕ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЦрд╛рд▓реА рдЪрдЯрдХрд╛рд░реЗ рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рддрд░реНрдХ рдереЗ (рд╕рд╡рд╛рд▓реЛрдВ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░ "рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ C ++ рдореЗрдВ рдЕрднрд┐рдиреЗрддрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ" рдФрд░ "рдЖрдк рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рдирд╛рдо рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕реНрдХрд▓рдХреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ") рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред рдПрдХ рдЬреНрд╡рд▓рдирд╢реАрд▓ рд╡рд┐рд╖рдп рдХрдо рд╣реЛ рдЧрдпрд╛ рдФрд░ рдпрд╣ рдЕрдЪреНрдЫрд╛ рдерд╛ :)
рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдФрд░ рд╕рдВрджреЗрд╢ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдПрдВ
рдХреНрдпрд╛ рдерд╛?
SObjectizer-5.5 рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рднреА, рдбрд┐рд▓реАрд╡рд░_рдореЗрд╕реЗрдЬ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрджреЗрд╢ рднреЗрдЬрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХреЗ mbox рдкрд░ рдХреЙрд▓ рдХрд░рдирд╛ рдерд╛ред рдПрдХ рд▓рдВрдмрд┐рдд рдпрд╛ рдЖрд╡рдзрд┐рдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрд░реНрдпрд╛рд╡рд░рдг .t рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ single_timer / schedule_timer рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЕрдиреНрдп рдПрдЬреЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдо рддреМрд░ рдкрд░ рд╕рдВрдЪрд╛рд▓рди рдХреА рдПрдХ рдкреВрд░реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣рд╛рдБ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рдм рдЪрд╛рд░ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдХреИрд╕реЗ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реЛрдЧрд╛ (std :: make_unique (), рдЬреЛ рдЕрднреА рддрдХ C ++ 11 рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рдерд╛, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ):
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, SObjectizer рдореЗрдВ рд╕рдВрджреЗрд╢ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХрд╛ рдкреНрд░рд╛рд░реВрдк 5.5 рд╕рдВрд╕реНрдХрд░рдг рддрдХ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИред рдЕрдЧрд░ рд╢реБрд░реВ рдореЗрдВ SObjectizer-5 рдореЗрдВ рд╕рднреА рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
void evt_handler(const so_5::event_data_t<Msg> & cmd);
рдлрд┐рд░ рд╕рдордп рдХреЗ рд╕рд╛рде рдЕрдиреБрдордд рд╕реНрд╡рд░реВрдкреЛрдВ рдореЗрдВ рдХреБрдЫ рдФрд░ рдЬреЛрдбрд╝реЗ рдЧрдП:
рдирдП рд╣реИрдВрдбрд▓рд░ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд▓рдЧрд╛рддрд╛рд░ рдкреЗрдВрдЯрд┐рдВрдЧ "const so_5 :: event_data_t <Msg> &" рдЕрднреА рднреА рдПрдХ рдЦреБрд╢реА рд╣реИред рд▓реЗрдХрд┐рди, рджреВрд╕рд░реА рдУрд░, рд╕рд░рд▓ рдкреНрд░рд╛рд░реВрдк рдЯреЗрдореНрдкрд▓реЗрдЯ рдПрдЬреЗрдВрдЯреЛрдВ рдХреЗ рдЕрдиреБрдХреВрд▓ рдирд╣реАрдВ рдереЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
template<typename Msg_To_Process> class my_actor : public so_5::agent_t { void on_receive(const Msg_To_Process & msg) {
рдРрд╕рд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдПрдЬреЗрдВрдЯ рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬрдм Msg_To_Process рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рдХрд╛рд░ рд╣реИ, рди рдХрд┐ рд╕рд┐рдЧреНрдирд▓ рдкреНрд░рдХрд╛рд░ред
рдХреНрдпрд╛ рдмрди рдЧрдпрд╛ рд╣реИ?
рд╢рд╛рдЦрд╛ рел.рел рдореЗрдВ, рднреЗрдЬреЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рдкрд░рд┐рд╡рд╛рд░ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рдФрд░ рдХрд╛рдлреА рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдЖред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рдЕрдкрдиреЗ рдирд┐рдкрдЯрд╛рди рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕ рдХреЛ рд╡реИрд░реЗрдбрд┐рдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдерд╛ред рдФрд░, рджреВрд╕рд░реА рдмрд╛рдд, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╡реИрд░реЗрдбрд┐рдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рдФрд░ рд╕реЗрдВрдб-рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЕрдиреБрднрд╡ рд╕рдВрдЪрд┐рдд рдХрд░рдирд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд┐рднрд┐рдиреНрди рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ: рд╕рд╛рдорд╛рдиреНрдп рдПрдЬреЗрдВрдЯреЛрдВ рдореЗрдВ, рдФрд░ рддрджрд░реНрде рдПрдЬреЗрдВрдЯреЛрдВ рдореЗрдВ, рдФрд░ рдЙрди рдПрдЬреЗрдВрдЯреЛрдВ рдореЗрдВ рдЬреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрдХреНрд╖рд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдмрд╛рд╣рд░реА рдПрдЬреЗрдВрдЯред рдордЪрд┐рди рдХреЗ рд╕рд╛рде рднреЗрдЬрдиреЗ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп (рдиреАрдЪреЗ рдЙрдирдХреА рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреА) рд╕рд╣рд┐рддред
рдлрд╝рдВрдХреНрд╢рдВрд╕ рднреЗрдЬрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, request_future / request_value рдлрд╝рдВрдХреНрд╢рдВрд╕ рджрд┐рдЦрд╛рдИ рджрд┐рдП, рдЬреЛ рдПрдЬреЗрдВрдЯреЛрдВ рдХреЗ рдмреАрдЪ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЕрдм рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
рд╕рдВрджреЗрд╢ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рд╛рд░реВрдк рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдкреНрд░рд╛рд░реВрдк рд╣реИ рдЬрд┐рд╕реЗ рдЕрдЧрд▓реЗ рдореБрдЦреНрдп рд░рд┐рд▓реАрдЬ рдореЗрдВ SObjectizer рдХреЗ рдореБрдЦреНрдп рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдФрд░, рд╕рдВрднрд╡рддрдГ, рдХреЗрд╡рд▓ рдПрдХрдорд╛рддреНрд░)ред рдпрд╣ рдирд┐рдореНрди рдкреНрд░рд╛рд░реВрдк рд╣реИ:
ret_type evt_handler(so_5::mhood_t<Msg> cmd);
рдЬрд╣рд╛рдБ Msg рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рдХрд╛рд░ рдпрд╛ рдПрдХ рд╕рдВрдХреЗрдд рдкреНрд░рдХрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рдкреНрд░рд╛рд░реВрдк рди рдХреЗрд╡рд▓ рд╕рд╛рдорд╛рдиреНрдп рд╡рд░реНрдЧреЛрдВ рдФрд░ рдПрдЬреЗрдВрдЯреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдЬреЗрдВрдЯреЛрдВ рдХреЗ рдмреАрдЪ рдХреА рд░реЗрдЦрд╛ рдХреЛ рдзреБрдВрдзрд▓рд╛ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрджреЗрд╢ / рд╕рдВрдХреЗрдд рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХреЛ рднреА рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ (рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдкрд░рд┐рд╡рд╛рд░):
void my_agent::on_msg(mhood_t<Some_Msg> cmd) { ...
рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рд╛?
рднреЗрдЬрдиреЗ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рд╕рдВрджреЗрд╢ рд╣реИрдВрдбрд▓рд░ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ mhood_t <Msg> рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдЙрд╕ рдХреЛрдб рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рдХреЗрд╡рд▓ рдРрд╕рд╛ рдорд╛рдорд▓рд╛ рд╣реИ рдЬрдм рдпрд╣ рдХреЗрд╡рд▓ рдЗрд╕ рдмрд╛рдд рдкрд░ рдкрдЫрддрд╛рд╡рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ SObjectizer -5 рдкрд░ рдХрд╛рдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рди рддреЛ рд╡реИрд░рд┐рдПрдб рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рдХ рдереЗ, рдФрд░ рди рд╣реА рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЕрдиреБрднрд╡ред рднреЗрдЬреЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ mhood_t рдХрд╛ рдкрд░рд┐рд╡рд╛рд░ рд╢реБрд░реВ рд╕реЗ рд╣реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред рд▓реЗрдХрд┐рди рдЗрддрд┐рд╣рд╛рд╕ рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдЖ рд╣реИ ...
рдХрд╕реНрдЯрдо рд╕рдВрджреЗрд╢ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди
рдХреНрдпрд╛ рдерд╛?
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рд╕рднреА рднреЗрдЬреЗ рдЧрдП рд╕рдВрджреЗрд╢ so_5 :: message_t рд╡рд░реНрдЧ рдХреЗ рд╡рдВрд╢рдЬ рд╡рд░реНрдЧ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП рдереЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
struct my_message : public so_5::message_t { ...
рдЬрдмрдХрд┐ рдкрд╛рдВрдЪрд╡реЗрдВ рдПрд╕реЛрдмрд┐рдЬрд╛рдЗрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рд╕реНрд╡рдпрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд╕реЗ рдХреЛрдИ рдкреНрд░рд╢реНрди рдирд╣реАрдВ рдЙрдард╛ред рдЦреИрд░, рдЗрд╕ рддрд░рд╣ рдФрд░ рдЙрд╕ рддрд░рд╣ред
рд▓реЗрдХрд┐рди рдЬреИрд╕реЗ рд╣реА рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рдпреВрдЬрд░реНрд╕ рдХреЛ рд╕реЛрдмрдЬреЗрд▓рд╛рдЗрдЬрд╝рд░ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдиреЗ рд▓рдЧреА, рд╣рдо рддреБрд░рдВрдд рдПрдХ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд╡рд╛рд▓ рдкрд░ рдЖ рдЧрдП: "рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ so_5 :: message_t рд╕реЗ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛?" рдпрд╣ рдореБрджреНрджрд╛ рдЙрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдерд╛ рдЬрд╣рд╛рдВ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрджреЗрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛ред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ SObjectizer рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рдмрд╛рд╣рд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЗрд╕ рдмрд╛рд╣рд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХрд╛рд░ рдПрдо рд╣реИ, рдЬрд┐рди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рджреЛрд╕реНрддреЛрдВ рдХреЛ M рдФрд░ so_5 :: message_t рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдФрд░ рдХреИрд╕реЗ? рдХреЗрд╡рд▓ рдЕрддрд┐рд░рд┐рдХреНрдд рдЖрд╡рд░рдг рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓рд┐рдЦрдирд╛ рдерд╛ред
рдХреНрдпрд╛ рдмрди рдЧрдпрд╛ рд╣реИ?
рд╣рдордиреЗ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рдХреЛ Sbjectizer-5.5 рдореЗрдВ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реА рд╣реИ, рднрд▓реЗ рд╣реА рд╕рдВрджреЗрд╢ рдкреНрд░рдХрд╛рд░ so_5 :: message_t рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реЛред рдпрд╛рдиреА рдЕрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
so_5::send<std::string>(mbox, "Hello, World!");
So_5 :: message_t рд╡реИрд╕реЗ рднреА рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рд░рд╣рддрд╛ рд╣реИ, рдмрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореИрдЬрд┐рдХ рднреЗрдЬрдиреЗ рдХреЗ рдХрд╛рд░рдг () рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ std :: string рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рд╕реЗ so_5 :: message_t рдирд╣реАрдВ рд╣реИ рдФрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг std рдирд╣реАрдВ рд╣реИ :: string рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╕реЗрдВрдб рдХреЗ рдЕрдВрджрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди so_5 рд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд╛рд░рд┐рд╕ :: message_t, рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ std :: string рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд┐рдд рд╣реИред
рдЗрд╕реА рддрд░рд╣ рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЬрд╛рджреВ рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред рдЬрдм SObjectizer рдкреНрд░рдкрддреНрд░ рдХрд╛ рд╕рдВрджреЗрд╢ рд╣реИрдВрдбрд▓рд░ рджреЗрдЦрддрд╛ рд╣реИ:
void evt_handler(mhood_t<std::string> cmd) {...}
рддрдм SObjectizer рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдВрджреЗрд╢ std :: string object рдХреЗ рд╕рд╛рде рдЖрдПрдЧрд╛ред рдФрд░ рдЖрдкрдХреЛ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рд╕рдВрджреЗрд╢ рд╕реЗ stler :: string рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рд╛?
SObjectizer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдЖрдкрдХреЛ рди рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрджреЗрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдмрд╛рд╣рд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЯрд╛рдЗрдк рдХрд░реЗрдВред рдХрдИ рд▓реЛрдЧреЛрдВ рдиреЗ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдзрдиреНрдпрд╡рд╛рдж рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рд╕рдордп рд▓рд┐рдпрд╛ред
рдкрд░рд╕реНрдкрд░ рд╕рдВрджреЗрд╢
рдХреНрдпрд╛ рдерд╛?
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, SObjectizer-5 рдореЗрдВ, рдХреЗрд╡рд▓ 1: N рдЗрдВрдЯрд░реИрдХреНрд╢рди рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╛рдиреА рднреЗрдЬреЗ рдЧрдП рд╕рдВрджреЗрд╢ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ)ред рднрд▓реЗ рд╣реА рдПрдЬреЗрдВрдЯреЛрдВ рдХреЛ 1: 1 рдореЛрдб рдореЗрдВ рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдлрд┐рд░ рднреА рд╡реЗ рдПрдХ рдмрд╣реБ-рдирд┐рд░реНрдорд╛рддрд╛ / рдмрд╣реБ-рдЙрдкрднреЛрдХреНрддрд╛ рдореЗрд▓рдмреЙрдХреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдпрд╛рдиреА 1 рдореЗрдВ: рдПрди рдореЛрдб, рдмрд╕ рдПрди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрдбрд╝рд╛рдИ рд╕реЗ рдПрдХ рдЗрдХрд╛рдИ рдереАред
рдРрд╕реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдПрдХ рд╕рдВрджреЗрд╢ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдПрдЬреЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рднреЗрдЬреЗ рдЧрдП рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕реАрд▓рд┐рдП рд╕рдВрджреЗрд╢ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╛рд░реВрдк рдереЗ:
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдПрдХ рд╕рд░рд▓ рдФрд░ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдгред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ рдЬрдм рдПрдЬреЗрдВрдЯреЛрдВ рдХреЛ 1: 1 рдореЛрдб рдореЗрдВ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдбреЗрдЯрд╛ рдХрд╛ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдмрддрд╛ рджреЗрдВ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рд╕рд░рд▓ рд╕рдВрджреЗрд╢ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рд╕рднреА рд╕рдВрджреЗрд╢ рд╕рдЦреНрддреА рд╕реЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд╕реНрддреБ рд╣реИрдВ:
struct process_image : public so_5::message_t { std::unique_ptr<gif_image> image_; process_image(std::unique_ptr<gif_image> image) : image_{std::move(image)) {} };
рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдРрд╕рд╛ рд╕рдВрджреЗрд╢ рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдПрдХ рд╕реНрдерд┐рд░ рд╡рд╕реНрддреБ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ process_image :: image_ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реНрд╡рдпрдВ рд╕реЗ рдирд┐рдХрд╛рд▓рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рдЗрд╕ рддрд░рд╣ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рддрдм рд╣рдо рд╕рдВрдХрд▓рдХ рд╕реЗ рдирд┐рдпрдВрддреНрд░рдг рдЦреЛ рджреЗрдВрдЧреЗ рдпрджрд┐ process_image 1: N рдореЛрдб рдореЗрдВ рднреЗрдЬреЗ рдЧрдП рдХрд┐рд╕реА рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рд╣реИред
рдХреНрдпрд╛ рдмрди рдЧрдпрд╛ рд╣реИ?
SObjectizer-5.5 рдореЗрдВ, рдкрд░рд╕реНрдкрд░ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рднреЗрдЬрдирд╛ рдФрд░ рдЬрдм рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдирд╛ рд╣реЛред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
SObjectizer рдХреЗ рд▓рд┐рдП, my_message рдФрд░ mutable_msg <my_message> рджреЛ рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрджреЗрд╢ рд╣реИрдВред
рдЬрдм рдПрдХ рднреЗрдЬрдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рджреЗрдЦрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рддреЛ рднреЗрдЬрдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХрд┐рд╕ рдореЗрд▓рдмреЙрдХреНрд╕ рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрджрд┐ рдпрд╣ рдПрдХ рдмрд╣реБ-рдЙрдкрднреЛрдХреНрддрд╛ рдмреЙрдХреНрд╕ рд╣реИ, рддреЛ рднреЗрдЬрдиреЗ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рдЗрд╕реА рддреНрд░реБрдЯрд┐ рдХреЛрдб рдХреЗ рд╕рд╛рде рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╛рдиреА SObjectizer рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ 1: 1 рдореЛрдб (рдПрдХрд▓-рдЙрдкрднреЛрдХреНрддрд╛ рдореЗрд▓рдмреЙрдХреНрд╕ рдпрд╛ рдорд╛рдЪрд┐рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЬреЛ рдПрдХрд▓-рдЙрдкрднреЛрдХреНрддрд╛ рдореЗрд▓рдмреЙрдХреНрд╕ рдХрд╛ рдПрдХ рд░реВрдк рд╣реЛ) рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдЧрд╛рд░рдВрдЯреА рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, SObjectizer рдЖрд╡рдзрд┐рдХ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд╕реНрдкрд░ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдкрд░ рд░реЛрдХ рд▓рдЧрд╛рддрд╛ рд╣реИред
рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рд╛?
рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдпрд╣ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рдмрджрд▓ рдЧрдпрд╛ред рд╣рдордиреЗ рдЙрдиреНрд╣реЗрдВ
C ++ рд░реВрд╕ -2017 рдореЗрдВ SObjectizer рдХреА рдПрдХ
рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк SObjectizer рдореЗрдВ рдЬреЛрдбрд╝рд╛ред рдЗрд╕ рднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде, "рдареАрдХ рд╣реИ, рдЕрдЧрд░ рд╡реЗ рдкреВрдЫрддреЗ рд╣реИрдВ, рддреЛ рдХрд┐рд╕реА рдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдПрдХ рдХреЛрд╢рд┐рд╢ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред" рдЦреИрд░, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╡реНрдпрд╛рдкрдХ рдорд╛рдВрдЧ рдХреА рдЙрдореНрдореАрдж рдХреЗ рдмрд┐рдирд╛ рдХрд┐рдпрд╛ред рдпрджреНрдпрдкрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ "рд╕реНрдореЛрдХ рдмреИрдореНрдмреВ" рд░рдЦрдирд╛ рдерд╛, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рдпрд╣ рд╕реЛрдЪрддрд╛ рдХрд┐ рдПрд╕рдУ -релрел рдореЗрдВ рдмрд┐рдирд╛ рдЯреВрдЯреЗ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд╕рд╛рде рдкрд░рд╕реНрдкрд░ рд╕рдВрджреЗрд╢ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПред
рд▓реЗрдХрд┐рди рдЬрдм SObjectizer рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдИ рджрд┐рдП, рддреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЙрдирдХреЗ рд▓рд┐рдП рдЗрддрдиреЗ рдХрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирд╣реАрдВ рдереЗред рдФрд░ рдЙрд╕ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рдЕрдХреНрд╕рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ
рд╢реНрд░рд┐рдореНрдк рдбреЗрдореЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣рд╛рдиреА рдХреЗ рджреВрд╕рд░реЗ рднрд╛рдЧ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред рддреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЙрдкрдпреЛрдЧреА рд╕реЗ рдЕрдзрд┐рдХ рдереА, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ SObjectizer рд╕реНрддрд░ рдкрд░ рдкрд░рд╕реНрдкрд░ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рдмрд┐рдирд╛, рдЙрдирдХреЗ рдкрд╛рд╕ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдерд╛ред
рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рд░рд╛рдЬреНрдп рдорд╢реАрди рдПрдЬреЗрдВрдЯ
рдХреНрдпрд╛ рдерд╛?
SObjectizer рдореЗрдВ рдПрдЬреЗрдВрдЯ рдореВрд▓ рд░реВрдк рд╕реЗ рд░рд╛рдЬреНрдп рдорд╢реАрди рдереЗред рдПрдЬреЗрдВрдЯреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд░рд╛рдЬреНрдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░рд╛рдЬреНрдпреЛрдВ рдореЗрдВ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдирд╛ рдерд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
class worker : public so_5::agent_t { state_t st_free{this, "free"}; state_t st_bufy{this, "busy"}; ... void so_define_agent() override {
рд▓реЗрдХрд┐рди рдпреЗ рд╕рд╛рдзрд╛рд░рдг рд░рд╛рдЬреНрдп рдорд╢реАрдиреЗрдВ рдереАрдВред рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рдореЗрдВ рдирд┐рд╣рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ред рд░рд╛рдЬреНрдп рдХреЗ рдкреНрд░рд╡реЗрд╢ рдФрд░ рдирд┐рдХрд╛рд╕ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдерд╛ред рд░рд╛рдЬреНрдп рдореЗрдВ рдмрд┐рддрд╛рдП рд╕рдордп рдкрд░ рдХреЛрдИ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рдерд╛ред
рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд░рд╛рдЬреНрдп рдорд╢реАрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХрд╛ рд╕реАрдорд┐рдд рд╕рдорд░реНрдерди рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд╛ рдФрд░ рд╣рдордиреЗ рдЗрд╕реЗ рдПрдХ рд╡рд░реНрд╖ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рддрдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдПрдХ рд╕рдордп рдкрд░, рд╣рдо рдФрд░ рдЕрдзрд┐рдХ рдЪрд╛рд╣рддреЗ рдереЗред
рдХреНрдпрд╛ рдмрди рдЧрдпрд╛ рд╣реИ?
SObjectizer рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рд░рд╛рдЬреНрдп рдорд╢реАрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИред
рдЕрдм рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рдореЗрдВ рдмрд╛рдВрдЯрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдмрдЪреНрдЪреЗ рд░рд╛рдЬреНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ "рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ" рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред
рдПрдХ рд░рд╛рдЬреНрдп рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдФрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓рд░реНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдЬреЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рд░рд╛рдЬреНрдп рдореЗрдВ рд░рд╣рдиреЗ рдХреЗ рд╕рдордп рдкрд░ рдПрдХ рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрддрд┐рд╣рд╛рд╕ рд░рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдЖрджреЗрд╢ рдирд┐рд░рд╛рдзрд╛рд░ рди рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рдПрдХ рдПрдЬреЗрдВрдЯ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдПрдХ рдЬрдЯрд┐рд▓ рд╢реНрд░реЗрдгреАрдмрджреНрдз рд░рд╛рдЬреНрдп рдорд╢реАрди рдирд╣реАрдВ рд╣реИ (рдорд╛рдирдХ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдХреЛрдб рдмреНрд▓рд┐рдВрдХрд▓рд┐рдВрдЧ рд╣реИ)
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 final : 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( []{ std::cout << "ON" << std::endl; } ) .on_exit( []{ std::cout << "off" << std::endl; } ) .time_limit( std::chrono::milliseconds{1250}, blink_off ); blink_off .time_limit( std::chrono::milliseconds{750}, blink_on ); } };
рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА
рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рдореЗрдВ рдпрд╣ рд╕рдм рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕реЗ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдСрд░реНрдереЛрдЧреЛрдирд▓ рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕ рддрдереНрдп рдХреЗ рджреЛ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдЗрд╕ рд╕рдорд░реНрдерди рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдХрдИ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣рдореЗрдВ рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рдФрд░, рджреВрд╕рд░реА рдмрд╛рдд, рдХрд┐рд╕реА рдиреЗ рдЕрднреА рддрдХ рд░реВрдврд╝рд┐рд╡рд╛рджреА рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд╣рд╛ рд╣реИред рдЬрдм рдкреВрдЫрд╛ рдЧрдпрд╛, рддреЛ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рд╡рд╛рдкрд╕ред
рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рд╛?
рдПрдХ рднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЧрдВрднреАрд░ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдо рдпрд╣рд╛рдВ рд╣реИрдВ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рдФрд░ рдкрдХреНрд╖рдкрд╛рддреА)ред рдЖрдЦрд┐рд░рдХрд╛рд░, рдпрд╣ рдПрдХ рдмрд╛рдд рд╣реИ рдЬрдм, рд╡рд┐рд╖рдп рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЬрдЯрд┐рд▓ рдкрд░рд┐рдорд┐рдд рд░рд╛рдЬреНрдп рдорд╢реАрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╡рд░реНрдХрдЖрд░реНрдб рдХреА рддрд▓рд╛рд╢ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдХреБрдЫ рдХреЛ рд╕рд░рд▓ рдХрд░рддреЗ рд╣реИрдВ, рдХреБрдЫ рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд╛рдХрдд рдЦрд░реНрдЪ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдорд╛рдорд▓рд╛ рд╣реИ рдЬрдм рдЖрдк рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рд╕реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЕрдкрдиреЗ C ++ рдХреЛрдб рд╕реЗ рд▓рдЧрднрдЧ 1-рдЗрдВрдЪ -1 рдореЗрдВ рдореИрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд░рд╛рдЬреНрдп рд╕реЗ / рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ, рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
mchain-s
рдХреНрдпрд╛ рдерд╛?
рдпрд╣ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕реНрдерд┐рддрд┐ рдереАред SObjectizer рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рдЗрд╕рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рдерд╛ рддрд╛рдХрд┐ рдЖрд╡реЗрджрди рдХрд╛ рдХреЗрд╡рд▓ рднрд╛рдЧ SObjectizer рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рдПред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдмрд╛рдХреА рдХреЛрдбреЛрдВ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдЕрднрд┐рдиреЗрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде, рдпрд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ SObjectizer рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ GUI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ SObjectizer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдореБрдЦреНрдп рдереНрд░реЗрдб рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдФрд░ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдиреЙрди-рд╕реЛрдмрд┐рдЬрд╛рдЗрдЬрд╝рд░ рднрд╛рдЧ рд╕реЗ рдПрд╕рдУрдмреАрдЬрд╝рд╛рдЗрдЬрд╝рд░ рднрд╛рдЧ рддрдХ, рдЬрд╛рдирдХрд╛рд░реА рднреЗрдЬрдирд╛ рдЙрддрдирд╛ рд╣реА рд╕рд░рд▓ рд╣реИ: рдпрд╣ рд╕рд╛рдзрд╛рд░рдг рднреЗрдЬрдиреЗ-рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рд▓реЗрдХрд┐рди рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВ рд╕реВрдЪрдирд╛ рдХрд╛ рдкреНрд░рд╕рд╛рд░ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред рд╣рдореЗрдВ рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдпрд╣ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ SObjectizer рднрд╛рдЧреЛрдВ рдФрд░ рд╕реАрдзреЗ рдмреЙрдХреНрд╕ рд╕реЗ рдиреЙрди-SObjectizer рднрд╛рдЧреЛрдВ рдХреЗ рдмреАрдЪ рдХреБрдЫ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рдВрдЪрд╛рд░ рдЪреИрдирд▓ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред
рдХреНрдпрд╛ рдмрди рдЧрдпрд╛ рд╣реИ?
рдЗрд╕рд▓рд┐рдП, рд╕рдВрджреЗрд╢ рд╢реНрд░реГрдВрдЦрд▓рд╛рдПрдВ рдпрд╛, рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рд╕рдВрдХреЗрддрди рдореЗрдВ, рдореЙрдмрд┐рдиреНрд╕ SObjectizer рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдПред
рдорд╛рдЪрд┐рди рдПрдХрд▓-рдЙрдкрднреЛрдХреНрддрд╛ рдореЗрд▓рдмреЙрдХреНрд╕ рдХрд╛ рдРрд╕рд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдЬрд╣рд╛рдБ рд╕рдВрджреЗрд╢ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдорд╛рдЪрд┐рди рд╕реЗ рд╕рдВрджреЗрд╢ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдЬреЗрдВрдЯ рдмрдирд╛рдиреЗ рдФрд░ рдЙрди рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рджреЛ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдп рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдЬреЗрдВрдЯреЛрдВ рдХреЗ рдЕрдВрджрд░ рднреА рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдмрд╛рд╣рд░реА рдПрдЬреЗрдВрдЯреЛрдВ рдХреЛ рднреА: рдкреНрд░рд╛рдкреНрдд () рдФрд░ рдЪрдпрди рдХрд░реЗрдВ ()ред рдкрд╣рд▓рд╛ рдХреЗрд╡рд▓ рдПрдХ рдЪреИрдирд▓ рд╕реЗ рд╕рдВрджреЗрд╢ рдкрдврд╝рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рджреВрд╕рд░рд╛ рдПрдХ рд╕рд╛рде рдХрдИ рдЪреИрдирд▓реЛрдВ рдХреЗ рд╕рдВрджреЗрд╢ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИ:
using namespace so_5; mchain_t ch1 = env.create_mchain(...); mchain_t ch2 = env.create_mchain(...); select( from_all().handle_n(3).empty_timeout(200ms), case_(ch1, [](mhood_t<first_message_type> msg) { ... }, [](mhood_t<second_message_type> msg) { ... }), case_(ch2, [](mhood_t<third_message_type> msg ) { ... }, [](mhood_t<some_signal_type>){...}, ... ));
рд╣рдо рдкрд╣рд▓реЗ рд╣реА рдпрд╣рд╛рдБ рдХрдИ рдмрд╛рд░ рдорд╛рдЪрд┐рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ:
рдЕрдЧрд╕реНрдд 2017 рдореЗрдВ рдФрд░
рдордИ 2018 рдореЗрдВ ред рдЗрд╕рд▓рд┐рдП, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдХрд┐ рдХреИрд╕реЗ mchains рдХреЗ рд╕рд╛рде рдХрд╛рдо рджрд┐рдЦрддрд╛ рд╣реИ, рд╣рдо рдпрд╣рд╛рдВ рдЧрд╣рд░рд╛рдИ рддрдХ рдирд╣реАрдВ рдЧрдПред
рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рд╛?
SObjectizer-5.5 рдореЗрдВ mchains рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рдж, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ SObjectizer рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ "рдЕрднрд┐рдиреЗрддрд╛" рдврд╛рдВрдЪреЗ рд╕реЗ рднреА рдХрдо рд╣реЛ рдЧрдпрд╛, рдЬрд┐рддрдирд╛ рдкрд╣рд▓реЗ рдерд╛ред рдПрдХреНрдЯрд░ рдореЙрдбрд▓ рдФрд░ рдкрдм / рд╕рдм рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрд╕рдУрдмреАрдЬреЗрдирд╛рдЗрдЬрд░ рдиреЗ рд╕реАрдПрд╕рдкреА рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рднреА рдЬреЛрдбрд╝рд╛ (рдЕрдиреБрдХреНрд░рдорд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдореЙрдбрд▓ рдХреЛ рд╕рдВрд╡рд╛рдж рдХрд░рддреЗ рд╣реБрдП)ред Mchains рдЖрдкрдХреЛ SObjectizer рдкрд░ рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рдорд▓реНрдЯреА-рдереНрд░реЗрдбреЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдПрдХреНрдЯрд░ рдХреЗред рдФрд░ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдЬреЛ рд╣рдо рдЦреБрдж рд╕рдордп-рд╕рдордп рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рд╕рдВрджреЗрд╢ рд╕реАрдорд╛ рддрдВрддреНрд░
рдХреНрдпрд╛ рдерд╛?
рдореЙрдбрд▓ рдСрдл рдПрдХреНрдЯрд░реНрд╕ рдХреА рд╕рдмрд╕реЗ рдЧрдВрднреАрд░ рдХрдорд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдУрд╡рд░рд▓реЛрдб рдХреА рдШрдЯрдирд╛ рдХрд╛ рдкреВрд░реНрд╡рд╛рднрд╛рд╕ред рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдвреВрдВрдврдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ рдЬрд╣рд╛рдВ рднреЗрдЬрдиреЗ рд╡рд╛рд▓рд╛ рдЕрднрд┐рдиреЗрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрднрд┐рдиреЗрддрд╛ рдХреЛ рд╕рдВрджреЗрд╢ рддреЗрдЬ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рддреЗрдЬ рдЧрддрд┐ рд╕реЗ рднреЗрдЬрддрд╛ рд╣реИред
рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЕрднрд┐рдиреЗрддрд╛ рдХреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ рдПрдХ рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рдСрдкрд░реЗрд╢рди рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЬрдм "рдлреБрд░реНрддреАрд▓рд╛-рдирд┐рд░реНрдорд╛рддрд╛ рдФрд░ рдирд┐рд░рдВрдХреБрд╢-рдЙрдкрднреЛрдХреНрддрд╛" рдХреА рдПрдХ рдЬреЛрдбрд╝реА рд╣реЛрддреА рд╣реИ, рддреЛ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдЕрднрд┐рдиреЗрддрд╛ рдХреА рдХрддрд╛рд░ рдмрдврд╝ рдЬрд╛рдПрдЧреА, рдЬрдмрдХрд┐ рдХрдо рд╕реЗ рдХрдо рдХрд┐рд╕реА рддрд░рд╣ рдХреА рдореБрдлреНрдд рдореЗрдореЛрд░реА рд╣реИред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреА рдореБрдЦреНрдп рдХрдард┐рдирд╛рдИ рдпрд╣ рд╣реИ рдХрд┐ рд▓рд╛рдЧреВ рдХрд╛рд░реНрдп рдФрд░ рд╡рд┐рд╖рдп рдХреНрд╖реЗрддреНрд░ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рднрд╛рд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрдВрддреНрд░ рддреЗрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреМрди рд╕реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдФрд░ рдЗрд╕рд▓рд┐рдП рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рддреНрдпрд╛рдЧрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ)ред рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреМрди рд╕реЗ рд╕рдВрджреЗрд╢ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдлреЗрдВрдХреЗ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддреЗред рдХрд┐рд╕реЗ рдирд┐рд▓рдВрдмрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХрд┐рддрдирд╛, рдФрд░ рдХрд┐рд╕рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред рдЖрджрд┐, рдЖрджрд┐ред
рдПрдХ рдФрд░ рдХрдард┐рдирд╛рдИ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдореЗрд╢рд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд░рдХреНрд╖рд╛ рддрдВрддреНрд░ рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдХрдИ рдмрд╛рд░, рдпрд╣ рдХреБрдЫ рдЖрджрд┐рдо рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рднрд╛рд╡реА, рд╕реБрд▓рдн "рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░" рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рд╣реИред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдкрдиреЗ рдЕрдзрд┐рднрд╛рд░ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдпрд╣ рдХреЗрд╡рд▓ "рдЕрддрд┐рд░рд┐рдХреНрдд" рд╕рдВрджреЗрд╢ рдмрд╛рд╣рд░ рдлреЗрдВрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдПрдЬреЗрдВрдЯ рдХреЛ рдЗрди рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИредрдХреНрдпрд╛ рдмрди рдЧрдпрд╛ рд╣реИ?
рдмрд╕ рдЗрддрдирд╛ рд╣реИ рдХрд┐ рд╕рд░рд▓ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рдЖрдк рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдЕрдзрд┐рднрд╛рд░ рд╕рдВрд░рдХреНрд╖рдг рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддрдерд╛рдХрдерд┐рдд рд╕рдВрджреЗрд╢ рдХреА рд╕реАрдорд╛ред рдпрд╣ рддрдВрддреНрд░ рдЖрдкрдХреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЫреЛрдбрд╝рдиреЗ, рдпрд╛ рдЙрдиреНрд╣реЗрдВ рдЕрдиреНрдп рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рдУрдВ рдХреЛ рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рдкрд░ рднреА рдЖрд╡реЗрджрди рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
class worker : public so_5::agent_t { public: worker(context_t ctx) : so_5::agent_t{ ctx
рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ редрдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рд╛?
рдпрд╣ рдХрд╣рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рдВрджреЗрд╢ рд╕реАрдорд╛рдУрдВ рдХрд╛ рдЙрджреНрднрд╡ рдХреБрдЫ рдРрд╕рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдиреЗ рдореВрд▓ рд░реВрдк рд╕реЗ SObjectizer рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдХрд╛рд░реНрдп рдпрд╛ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддред рдмрд▓реНрдХрд┐, рдЗрд╕рдХреА рддреБрд▓рдирд╛ рд░рд┐рдЬрд░реНрд╡ рдкреИрд░рд╛рд╢реВрдЯ рд╕реЗ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рдЙрдкрд╛рдп рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЦреБрд╢реА рд╣реЛрддреА рд╣реИ рдХрд┐ рдпрд╣ рдореМрдЬреВрдж рд╣реИредрд╕рдВрджреЗрд╢ рд╡рд┐рддрд░рдг рдЕрдиреБрд░реЗрдЦрдг рддрдВрддреНрд░
рдХреНрдпрд╛ рдерд╛?
SObjectizer-5 рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕ рдерд╛ред рдЬрд┐рд╕рдореЗрдВ рд╕рдВрджреЗрд╢ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ ... рдФрд░ рдпрд╣ рдпрд╛ рддреЛ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХреЛ рдЖрддрд╛ рд╣реИ, рдпрд╛ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИредрдпрджрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдХрд╛рд░рдг рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдПрдХ рд░реЛрдорд╛рдВрдЪрдХ рдЦреЛрдЬ рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдХрд╛рд░рдг рддреБрдЪреНрдЫ рд╣реИрдВ: рдпрд╛ рддреЛ рд╕рдВрджреЗрд╢ рдЧрд▓рдд рдПрдордмреЙрдХреНрд╕ рдореЗрдВ рднреЗрдЬрд╛ рдЧрдпрд╛ рдерд╛, рдпрд╛ рд╕рджрд╕реНрдпрддрд╛ рдирд╣реАрдВ рдмрдирд╛рдИ рдЧрдИ рдереА (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдПрдЬреЗрдВрдЯ рдХреЗ рдПрдХ рд░рд╛рдЬреНрдп рдореЗрдВ рдПрдХ рд╕рджрд╕реНрдпрддрд╛ рдмрдирд╛рдИ рдереА, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛)ред рдЬрдм рдХреЛрдИ рд╕рдВрджреЗрд╢ рдЕрдзрд┐рднрд╛рд░ рд╕реБрд░рдХреНрд╖рд╛ рддрдВрддреНрд░ рджреНрд╡рд╛рд░рд╛ рдЦрд╛рд░рд┐рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдорд╛рдорд▓реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВредрд╕рдорд╕реНрдпрд╛ рдпрд╣ рдереА рдХрд┐ рд╕рдВрджреЗрд╢ рд╡рд┐рддрд░рдг рддрдВрддреНрд░ SObjectizer рд░рди-рдЯрд╛рдЗрдо рдХреА Giblets рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЫрд┐рдкрд╛ рд╣реБрдЖ рдерд╛ рдФрд░ рдЗрд╕рд▓рд┐рдП, SObjectizer рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рднреА рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдерд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рдирд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдиреМрд╕рд┐рдЦрд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рдХреА рддреБрдЪреНрдЫ рдЧрд▓рддрд┐рдпреЛрдВ рдХреА рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдмрдирд╛рдИредрдХреНрдпрд╛ рдмрди рдЧрдпрд╛ рд╣реИ?
SObjectizer-5.5 рдореЗрдВ, рд╕рдВрджреЗрд╢ рд╡рд┐рддрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЯреНрд░реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрдВрддреНрд░ рдЬрд┐рд╕реЗ рд╕рдВрджреЗрд╢ рд╡рд┐рддрд░рдг рдЕрдиреБрд░реЗрдЦрдг (рдпрд╛ рдмрд╕ msg_tracing) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЕрдВрддрд┐рдо рд░реВрдк рджрд┐рдпрд╛ рдЧрдпрд╛ред рдЗрд╕ рддрдВрддреНрд░ рдФрд░ рдЗрд╕рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ редрдЗрд╕рд▓рд┐рдП рдЕрдм, рдпрджрд┐ рд╕рдВрджреЗрд╢ рдбрд┐рд▓реАрд╡рд░реА рдкрд░ рдЦреЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдмрд╕ msg_tracing рдХреЛ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИредрдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рд╛?
SObjectizer рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдбрд┐рдмрдЧрд┐рдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрд╣реБрдд рд╕рд░рд▓ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрдЦрдж рдмрди рдЧрдП рд╣реИрдВред рдЦреБрдж рдХреЗ рд▓рд┐рдП рднреА редEnv_infrastructure рдФрд░ рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб env_infrastructureures рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛
рдХреНрдпрд╛ рдерд╛?
рд╣рдордиреЗ рдмрд╣реБ-рд╕реВрддреНрд░реАрдп рдХреЛрдб рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ SObjectizer рдХреЛ рдПрдХ рдЙрдкрдХрд░рдг рдорд╛рдирд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, SObjectizer-5 рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛редрдпрд╣ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп SObjectizer рдХреЗ рдЖрдВрддрд░рд┐рдХ рдХреА рд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП SObjectizer рдХреЗ рдЕрдВрджрд░ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рддреЛ рдпрд╣ рд╕реНрд╡рдпрдВ SObjectizer рдХреЗ рдЕрдВрджрд░ рдХрдИ рд╕рд╣рд╛рдпрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдзрд╛рдЧреЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ (рдЯрд╛рдЗрдорд░ рдХреА рд╕рд░реНрд╡рд┐рд╕рд┐рдВрдЧ рдФрд░ рдПрдЬреЗрдВрдЯ рд╕рд╣рдпреЛрдЧреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдЬреИрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)редрдпрд╛рдиреА
SObjectizer рдорд▓реНрдЯреА-рдереНрд░реЗрдбреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдФрд░ рдорд▓реНрдЯреА-рдереНрд░реЗрдбреЗрдб рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓ рд╣реИредрд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ SObjectizer рдХрд╛ рдЙрдкрдпреЛрдЧ "рдЬрдВрдЧрд▓реА рдореЗрдВ" рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреА рдЦреЛрдЬ рдХреА рдЧрдИ рдереА рдЬрд╣рд╛рдБ рдЗрд╕рдХреЗ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдЕрднрд┐рдиреЗрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрд╛рдлреА рдХрдард┐рди рдерд╛ред рд▓реЗрдХрд┐рди, рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рд╕рднреА рдХрд╛рдо рдФрд░, рдПрдХ рд╣реА рдХрд╛рд░реНрдп рдкреНрд░рд╡рд╛рд╣ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛редрдФрд░ рд╣рдордиреЗ рдПрдХ рдмрд╣реБрдд рд╣реА рджрд┐рд▓рдЪрд╕реНрдк рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛: рдХреНрдпрд╛ рдПрдХ рдПрдХрд▓ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдзрд╛рдЧреЗ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SObjectizer рдХреЛ рд╕рд┐рдЦрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?рдХреНрдпрд╛ рдмрди рдЧрдпрд╛ рд╣реИ?
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИредрдЗрд╕рдиреЗ рд╣рдореЗрдВ рдмрд╣реБрдд рдкреИрд╕рд╛ рдЦрд░реНрдЪ рдХрд┐рдпрд╛, рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рдФрд░ рдкреНрд░рдпрд╛рд╕ рд▓рдЧрд╛ред рд▓реЗрдХрд┐рди рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛редрдкрд░реНрдпрд╛рд╡рд░рдг рдЕрд╡рд╕рдВрд░рдЪрдирд╛ рдЬреИрд╕реА рдЕрд╡рдзрд╛рд░рдгрд╛ рдкреЗрд╢ рдХреА рдЧрдИ (рдпрд╛ рдереЛрдбрд╝рд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк рдореЗрдВ env_infrastructure)ред Env_infrastructure рдиреЗ рдЖрдВрддрд░рд┐рдХ SObjectizer рд░рд╕реЛрдИ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХрд╛ рдХрд╛рдо рд╕рдВрднрд╛рд▓рд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЯрд╛рдЗрдорд░ рдХреА рд╕реЗрд╡рд╛, рдкрдВрдЬреАрдХрд░рдг рдФрд░ рд╕рд╣рдХрд╛рд░реА рд╕рдорд┐рддрд┐рдпреЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдЬреИрд╕реЗ рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛редSObjectizer рдХреЗ рд▓рд┐рдП, рдХрдИ рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб env_infrastructureures рд╡рд┐рдХрд▓реНрдк рдмрдирд╛рдП рдЧрдП рд╣реИрдВред рдЗрд╕рдиреЗ рд╣рдореЗрдВ SObjectizer рдкрд░ рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА, рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ рд╕рд╛рдорд╛рдиреНрдп рдПрдЬреЗрдВрдЯ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдирд┐рдпрдорд┐рдд рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВредрд╣рдордиреЗ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрд╛рдд рдХреА ред редрдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рд╛?
рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдЬреЛ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рджреМрд░рд╛рди рд╣реБрдИ рдереА, рд╡рд╣ рд╣рдорд╛рд░реЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯреЛрдВ рдХрд╛ рдЯреВрдЯрдирд╛ рдерд╛ред SObjectizer рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдХрднреА рднреА рд╕рдорд╛рди рдирд╣реАрдВ рд╣реЛрдЧреАред рдЗрддрдиреЗ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ SObjectizer рдХреЛ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдХреЛрдб рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ ред рдФрд░ рдлрд┐рд░ рдлрд┐рд░ рд╕реЗ! рдФрд░ рдкрд╛рддреЗ рд╣реИрдВ рдХрд┐ SObjectizer рдкрд░ рд╕рд┐рдВрдЧрд▓ рдереНрд░реЗрдбреЗрдб рдХреЛрдб рднреА рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬреАрд╡рди рдЖрд╢реНрдЪрд░реНрдп рд╕реЗ рднрд░рд╛ рд╣реИредрд░рди-рдЯрд╛рдЗрдо рдирд┐рдЧрд░рд╛рдиреА рдЙрдкрдХрд░рдг
рдХреНрдпрд╛ рдерд╛?
рд╕рдВрджреЗрд╢ рд╡рд┐рддрд░рдг рддрдВрддреНрд░ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рди рдХреЗрд╡рд▓ SObjectizer-5 рдПрдХ рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕ рдерд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдерд╛ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЖрд╡реЗрджрди рдХреЗ рдЕрдВрджрд░ рдХрд┐рддрдиреЗ рдПрдЬреЗрдВрдЯ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдХрд┐рддрдиреЗ рдФрд░ рдХреМрди рд╕реЗ рдбрд┐рд╕реНрдкреИрдЪрд░ рдмрдирд╛рдП рдЧрдП рд╣реИрдВ, рдХрд┐рддрдиреЗ рдХрд╛рдо рдХреЗ рдзрд╛рдЧреЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдХрд┐рддрдиреЗ рд╕рдВрджреЗрд╢ рдбрд┐рд╕реНрдкреИрдЪрд░реЛрдВ рдХреА рдХрддрд╛рд░ рдореЗрдВ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЖрджрд┐редрдпрд╣ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА 24/7 рдЪрд▓ рд░рд╣реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред рд▓реЗрдХрд┐рди рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕рдордп-рд╕рдордп рдкрд░ рдпрд╣ рднреА рд╕рдордЭрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдХрддрд╛рд░реЗрдВ рдмрдврд╝рддреА рд╣реИрдВ рдпрд╛ рдпрджрд┐ рдПрдЬреЗрдВрдЯреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝рддреА / рдШрдЯрддреА рд╣реИредрджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рд╣рд╛рде рдРрд╕реА рд╕реВрдЪрдирд╛рдУрдВ рдХреЛ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SObjectizer рдореЗрдВ рдзрди рдЬреЛрдбрд╝рдиреЗ рдХреА рдмрд╛рдд рдирд╣реАрдВ рдкрд╣реБрдВрдЪреАредрдХреНрдпрд╛ рдмрди рдЧрдпрд╛ рд╣реИ?
SObjectizer-5.5 рдХреЗ рдПрдХ рдмрд┐рдВрджреБ рдкрд░ , рдЙрдкрдХрд░рдг рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ SObjectizer рдХреЗ рдЖрдВрддрд░рд┐рдХ рднрд╛рдЧ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рджрд┐рдЦрд╛рдИ рджрд┐рдП ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд░рди-рдЯрд╛рдЗрдо рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдЕрдХреНрд╖рдо рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдПрдордмреЙрдХреНрд╕ рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ рдПрдЬреЗрдВрдЯреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд╕рд╣рдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрдЧреА, рдЯрд╛рдЗрдорд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдбрд┐рд╕реНрдкреИрдЪрд░реЛрдВ рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╡рд╛рд▓реЗ рдХрд╛рдо рдХреЗ рдереНрд░реЗрдбреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ (рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрдЧреА) рдХрддрд╛рд░реЛрдВ рдореЗрдВ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рдЗрди рдзрд╛рдЧреЛрдВ рд╕реЗ рдмрдВрдзреЗ рдПрдЬреЗрдВрдЯреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛)редрд╕рд╛рде рд╣реА, рд╕рдордп рдХреЗ рд╕рд╛рде, рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЗ рдЕрдВрджрд░ рдХрд┐рддрдиреЗ рд╕рдордп рдПрдЬреЗрдВрдЯ рдЦрд░реНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ред рдпрд╣ рдЖрдкрдХреЛ рдЙрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрдм рдХреБрдЫ рдПрдЬреЗрдВрдЯ рдмрд╣реБрдд рдзреАрдорд╛ рд╣реИ (рдпрд╛ рдЕрд╡рд░реБрджреНрдз рдХреЙрд▓ рдкрд░ рд╕рдордп рдмрд░реНрдмрд╛рдж рдХрд░ рд░рд╣рд╛ рд╣реИ)редрдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рд╛?
рд╣рдорд╛рд░реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рд░рди-рдЯрд╛рдЗрдо рдирд┐рдЧрд░рд╛рдиреА рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддрдм рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдорд╣рддреНрд╡ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рд╣реЛрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рддрдВрддреНрд░ рдХреЗ рдмрд┐рдирд╛ рдпрд╣ рдЕрд╕рдВрднрд╡ рд╣реИ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдпрд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓) рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИредрддреЛ рдпрд╣ "рдЖрдк рдпрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ" рд╢реНрд░реЗрдгреА рд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐, рд╣рдорд╛рд░реА рд░рд╛рдп рдореЗрдВ, рддреБрд░рдВрдд рд╕рд╛рдзрди рдХреЛ рджреВрд╕рд░реЗ рднрд╛рд░ рд╡рд░реНрдЧ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреА рд╣реИред рдХреНрдпреЛрдВрдХрд┐
"рдШреБрдЯрдиреЗ рдкрд░" рдПрдХ рдЕрднрд┐рдиреЗрддрд╛ рдврд╛рдВрдЪреЗ рдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдмрдирд╛рдирд╛ рдЗрддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдмрд╣реБрддреЛрдВ рдиреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдХрдИ рдФрд░ рднреА рдХрд░реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЕрдкрдиреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд░рди-рдЯрд╛рдЗрдо рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдЬреИрд╕реА рдЪреАрдЬрд╝ рд╕реЗ рд▓реИрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ... рдЕрдм рддрдХ, рд╕рднреА рдШреБрдЯрдиреЗ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдбреНрд░рд╛рдлреНрдЯ рдЬреАрд╡рд┐рдд рдирд╣реАрдВ рд╣реИрдВредрдФрд░ рдПрдХ рд▓рд╛рдЗрди рдореЗрдВ рдПрдХ рдмрд╛рдд рдФрд░
рдЪрд╛рд░ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП, рдПрд╕рдУрдмреАрдЬреЗрд▓рд╛рдЗрдЬрд╝рд░-5.5 рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдирд╡рд╛рдЪрд╛рд░ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдП рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рд╕рд╛рд░рд╛рдВрд╢ рдореЗрдВ рднреА рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реНрдерд╛рди рд▓реЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рдкрдВрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВред рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХреНрд░рдо рдореЗрдВ, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗредSObjectizer-5.5 CMake рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рддрд╛ рд╣реИредрдЕрдм SObjectizer-5 рдХреЛ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдФрд░ рдПрдХ рд╕реНрдерд┐рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредSObjectizer-5.5 рдЕрдм рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ Android рдкрд░ рдЪрд▓рддрд╛ рд╣реИ (рджреЛрдиреЛрдВ CrystaX NDK рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдФрд░ рдирд╡реАрдирддрдо Android NDK рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ)редрдирд┐рдЬреА рдкреНрд░реЗрд╖рдгрдХрд░реНрддрд╛ рд╕рд╛рдордиреЗ рдЖрдП рд╣реИрдВред рдЕрдм рдЖрдк рдРрд╕реЗ рдбрд┐рд╕реНрдкреИрдЪрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХреЛрдИ рдФрд░ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реИредрд╡рд┐рддрд░рдг рдлрд╝рд┐рд▓реНрдЯрд░ рддрдВрддреНрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдЕрдм, MPMC-mboxes рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрддреЗ рд╕рдордп, рдЖрдк рдЙрди рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд╡рд┐рддрд░рдг рдкрд░ рд░реЛрдХ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рдирдХреА рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдЖрдкрдХреА рд░реБрдЪрд┐ рдирд╣реАрдВ рд╣реИредрд╕рд╣рдХрд╛рд░рд┐рддрд╛ рдмрдирд╛рдиреЗ рдФрд░ рдкрдВрдЬреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдХрд╛рдлреА рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ: рд╡рд┐рдзрд┐рдпрд╛рдБ_рдХреЛрдк / рдкрд░рд┐рдЪрдп_рдЪрд┐рд▓реНрдб_рдХреЛрдк, рдореЗрдХ_рдПрдЬреЗрдВрдЯ / рдореЗрдХ_рдПрдЧреЗрдВрдЯ_рд╡рд┐рде_рдмрд┐рдВрдбрд░ рдФрд░ рд╡рд╣ рд╕рдмредрд▓реЙрдХ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдПрдХ рдХрд╛рд░рдЦрд╛рдиреЗ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рджрд┐рдЦрд╛рдИ рджреА рдФрд░ рдЕрдм рдЖрдк рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ рдХрд┐рди рд▓реЙрдХ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдореНрдпреВрдЯреЗрдХреНрд╕, рд╕реНрдкрд┐рдирд▓реЙрдХ, рд╕рдВрдпреБрдХреНрдд рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░)редрд▓рд┐рдкрдЯреЗ_env_t рд╡рд░реНрдЧ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЕрдм рдЖрдк рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ SObjectizer рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рди рдХреЗрд╡рд▓ so_5 :: рд▓реЙрдиреНрдЪ (!) рдХреЗ рд╕рд╛рдередStop_guards рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рджрд┐рдЦрд╛рдИ рджреА рдФрд░ рдЕрдм рдЖрдк SObjectizer рдХреА рд╢рдЯрдбрд╛рдЙрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк SObjectizer рдХреЛ рддрдм рддрдХ рд░реБрдХрдиреЗ рд╕реЗ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдХреБрдЫ рдПрдЬреЗрдВрдЯреЛрдВ рдиреЗ рдЕрдкрдирд╛ рдЖрд╡реЗрджрди рдХрд╛рд░реНрдп рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░ рд▓рд┐рдпрд╛ рд╣реЛредрдЕрдм рдЖрдк рдЙрди рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдЬреЗрдВрдЯ рдХреЛ рджрд┐рдП рдЧрдП рдереЗ, рд▓реЗрдХрд┐рди рд╡реЗ рдПрдЬреЗрдВрдЯ (рддрдерд╛рдХрдерд┐рдд dead_letter_handlers) рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рдереЗредрд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╡рд┐рд╢реЗрд╖ "рд▓рд┐рдлрд╛рдлреЗ" рдореЗрдВ рд▓рдкреЗрдЯрдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдерд╛ред рд▓рд┐рдлрд╛рдлреЗ рд╕рдВрджреЗрд╢ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХреЛ рд╕рдВрджреЗрд╢ рджреЗрдиреЗ рдкрд░ рдХреБрдЫ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред5.5.0 рд╕реЗ 5.5.23 рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ
рдХреЛрдб / рдкрд░реАрдХреНрд╖рдгреЛрдВ / рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдмрдиреЗ рдорд╛рд░реНрдЧ рдХреЛ рджреЗрдЦрдирд╛ рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдпрд╣рд╛рдБ рдХреНрд▓реЛрдХ рдпреВрдЯрд┐рд▓рд┐рдЯреА рд╣рдореЗрдВ SObjectizer-5.5.0 рдХрд░реНрдиреЗрд▓ рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рддреА рд╣реИ: -------------------------------------------------- -----------------------------
рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓реЗрдВ рд░рд┐рдХреНрдд рдЯрд┐рдкреНрдкрдгреА рдХреЛрдб
-------------------------------------------------- -----------------------------
рд╕реА / рд╕реА ++ рд╣реИрдбрд░ 58 2119 5156 5762
рд╕реА ++ 39 1167 779 4759
рд░реВрдмреА 2 30 2 75
-------------------------------------------------- -----------------------------
рдПрд╕рдпреВрдПрдо: 99 3316 5937 10596
-------------------------------------------------- -----------------------------
рдФрд░ рдпрд╣рд╛рдБ рдПрдХ рд╣реА рдмрд╛рдд рд╣реИ, рд▓реЗрдХрд┐рди v.5.5.23 рдХреЗ рд▓рд┐рдП (рдЬрд┐рдирдореЗрдВ рд╕реЗ 1147 рд▓рд╛рдЗрдиреЗрдВ рд╡реИрдХрд▓реНрдкрд┐рдХ-рд▓рд╛рдЗрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛрдб рд╣реИрдВ): -------------------------------------------------- -----------------------------
рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓реЗрдВ рд░рд┐рдХреНрдд рдЯрд┐рдкреНрдкрдгреА рдХреЛрдб
-------------------------------------------------- -----------------------------
рд╕реА / рд╕реА ++ рд╣реИрдбрд░ 133 6279 22173 21068
рд╕реА ++ 53 2498 2760 10398
CMake 2 29 0 177
рд░реВрдмреА 4 53 2 129
-------------------------------------------------- -----------------------------
рдПрд╕рдпреВрдПрдо: 192 8859 24935 31772
-------------------------------------------------- -----------------------------
V.5.5.0 рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдорд╛рддреНрд░рд╛: -------------------------------------------------- -----------------------------
рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓реЗрдВ рд░рд┐рдХреНрдд рдЯрд┐рдкреНрдкрдгреА рдХреЛрдб
-------------------------------------------------- -----------------------------
рд╕реА ++ 84 2510 390 11540
рд░реВрдмреА 162 496 0 1054
рд╕реА / рд╕реА ++ рд╣реИрдбрд░ 1 11 0 32
-------------------------------------------------- -----------------------------
рдПрд╕рдпреВрдПрдо: 247 3017 390 12626
-------------------------------------------------- -----------------------------
V.5.5.23 рдХреЗ рд▓рд┐рдП рдЯреЗрд╕реНрдЯ: -------------------------------------------------- -----------------------------
рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓реЗрдВ рд░рд┐рдХреНрдд рдЯрд┐рдкреНрдкрдгреА рдХреЛрдб
-------------------------------------------------- -----------------------------
C ++ 324 7345 1305 35231
рд░реВрдмреА 675 2,353 0 4,671
CMake 338 43 0 955
рд╕реА / рд╕реА ++ рд╣реИрдбрд░ 11 107 3 448
-------------------------------------------------- -----------------------------
рдПрд╕рдпреВрдПрдо: 1348 9848 1308 41305
рдЦреИрд░, v.5.5.0 рдХреЗ рдЙрджрд╛рд╣рд░рдг: -------------------------------------------------- -----------------------------
рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓реЗрдВ рд░рд┐рдХреНрдд рдЯрд┐рдкреНрдкрдгреА рдХреЛрдб
-------------------------------------------------- -----------------------------
рд╕реА ++ 27 765 463 3322
рд░реВрдмреА 28 95 0 192
-------------------------------------------------- -----------------------------
рдПрд╕рдпреВрдПрдо: 55 860 463 3514
рд╡реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА v.5.5.23 рдХреЗ рд▓рд┐рдП: -------------------------------------------------- -----------------------------
рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓реЗрдВ рд░рд┐рдХреНрдд рдЯрд┐рдкреНрдкрдгреА рдХреЛрдб
-------------------------------------------------- -----------------------------
рд╕реА ++ 67 2141 2061 9341
рд░реВрдмреА 133 451 0 868
CMake 67 93 0 595
рд╕реА / рд╕реА ++ рд╣реИрдбрд░ 1 12 11 32
-------------------------------------------------- -----------------------------
рдПрд╕рдпреВрдПрдо: 268 2697 2072 10836
рд▓рдЧрднрдЧ рд╣рд░ рдЬрдЧрд╣, рд▓рдЧрднрдЧ рддреАрди рдЧреБрдирд╛ рдХреА рд╡реГрджреНрдзрд┐редрдФрд░ SObjectizer рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдХреА рдорд╛рддреНрд░рд╛ рд╢рд╛рдпрдж рдФрд░ рднреА рдмрдврд╝ рдЧрдИ рд╣реИредрдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдХреА рдпреЛрдЬрдирд╛рдПрдВ (рдФрд░ рди рдХреЗрд╡рд▓)
рд╕рдВрд╕реНрдХрд░рдг 5.5.23 рдХреА рд░рд┐рд╣рд╛рдИ рдХреЗ рдмрд╛рдж SObjectizer рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рд┐рдХрд╛рд╕ рдпреЛрдЬрдирд╛рдПрдВ рд▓рдЧрднрдЧ рдПрдХ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдпрд╣рд╛рдВ рдмрддрд╛рдИ рдЧрдИ рдереАрдВ ред рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ, рд╡реЗ рдирд╣реАрдВ рдмрджрд▓реЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг 5.6.0, рдЬрд┐рд╕рдХрд╛ рд░рд┐рд▓реАрдЬрд╝ 2019 рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдирд┐рдпреЛрдЬрд┐рдд рд╣реИ, рдХреЛ рд╕реЛрдмреНрдЬреЗрд▓рд╛рдЗрдЬрд╝рд░ рдХреА рдЕрдЧрд▓реА рд╕реНрдерд┐рд░ рд╢рд╛рдЦрд╛ рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЗрд╕ рддрдереНрдп рдХреЗ рд╕рд╛рде рдХрд┐ 2019 рдХреЗ рджреМрд░рд╛рди, рдПрд╕рдУрдмреАрдЬреЗрд▓рд╛рдЗрдЬрд╝рд░ 5.6 рд╢рд╛рдЦрд╛ рдХреЗ рддрд╣рдд рдмрд┐рдирд╛ рдХрд┐рд╕реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдЧрд╛редрдпрд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдЧрд╛ рдЬреЛ рдЕрдм рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ SO-5.5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдзреАрд░реЗ-рдзреАрд░реЗ рдЗрд╕ рдбрд░ рдХреЗ рдмрд┐рдирд╛ SO-5.6 рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЙрдиреНрд╣реЗрдВ SO-5.7 рдкрд░ рднреА рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рд╣реЛрдЧрд╛редрд╕рдВрд╕реНрдХрд░рдг 5.7, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЦреБрдж рдХреЛ SO-5.5 рдФрд░ SO-5.6 рдХреЗ рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рд╕реЗ рдХрд╣реАрдВ рднреА рднрдЯрдХрдиреЗ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, 2019 рдореЗрдВ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ред рд╕реНрдерд┐рд░реАрдХрд░рдг рдФрд░ рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде, рдЕрдЧрд░ рд╕рдмрдХреБрдЫ рдареАрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 2020 рдореЗрдВредрдирд┐рд╖реНрдХрд░реНрд╖
рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдЙрди рд╕рднреА рдХрд╛ рд╢реБрдХреНрд░рд┐рдпрд╛ рдЕрджрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рдмрд╛рд░ рдПрд╕рдУрдмреАрдЬреЗрдирд╛рдЗрдЬрд╝рд░ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХреАред рдФрд░ рдореИрдВ рдЙрди рд╕рднреА рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж рдХрд╣рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рд╕реЛрдмрд┐рдЬрд╛рдЗрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣рдореЗрд╢рд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд░рд╣реА рд╣реИредрд╣рдо рдЙрди рд▓реЛрдЧреЛрдВ рд╕реЗ рдХрд╣рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЕрднреА рддрдХ рд╕реЛрдмрд┐рдЬрд╛рдЗрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ: рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдВред рдпрд╣ рдЙрддрдирд╛ рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдирд╛ рдпрд╣ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИредрдпрджрд┐ рдЖрдкрдХреЛ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ рдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ SObjectizer рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ - рддреЛ рд╣рдореЗрдВ рдмрддрд╛рдПрдВред рд╣рдо рд╣рдореЗрд╢рд╛ рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ рд╕реБрдирддреЗ рд╣реИрдВред рдФрд░, рдЕрдЧрд░ рдпрд╣ рд╣рдорд╛рд░реА рд╢рдХреНрддрд┐ рдореЗрдВ рд╣реИ, рддреЛ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдЗрдЪреНрдЫрд╛рдУрдВ рдХреЛ рдЬреАрд╡рди рдореЗрдВ рд▓рд╛рддреЗ рд╣реИрдВред