SObjectizer-5.5.23 рдореЗрдВ рдирдпрд╛: рдЗрдЪреНрдЫрд╛ рдкреВрд░реНрддрд┐ рдпрд╛ рдкреЗрдВрдбреЛрд░рд╛ рдмреЙрдХреНрд╕?



рдпрд╣ рд▓реЗрдЦ рдПрдХ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдПрдХ рдкреНрд░рддрд┐рдмрд┐рдВрдм рд▓реЗрдЦ рдХреА рдПрдХ рдирд┐рд░рдВрддрд░рддрд╛ рд╣реИ, " рдХреНрдпрд╛ рдкреБрд░рд╛рдиреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рд╣реИ? рд╕реЛрдмрд┐рдЬрд╛рдЗрдЬрд╝рд░ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкрд╕рдВрдж рдХреА рдкреАрдбрд╝рд╛ "ред рдЙрд╕ рд▓реЗрдЦ рдореЗрдВ рдЙрд╕ рдХрд╛рд░реНрдп рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рд╕реЗ рд╣рдо SObjectizer рдХреЗ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ, рдЗрд╕рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рджреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреА рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ред

рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рд╕рдордп рдмреАрддрддрд╛ рдЧрдпрд╛, рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ SObjectizer рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛ so_5_extra , рдкрд╣рд▓реЗ рд╕реЗ рд╣реА " рдЧрд╣рд░реА рд╕рд╛рдБрд╕ рд▓реЗрдиреЗ " рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рд╕рдЪрдореБрдЪ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдЬ рд╣рдо рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЗрд╕рдХреЗ рдХрд╛рд░рдг рдХреНрдпрд╛ рд╣реБрдЖред рдпрджрд┐ рдХреЛрдИ рдпрд╣ рдЬрд╛рдирдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реИ рдХрд┐ C ++ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд▓рд╛рдЗрд╡, рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдФрд░ рдУрдкрди рдПрдХреНрдЯрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд╕реЗ рдПрдХ рдХреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдмрд┐рд▓реНрд▓реА рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд╛рдЧрдд рд╣реИред

рдпрд╣ рд╕рдм рдХреИрд╕реЗ рд╢реБрд░реВ рд╣реБрдЖ?


рдпрд╣ рд╕рднреА рдЯрд╛рдЗрдорд░ рдХреА рдЧрд╛рд░рдВрдЯреА рд░рджреНрдж рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдЖред рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рджреЗрд░реА рдпрд╛ рдЖрд╡рдзрд┐рдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕рдВрджреЗрд╢ рдХреА рдбрд┐рд▓реАрд╡рд░реА рдХреЛ рд░рджреНрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

auto timer_id = so_5::send_periodic<my_message>(my_agent, 10s, 10s, ...); ... // - . // ,    my_message    . timer_id.release(); //      my_message. 

рдЯрд╛рдЗрдорд░_рдЖрдИрдбреА.release () рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж , рдЯрд╛рдЗрдорд░ рдЕрдм my_message рд╕рдВрджреЗрд╢ рдХреЗ рдирдП рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдирд╣реАрдВ рднреЗрдЬреЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЬреЛ рдкреНрд░рддрд┐рдпрд╛рдБ рдкрд╣рд▓реЗ рд╣реА рднреЗрдЬреА рдЬрд╛ рдЪреБрдХреА рд╣реИрдВ рдФрд░ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рдУрдВ рдХреА рдХрддрд╛рд░ рдореЗрдВ рд╣реИрдВ рд╡реЗ рдХрд╣реАрдВ рдирд╣реАрдВ рдЬрд╛рдПрдБрдЧреАред рд╕рдордп рдХреЗ рд╕рд╛рде, рдЙрдиреНрд╣реЗрдВ рдЗрди рд╕рдорд╛рди рдХрддрд╛рд░реЛрдВ рд╕реЗ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдПрдЬреЗрдВрдЯреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдпрд╣ рд╕рдорд╕реНрдпрд╛ SObjectizer-5 рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдПрдХ рдкрд░рд┐рдгрд╛рдо рд╣реИ рдФрд░ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдПрдХ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ рдХрд┐ SObjectizer рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдХрддрд╛рд░реЛрдВ рд╕реЗ рдирд╣реАрдВ рдирд┐рдХрд╛рд▓ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЗрд╕рд▓рд┐рдП рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ SObjectizer рдореЗрдВ рдХрддрд╛рд░ рдбрд┐рд╕реНрдкреИрдЪрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рдбрд┐рд╕реНрдкреИрдЪрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВ, рдЙрдирдХреА рдХрддрд╛рд░реЗрдВ рднреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдпреЛрдЬрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВред рдЗрд╕рдореЗрдВ рдбрд┐рд╕реНрдкреИрдЪрд░ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рдПрд╕рдУрдмреАрдЬреЗрдирд╛рдЗрдЬрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдПрд╕рдУрдмреАрдЬреЗрдирд╛рдЗрдЬрд░, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣ рдирд╣реАрдВ рдЬрд╛рди рд╕рдХрддреЗ рдХрд┐ рдпреЗ рдбрд┐рд╕реНрдкреИрдЪрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореВрд▓ SObjectizer рдЯрд╛рдЗрдорд░ рдореЗрдВ рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрддреА рд╣реИред рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдмрд╣реБрдд рдЦрд░рд╛рдм рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рджреЗрдЦрднрд╛рд▓ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╕рд┐рд░реНрдл рд░реВрдкрд░реЗрдЦрд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рд░рд╣реЗ рд╣реИрдВред

рдФрд░ рдлрд┐рд░, рдЖрдЦрд┐рд░рдХрд╛рд░, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд╛рде рдЪрд▓реЗ рдЧрдПред

рдХреМрди рд╕рд╛ рд╕рдорд╛рдзрд╛рди рдкрде рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛?


рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ , рджреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкрд╣рд▓реЗ рд╡рд┐рдХрд▓реНрдк рдХреЛ SObjectizer рдореЗрдВ рд╕рдВрджреЗрд╢ рд╡рд┐рддрд░рдг рддрдВрддреНрд░ рдореЗрдВ рд╕рдВрд╢реЛрдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА, рд▓реЗрдХрд┐рди рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рднреЗрдЬреЗ рдЧрдП / рдкреНрд░рд╛рдкреНрдд рд╕рдВрджреЗрд╢ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред

рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк SObjectizer рд╕рдВрджреЗрд╢ рд╡рд┐рддрд░рдг рддрдВрддреНрд░ рдХреЗ рд╕рдВрд╢реЛрдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рдорд╛рд░реНрдЧ рдХреЛ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдиреЗ рд╕рдВрджреЗрд╢ рдХреЗ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рд╕реЗ рдЗрд╕ рддрдереНрдп рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдереА рдХрд┐ рд╕рдВрджреЗрд╢ рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд░реАрдХреЗ рд╕реЗ рднреЗрдЬрд╛ рдЧрдпрд╛ рдерд╛ред

SObjectizer рдореЗрдВ рдХреНрдпрд╛ рдмрджрд▓рд╛рд╡ рдЖрдпрд╛ рд╣реИ?


рдирдИ рдЕрд╡рдзрд╛рд░рдгрд╛: рдЕрдВрджрд░ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рд▓рд┐рдлрд╛рдлрд╛


рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкрд╣рд▓рд╛ рдШрдЯрдХ рдПрд╕рдмрд┐рдЬрд╛рдЗрдЬрд╝рд░ рдХреЗ рд▓рд┐рдлрд╛рдлреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реИред рдПрдХ рд▓рд┐рдлрд╛рдлрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдВрджреЗрд╢ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ рд╡рд░реНрддрдорд╛рди рд╕рдВрджреЗрд╢ (рдкреЗрд▓реЛрдб) рдирд┐рд╣рд┐рдд рд╣реИред SObjectizer рд▓рдЧрднрдЧ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХреЛ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рд▓рд┐рдлрд╛рдлрд╛ рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рд▓рд┐рдлрд╛рдлрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдореВрд▓рднреВрдд рдЕрдВрддрд░ рдХреЗрд╡рд▓ рдбрд┐рд▓реАрд╡рд░реА рдХреЗ рдЕрдВрддрд┐рдо рдЪрд░рдг рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

  • рдПрдХ рдирд┐рдпрдорд┐рдд рд╕рдВрджреЗрд╢ рдХреЗ рд╡рд┐рддрд░рдг рдкрд░, рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдПрдЬреЗрдВрдЯ рдмрд╕ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрдВрдбрд▓рд░ рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИ рдФрд░, рдпрджрд┐ рдРрд╕рд╛ рд╣реИрдВрдбрд▓рд░ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИрдВрдбрд▓рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдбрд┐рд▓реАрд╡рд░ рдХрд┐рдП рдЧрдП рд╕рдВрджреЗрд╢ рдХреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
  • рдФрд░ рд╣реИрдВрдбрд▓рд░ рдорд┐рд▓рдиреЗ рдХреЗ рдмрд╛рдж рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рд▓рд┐рдлрд╛рдлреЗ рдХрд╛ рд╡рд┐рддрд░рдг, рдкрд╣рд▓реЗ рд╕рдВрджреЗрд╢ рдХреЛ рд▓рд┐рдлрд╛рдлреЗ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдХреЗрд╡рд▓ рдЕрдЧрд░ рд▓рд┐рдлрд╛рдлреЗ рдиреЗ рдЗрд╕рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╕рдВрджреЗрд╢ рджрд┐рдпрд╛, рддрднреА рд╣реИрдВрдбрд▓рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рджреЛ рдкреНрд░рдореБрдЦ рдмрд┐рдВрджреБ рд╣реИрдВ рдЬреЛ рдПрдХ рдкреНрд░рдореБрдЦ рдкреНрд░рднрд╛рд╡ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВ рдФрд░ рдХреИрд╕реЗ рд╕рдВрджреЗрд╢ рд▓рд┐рдлрд╛рдлреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдкрд╣рд▓рд╛ рдореБрдЦреНрдп рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рд╕рдВрджреЗрд╢ рд▓рд┐рдлрд╛рдлреЗ рд╕реЗ рдХреЗрд╡рд▓ рддрднреА рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдПрдХ рд╕рдВрджреЗрд╢ рд╣реИрдВрдбрд▓рд░ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╛рдиреА рдХреЗрд╡рд▓ рддрднреА рдЬрдм рд╕рдВрджреЗрд╢ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХреЛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ рдФрд░ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдпрд╣реАрдВ рд╣реЛрдЧрд╛ рдФрд░ рдЕрдм рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдЧрд╛ред

рдпрд╣рд╛рдБ рджреВрд╕рд░рд╛ рдореБрдЦреНрдп рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рд▓рд┐рдлрд╛рдлрд╛ рдЗрд╕рдореЗрдВ рд╕рдВрджреЗрд╢ рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рд╣реИред рдЕрд░реНрдерд╛рддреН, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд▓рд┐рдлрд╛рдлрд╛ рд╡рд░реНрддрдорд╛рди рд╕рдордп рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рддрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рд╡рд┐рддрд░рдг рддрд┐рдерд┐рдпрд╛рдВ рдЫреВрдЯ рдЧрдИ рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛрдирд╛ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд▓рд┐рдлрд╛рдлрд╛ рд╕рдВрджреЗрд╢ рдХреЛ рдмрд╛рд╣рд░ рдирд╣реАрдВ рджреЗрдЧрд╛ред рддрджрдиреБрд╕рд╛рд░, SObjectizer рдХреЗрд╡рд▓ рдЗрд╕ рд▓рд┐рдлрд╛рдлреЗ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░реЗрдЧрд╛ рдФрд░ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрд░рд╡рд╛рдИ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рд▓рд┐рдлрд╛рдлрд╛ рдХреИрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ?


рдПрдХ рд▓рд┐рдлрд╛рдлрд╛ рд▓рд┐рдлрд╛рдлреЗ_рдЯреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ, рдЬрд┐рд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 class SO_5_TYPE envelope_t : public message_t { public: ... // -. //   ,       //    . virtual void handler_found_hook( handler_invoker_t & invoker ) noexcept = 0; //   ,      //     . virtual void transformation_hook( handler_invoker_t & invoker ) noexcept = 0; private : kind_t so5_message_kind() const noexcept override { return kind_t::enveloped_msg; } }; 

рдпрд╛рдиреА рдПрдХ рд▓рд┐рдлрд╛рдлрд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╕рднреА рдХреЗ рд╕рдорд╛рди рд╕рдВрджреЗрд╢ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде, рдЬрд┐рд╕реЗ so5_message_kind () рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд▓рд┐рдлрд╝рд╛рдлрд╝реЗ_ t (рдпрд╛, рдФрд░ рдЕрдзрд┐рдХ рдЖрд╕рд╛рдиреА рд╕реЗ, so_5 :: extra :: рд▓рд┐рдлрд╛рдлрд╛_msg :: just_envelope_t ) рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗ рдЕрдкрдиреЗ рд▓рд┐рдлрд╛рдлреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╣реБрдХ рд╡рд┐рдзрд┐рдпреЛрдВ рд╣реИрдВрдбрд▓рд░_рдлрд╛рдЙрдВрдб_рдмреВрдХ () рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди_рд╣реВрдХ () рд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓ рд╕рдХрддрд╛ рд╣реИред

рд╣реБрдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдЕрдВрджрд░, рд▓рд┐рдлрд╛рдлрд╛ рдбреЗрд╡рд▓рдкрд░ рдпрд╣ рддрдп рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рд▓рд┐рдлрд╛рдлреЗ рдХреЗ рдЕрдВрджрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг / рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рд╕рдВрджреЗрд╢ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ рд╡рд╣ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЗрдирд╡реЛрдХ () рд╡рд┐рдзрд┐ рдФрд░ рдЗрдирд╡реЛрдХрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рд╡рд╣ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдХреЙрд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд▓рд┐рдлрд╛рдлрд╛ рдФрд░ рдЙрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд▓рд┐рдлрд╛рдлреЗ рдХреИрд╕реЗ рд░рджреНрдж рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ?


рд╕рдорд╛рдзрд╛рди, рдЬрд┐рд╕реЗ рдЕрдм so_5_extra рдореЗрдВ so_5 :: extra :: revocable_timer рдирд╛рдо рд╕реНрдерд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ: рдПрдХ рд▓рдВрдмрд┐рдд рдпрд╛ рдЖрд╡рдзрд┐рдХ рд╕рдВрджреЗрд╢ рдХрд╛ рд╡рд┐рд╢реЗрд╖ рднреЗрдЬ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд▓рд┐рдлрд╛рдлрд╛ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ рди рдХреЗрд╡рд▓ рд╕рдВрджреЗрд╢ рд╕реНрдерд┐рдд рд╣реИ, рдмрд▓реНрдХрд┐ рдкрд░рдорд╛рдгреБ рдзреНрд╡рдЬ рднреА рдирд┐рд░рд╕реНрдд рд╣реИред рдпрджрд┐ рдпрд╣ рдзреНрд╡рдЬ рд╕рд╛рдлрд╝ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдВрджреЗрд╢ рд╡рд╛рдкрд╕ рд▓реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЬрдм рд╣реБрдХ рд╡рд┐рдзрд┐ рдХреЛ рд▓рд┐рдлрд╛рдлреЗ рдкрд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд▓рд┐рдлрд╛рдлрд╛ рдирд┐рд░рд╕реНрдд рдзреНрд╡рдЬ рдХреЗ рдореВрд▓реНрдп рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдзреНрд╡рдЬ рд╕реЗрдЯ рд╣реИ, рддреЛ рд▓рд┐рдлрд╛рдлрд╛ рдПрдХ рд╕рдВрджреЗрд╢ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рднрд▓реЗ рд╣реА рдЯрд╛рдЗрдорд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░рд┐рд╕реАрд╡рд░ рдХреА рдХрддрд╛рд░ рдореЗрдВ рд╕рдВрджреЗрд╢ рдбрд╛рд▓рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд╣реЛред

рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди abstract_message_box_t


рд▓рд┐рдлрд╛рдлреЗ_рдЯреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЬреЛрдбрд╝рдирд╛ SObjectizer рдореЗрдВ рд▓рд┐рдлрд╛рдлреЗ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╕рд┐рд░реНрдл рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рджреВрд╕рд░рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╕реЛрдмрдЬреЗрдирд╛рдЗрдЬрд╝рд░ рдХреЗ рдЕрдВрджрд░ рд╕рдВрджреЗрд╢ рд╡рд┐рддрд░рдг рддрдВрддреНрд░ рдореЗрдВ рд▓рд┐рдлрд╛рдлреЛрдВ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рддрдереНрдп рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦ рд░рд╣рд╛ рд╣реИред

рдпрд╣рд╛рдВ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рджреГрд╢реНрдпрдорд╛рди рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдХреНрд▓рд╛рд╕ рдПрдмреНрд╕реНрдЯреНрд░реИрдХреНрдЯ_рдореЗрд╕реЗрдЬ_рдмреЙрдХреНрд╕_рдЯреА рдореЗрдВ, рдЬреЛ рд╕реЛрдмрд┐рдЬрд╛рдЗрдЬрд╝рд░ рдХреЗ рд╕рднреА рдореЗрд▓рдмреЙрдХреНрд╕реЗрд╕ рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдФрд░ рд╡рд░реНрдЪреБрдЕрд▓ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛:

 virtual void do_deliver_enveloped_msg( const std::type_index & msg_type, const message_ref_t & message, unsigned int overlimit_reaction_deep ); 

рдпрд╣ рд╡рд┐рдзрд┐ рдПрдХ рд╕рдВрджреЗрд╢ рд▓рд┐рдлрд╛рдлреЗ рдХреЛ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЬреЛ рдХрд┐ рд░рд┐рд╕реАрд╡рд░ рдХреЛ msg_type рдХрд╛ рд╕рдВрджреЗрд╢ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреА рдбрд┐рд▓реАрд╡рд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬреЛ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реИред

Do_deliver_enveloped_msg () рдХреЛ abstract_message_box_t рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдкрд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдерд╛: рдЗрд╕реЗ рдПрдХ рд╢реБрджреНрдз рдЖрднрд╛рд╕реА рд╡рд┐рдзрд┐ рдмрдирд╛рдиреЗ рдпрд╛ рдХреБрдЫ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдпрджрд┐ рд╣рдордиреЗ do_deliver_enveloped_msg () рдПрдХ рд╢реБрджреНрдз рдЖрднрд╛рд╕реА рд╡рд┐рдзрд┐ рдмрдирд╛рдИ рд╣реИ, рддреЛ рд╣рдо рд╢рд╛рдЦрд╛ 5.5 рдореЗрдВ SObjectizer рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдЧрддрддрд╛ рдХреЛ рддреЛрдбрд╝ рджреЗрдВрдЧреЗред рдЖрдЦрд┐рд░рдХрд╛рд░, рдлрд┐рд░ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдПрдордмреЙрдХреНрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд▓рд┐рдЦрд╛ рдерд╛, рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдмреЙрдХреНрд╕ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрдм рд╡реЗ рдПрд╕рдУрдмреАрдЬреЗрдирд╛рдЗрдЬрд╝рд░-5.5.23 рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВрдЧреЗ, рдЕрдиреНрдпрдерд╛ рд╡реЗ рдПрд╕рдУрдмреАрдЬреЗрдирд╛рдЗрдЬрд╝рд░ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рди рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗред

рд╣рдо рдпрд╣ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдереЗ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ v.5.5.23 рдореЗрдВ do_deliver_enveloped_msg () рдХреЛ рд╢реБрджреНрдз рдЖрднрд╛рд╕реА рд╡рд┐рдзрд┐ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ред рдЗрд╕рдХрд╛ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХрд╕реНрдЯрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдордмреЙрдХреНрд╕-рдПрд╕ рдирд┐рдпрдорд┐рдд рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓рд┐рдлрд╛рдлреЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджреЗрдЧрд╛ред рд╣рдореЗрдВ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдзрд┐рдХ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд▓рдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг рдореЗрдВ, рд╕рдВрджреЗрд╢реЛрдВ рд╡рд╛рд▓реЗ рд▓рд┐рдлрд╛рдлреЗ рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ SObjectizer рдмреЙрдХреНрд╕ рдХреЗ "рдЬрдВрдЧрд▓реА" рдХрд╕реНрдЯрдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрдХреНрд╕рд░ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ;)

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рд╢реВрдиреНрдп рдЕрд╡рд╕рд░ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИ рдХрд┐ SObjectizer рдХреЗ рдмрд╛рдж рдХреЗ рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, рдЬрд╣рд╛рдВ рд╣рдо рд╢рд╛рдЦрд╛ 5.5 рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЛ рдирд╣реАрдВ рджреЗрдЦреЗрдВрдЧреЗ, abstract_message_box_t рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рдореБрдЦ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕реЗ рдЧреБрдЬрд░рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЦреБрдж рд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓ рд░рд╣реЗ рд╣реИрдВ ...

рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рд▓рд┐рдлрд╛рдлреЗ рдХреИрд╕реЗ рднреЗрдЬреЗрдВ


SObjectizer-5.5.23 рд╣реА рд▓рд┐рдлрд╛рдлреЗ рднреЗрдЬрдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рд╕рд╛рдзрди рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдлрд╛рдлреЗ рдФрд░ рдЙрдкрдпреБрдХреНрдд рдЙрдкрдХрд░рдг рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдлрд╛рдлреЗ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг so_5 :: extra :: revocable_timer рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдБ рдЖрдкрдХреЛ рди рдХреЗрд╡рд▓ рд▓рд┐рдлрд╛рдлрд╛ рднреЗрдЬрдирд╛ рд╣реЛрдЧрд╛, рдмрд▓реНрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЯрд╛рдЗрдорд░_рдб рднреА рджреЗрдирд╛ рд╣реЛрдЧрд╛ред

рд╕рд░рд▓ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдк so_5 :: рдЕрддрд┐рд░рд┐рдХреНрдд :: covered_msg рд╕реЗ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рдВрджреЗрд╢ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЙрд╕рдХреЗ рд╡рд┐рддрд░рдг рд╕рдордп рдкрд░ рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реАрдорд╛ рдХреЗ рд╕рд╛рде рд╕рдВрджреЗрд╢ рдХреИрд╕реЗ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 // make     . so_5::extra::enveloped_msg::make<my_message>(... /*    */) // envelope         . //  5s        . .envelope<so_5::extra::enveloped_msg::time_limited_delivery_t>(5s) //        . .send_to(destination); 

рдпрд╣ рд╕рдм рдордЬреЗрджрд╛рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП: рд▓рд┐рдлрд╛рдлреЗ рдореЗрдВ рд▓рд┐рдлрд╛рдлреЗ


рд▓рд┐рдлрд╛рдлреЗ рдХреБрдЫ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЕрдкрдиреЗ рдЕрдВрджрд░ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВред рд▓реЗрдХрд┐рди рдХреМрди рд╕реЗ?

рдХрд┐рд╕реА рднреАред

рдФрд░ рдпрд╣ рд╣рдореЗрдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕рд╡рд╛рд▓ рдкрд░ рд▓рд╛рддрд╛ рд╣реИ: рдХреНрдпрд╛ рдПрдХ рд▓рд┐рдлрд╛рдлреЗ рдХреЛ рджреВрд╕рд░реЗ рд▓рд┐рдлрд╛рдлреЗ рдХреЗ рдЕрдВрджрд░ рд░рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИ?

рд╣рд╛рдБ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬрд┐рддрдирд╛ рдЖрдкрдХреЛ рдкрд╕рдВрдж рд╣реИред рдШреЛрдВрд╕рд▓реЗ рдХреА рдЧрд╣рд░рд╛рдИ рдХреЗрд╡рд▓ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдЬреНрдЮрд╛рди рдФрд░ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХреЙрд▓ рд╣реИрдВрдбрд▓рд░_рдлрд╛рдЙрдВрдб_рд╣реВрдХ / рдкрд░рд┐рд╡рд░реНрддрди_рд╣реВрдХ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреИрдХ рдХреА рдЧрд╣рд░рд╛рдИ рддрдХ рд╕реАрдорд┐рдд рд╣реИред

рдЙрд╕реА рд╕рдордп, SObjectizer рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд▓рд┐рдлрд╛рдлреЗ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ: рд▓рд┐рдлрд╛рдлреЗ рдХреЛ рдпрд╣ рдирд╣реАрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реИ - рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрджреЗрд╢ рдпрд╛ рджреВрд╕рд░рд╛ рд▓рд┐рдлрд╛рдлрд╛ред рдЬрдм рд▓рд┐рдлрд╛рдлреЗ рдкрд░ рд╣реБрдХ рд╡рд┐рдзрд┐ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд▓рд┐рдлрд╛рдлрд╛ рдпрд╣ рддрдп рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдЕрдкрдиреА рд╕рд╛рдордЧреНрд░реА рджреЗ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рд▓рд┐рдлрд╛рдлрд╛ рдХреЗрд╡рд▓ рд╣реИрдВрдбрд▓рд░_invoker_t рдкрд░ рдЗрдирд╡реЛрдХ () рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрдирд╡реЛрдХ рдореЗрдВ рдЕрдкрдиреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдкрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ ()ред рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╣реНрд╡рд╛рди () рдЕрдВрджрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдПрдЧрд╛ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИред рдФрд░ рдЕрдЧрд░ рдпрд╣ рдПрдХ рдФрд░ рд▓рд┐рдлрд╛рдлрд╛ рд╣реИ, рддреЛ рдЖрд╣реНрд╡рд╛рди () рдЦреБрдж рдЗрд╕ рд▓рд┐рдлрд╛рдлреЗ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реБрдХ рд╡рд┐рдзрд┐ рдХреЛ рдмреБрд▓рд╛рдПрдЧрд╛ред

рдКрдкрд░ рджрд┐рдЦрд╛рдП рдЧрдП рдЯреВрд▓рдХрд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ so_5 :: рдЕрддрд┐рд░рд┐рдХреНрдд :: рд▓рд┐рдлрд╛рдлрд╛_msg рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕ рддрд░рд╣ рдХрдИ рдиреЗрд╕реНрдЯреЗрдб рд▓рд┐рдлрд╛рдлреЗ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ:

 so_5::extra::enveloped_msg::make<my_message>(...) // ,        my_message. .envelope<inner_envelope_type>(...) // ,      inner_envelope_type. .envelope<outer_envelope_type>(...) .send_to(destination); 

рд▓рд┐рдлрд╛рдлреЗ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг


рдЕрдм, рдЬрдм рд╣рдо SObjectizer-5.5.23 рдХреЗ рдЗрдВрдЯрд░реНрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓реЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд╛рд░реНрдЯ рдкрд░ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдиреАрдЪреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬреЛ рдпрд╛ рддреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА so_5_extra рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдпрд╛ so_5_extra рд╕реЗ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдирд┐рд░рд░реНрдердХ рд╕рдордп


рдЪреВрдВрдХрд┐ рд▓рд┐рдлрд╛рдлреЗ рдХреЗ рд╕рд╛рде рдЗрд╕ рдкреВрд░реЗ рд░рд╕реЛрдИрдШрд░ рдХреА рдХрд▓реНрдкрдирд╛ рдЯрд╛рдЗрдорд░ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдЧрд╛рд░рдВрдЯреА рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреА рдЧрдИ рдереА, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЕрдВрдд рдореЗрдВ рдХреНрдпрд╛ рд╣реБрдЖред рд╣рдо so_5_extra-1.2.0 рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдирдП so_5 :: рдЕрддрд┐рд░рд┐рдХреНрдд :: revocable_timer рдирд╛рдо рд╕реНрдерд╛рди рд╕реЗ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:

рд░рд┐рд╡реЛрдХреЗрдмрд▓ рдЯрд╛рдЗрдорд░ рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдг рдХреЛрдб
 #include <so_5_extra/revocable_timer/pub.hpp> #include <so_5/all.hpp> namespace timer_ns = so_5::extra::revocable_timer; class example_t final : public so_5::agent_t { //  ,       //    . struct first_delayed final : public so_5::signal_t {}; struct second_delayed final : public so_5::signal_t {}; struct last_delayed final : public so_5::signal_t {}; struct periodic final : public so_5::signal_t {}; //    . timer_ns::timer_id_t m_first; timer_ns::timer_id_t m_second; timer_ns::timer_id_t m_last; timer_ns::timer_id_t m_periodic; public : example_t( context_t ctx ) : so_5::agent_t{ std::move(ctx) } { so_subscribe_self() .event( &example_t::on_first_delayed ) .event( &example_t::on_second_delayed ) .event( &example_t::on_last_delayed ) .event( &example_t::on_periodic ); } void so_evt_start() override { using namespace std::chrono_literals; //      ... m_first = timer_ns::send_delayed< first_delayed >( *this, 100ms ); m_second = timer_ns::send_delayed< second_delayed >( *this, 200ms ); m_last = timer_ns::send_delayed< last_delayed >( *this, 300ms ); // ...    . m_periodic = timer_ns::send_periodic< periodic >( *this, 75ms, 75ms ); //    220ms.       //    first_delaye, second_delayed  //    periodic. std::cout << "hang the agent..." << std::flush; std::this_thread::sleep_for( 220ms ); std::cout << "done" << std::endl; } private : void on_first_delayed( mhood_t<first_delayed> ) { std::cout << "first_delayed received" << std::endl; //   second_delayed  periodic. //          ,  //       . m_second.revoke(); m_periodic.revoke(); } void on_second_delayed( mhood_t<second_delayed> ) { std::cout << "second_delayed received" << std::endl; } void on_last_delayed( mhood_t<last_delayed> ) { std::cout << "last_delayed received" << std::endl; so_deregister_agent_coop_normally(); } void on_periodic( mhood_t<periodic> ) { std::cout << "periodic received" << std::endl; } }; int main() { so_5::launch( [](so_5::environment_t & env) { env.register_agent_as_coop( "example", env.make_agent<example_t>() ); } ); return 0; } 


рд╣рдорд╛рд░реЗ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реИ?

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдПрдЬреЗрдВрдЯ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рдХрдИ рдЯрд╛рдЗрдорд░ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рдзрд╛рдЧреЗ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕рдордп рдХреЗ рджреМрд░рд╛рди, рдЯрд╛рдЗрдорд░ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдЯрд╛рдЗрдорд░ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдПрдЬреЗрдВрдЯ рдХреЛ рдХрдИ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкрдВрдХреНрддрд┐рдмрджреНрдз рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИ: рдХрдИ рдЖрд╡рдзрд┐рдХ рдЙрджрд╛рд╣рд░рдг, рдПрдХ first_delayed рдФрд░ рджреВрд╕рд░рд╛_delayed рдкреНрд░рддреНрдпреЗрдХред

рддрджрдиреБрд╕рд╛рд░, рдЬрдм рдХреЛрдИ рдПрдЬреЗрдВрдЯ рдЕрдкрдирд╛ рдзрд╛рдЧрд╛ рдЕрдирд▓реЙрдХ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдкрд╣рд▓реЗ рдЖрд╡рдзрд┐рдХ рдФрд░ first_delayed рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред First_delayed рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдПрдЬреЗрдВрдЯ рдЖрд╡рдзрд┐рдХ рдФрд░ second_delayed рдХреЗ рд╡рд┐рддрд░рдг рдХреЛ рд░рджреНрдж рдХрд░ рджреЗрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпреЗ рд╕рдВрдХреЗрдд рдПрдЬреЗрдВрдЯ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрдиреЗ рдЪрд╛рд╣рд┐рдП, рдЪрд╛рд╣реЗ рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдЬреЗрдВрдЯ рдХреА рдХрддрд╛рд░ рдореЗрдВ рд╣реЛрдВ рдпрд╛ рдирд╣реАрдВ (рдФрд░ рд╡реЗ рд╣реИрдВ)ред

рд╣рдо рдЙрджрд╛рд╣рд░рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ:

 hang the agent...done periodic received first_delayed received last_delayed received 

рд╣рд╛рдБ, рдпрд╣ рд╣реИред рдкрд╣рд▓рд╛ рдЖрд╡рдзрд┐рдХ рдФрд░ First_delayed рдорд┐рд▓рд╛ред рдлрд┐рд░ рди рддреЛ рдЖрд╡рдзрд┐рдХ рд╣реИ рдФрд░ рди рд╣реА рджреВрд╕рд░рд╛_рджрд┐рд▓рдпреЗрджред

рд▓реЗрдХрд┐рди рдпрджрд┐ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣рдо so_5 рд╕реЗ "рдЯрд╛рдЗрдорд░" рдХреА рдЬрдЧрд╣ рд▓реЗрддреЗ рд╣реИрдВ :: рдЕрддрд┐рд░рд┐рдХреНрдд :: Revocable_timer SObjectizer рд╕реЗ рдорд╛рдирдХ рдЯрд╛рдЗрдорд░ рдХреЗ рд╕рд╛рде, рддреЛ рдкрд░рд┐рдгрд╛рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдЧрд╛: рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдЬреЗрдВрдЯ рдХреА рдХрддрд╛рд░ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЖрд╡рдзрд┐рдХ рдФрд░ second_deleded рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рд╕рднреА рдЙрджрд╛рд╣рд░рдг рдПрдЬреЗрдВрдЯ рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рдПрдВрдЧреЗред

рдбрд┐рд▓реАрд╡рд░реА рдХрд╛ рд╕рдордп рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рд╕рдВрджреЗрд╢


рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧреА, рдХрдИ рдмрд╛рд░, рд╡рд╣ рдЪреАрдЬ рдЬреЛ so_5_extra-1.2.0 рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рдПрдЧреА, рд╡рд╣ рд╕рдордп рд╕реАрдорд╛ рдХреЗ рд╕рд╛рде рд╕рдВрджреЗрд╢ рд╡рд┐рддрд░рдг рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, request_handler рдПрдЬреЗрдВрдЯ crypto_master рдПрдЬреЗрдВрдЯ рдХреЛ рдПрдХ Ver_signature рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, request_handler 5 рд╕реЗрдХрдВрдб рдХреЗ рднреАрддрд░ verify_signature рдкрд░ рдкрд╣реБрдВрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдпрджрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ verity_signature рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реЛрдЧрд╛, request_handler рдПрдЬреЗрдВрдЯ рдЕрдкрдирд╛ рдХрд╛рдо рдкрд╣рд▓реЗ рд╣реА рд░реЛрдХ рджреЗрдЧрд╛ред

рдФрд░ рдХреНрд░рд┐рдкреНрдЯреЛ_рдорд╛рд╕реНрдЯрд░ рдПрдЬреЗрдВрдЯ рдПрдХ рдРрд╕рд╛ рдХреЙрдорд░реЗрдб рд╣реИ рдЬреЛ рдПрдХ "рдЕрдбрд╝рдЪрди" рд╣реЛрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИ: рдХрдИ рдмрд╛рд░ рд╡рд╣ рдзреАрдорд╛ рд╣реЛрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред рдРрд╕реЗ рдХреНрд╖рдг рдореЗрдВ, рдХрддрд╛рд░ рдореЗрдВ рд╕рдВрджреЗрд╢ рдЬрдорд╛ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдКрдкрд░ Ver_signature, рдЬреЛ рддрдм рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ crypto_master рдХреЛ рд░рд╛рд╣рдд рдирд╣реАрдВ рдорд┐рд▓ рдЬрд╛рддреАред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ request_handler рдиреЗ crypto_master рдПрдЬреЗрдВрдЯ рдХреЛ рдПрдХ Ver_signature рд╕рдВрджреЗрд╢ рднреЗрдЬрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ crypto_master рдмрд╣реБрдд рдЪрдХрд░рд╛ рдЧрдпрд╛ рдФрд░ рдпрд╣ 10 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдЕрдЯрдХ рдЧрдпрд╛ред рдЕрдиреБрд░реЛрдз_рд╣реИрдВрдбрд▓рд░ рдПрдЬреЗрдВрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА "рдЧрд┐рд░ рдЧрдпрд╛" рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдкрд╣рд▓реЗ рд╣реА рд╕рднреА рдХреЛ рд╕реЗрд╡рд╛ рд╕реЗ рд╡рдВрдЪрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдЕрдкрдирд╛ рдХрд╛рдо рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛ред рд▓реЗрдХрд┐рди Ver_signature рд╕рдВрджреЗрд╢ crypto_master рдХрддрд╛рд░ рдореЗрдВ рдмрдирд╛ рд╣реБрдЖ рд╣реИ! рдЗрд╕рд▓рд┐рдП, рдЬрдм рдХреНрд░рд┐рдкреНрдЯреЛ_рдорд╛рд╕реНрдЯрд░ "рдЕрдирд╕реНрдЯрд┐рдХреНрд╕", рдпрд╣ рд╕рдВрджреЗрд╢ рд▓реЗ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрдм рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИред

рдирдП рд▓рд┐рдлрд╛рдлреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ so_5 :: рдЕрддрд┐рд░рд┐рдХреНрдд :: рд▓рд┐рдлрд╛рдлрд╛_msg :: time_limited_delivery_t, рд╣рдо рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: request_handler рдПрдЬреЗрдВрдЯ рд╕рддреНрдпрд╛рдкрди_ рднреЗрдЬ рджреЗрдЧрд╛ time_limited_delivery_t рдПрдХ рдбрд┐рд▓реАрд╡рд░реА рд╕рдордп рд╕реАрдорд╛ рдХреЗ рд╕рд╛рде рд▓рд┐рдлрд╛рдлреЗ рдореЗрдВ рд╕рдВрд▓рдЧреНрди:

 so_5::extra::enveloped_msg::make<verify_signature>(...) .envelope<so_5::extra::enveloped_msg::time_limited_delivery_t>(5s) .send_to(crypto_master_mbox); 

рдЕрдм рдЕрдЧрд░ crypto_master "рдЪрд┐рдкрдХ рдЬрд╛рддрд╛ рд╣реИ" рдФрд░ 5 рд╕реЗрдХрдВрдб рдореЗрдВ Ver_signature рдкрд░ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд▓рд┐рдлрд╛рдлрд╛ рдмрд╕ рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рднреЗрдЬреЗрдЧрд╛ред рдФрд░ crypto_master рд╡рд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕рдХреА рдХрд┐рд╕реА рдФрд░ рдХреЛ рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред

рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рд╡рд┐рддрд░рдг рд░рд┐рдкреЛрд░реНрдЯ


рдФрд░ рдЕрдВрдд рдореЗрдВ, рдПрдХ рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рдЪреАрдЬ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЬреЛ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдпрд╛ рддреЛ SObjectizer рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдпрд╛ so_5_extra, рд▓реЗрдХрд┐рди рдЬреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдХрднреА-рдХрднреА рдЖрдк рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХреЛ "рдбрд┐рд▓реАрд╡рд░реА рд░рд┐рдкреЛрд░реНрдЯ" рд╕рдВрджреЗрд╢ рдХреА рддрд░рд╣ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рдг рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЖрдЦрд┐рд░рдХрд╛рд░, рдпрд╣ рдПрдХ рдмрд╛рдд рд╣реИ рдЬрдм рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдиреЗ рдЗрд╕рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджрд┐рдпрд╛ред рдПрдХ рдФрд░ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рддрдХ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рдПрдЬреЗрдВрдЯ рдЕрдзрд┐рднрд╛рд░ рд╕рдВрд░рдХреНрд╖рдг рддрдВрддреНрд░ рджреНрд╡рд╛рд░рд╛ рдЕрд╡рд░реБрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рд╕рдВрджреЗрд╢ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдЙрддреНрддрд░ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХреА рдереА, рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреБрдЫ рд╕рдордп рдХреЗ рдмрд╛рдж рд╕рдВрджреЗрд╢ рдХреЛ рдлрд┐рд░ рд╕реЗ рднреЗрдЬрдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдм рд╣рдо рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд▓рд┐рдлрд╛рдлреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ "рд╡рд┐рддрд░рдг рд░рд┐рдкреЛрд░реНрдЯ" рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рддрдВрддреНрд░ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдкрд╣рд▓реЗ рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрджрдо рдЙрдард╛рддреЗ рд╣реИрдВ:

 #include <so_5_extra/enveloped_msg/just_envelope.hpp> #include <so_5_extra/enveloped_msg/send_functions.hpp> #include <so_5/all.hpp> using namespace std::chrono_literals; namespace envelope_ns = so_5::extra::enveloped_msg; using request_id_t = int; 

рдЕрдм рд╣рдо рдЙрди рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдкрд╣рд▓рд╛ рд╕рдВрджреЗрд╢ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рд╣реИ, рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рджреВрд╕рд░рд╛ рд╕рдВрджреЗрд╢ рдПрдХ рдкреБрд╖реНрдЯрд┐ рд╣реИ рдХрд┐ рдкрд╣рд▓рд╛ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдЧрдпрд╛ рд╣реИ:

 struct request_t final { request_id_t m_id; std::string m_data; }; struct delivery_receipt_t final { //   request_t::m_id   request_t. request_id_t m_id; }; 

рдЕрдЧрд▓рд╛, рд╣рдо рдПрдХ рдПрдЬреЗрдВрдЯ processor_t рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЯрд╛рдЗрдк request_t рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг "рдЪрд┐рдкрдХреЗ рд╣реБрдП" рдХреА рдирдХрд▓ рдХреЗ рд╕рд╛рде рд╣реЛрдЧрд╛ред рдпрд╛рдиреА рдпрд╣ request_t рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдпрд╣ рдЕрдкрдиреЗ рд░рд╛рдЬреНрдп рдХреЛ st_normal рд╕реЗ st_busy рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред St_busy рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ, рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрджрд┐ рдкреНрд░реЛрд╕реЗрд╕рд░_t рдПрдЬреЗрдВрдЯ рд▓рдЧрд╛рддрд╛рд░ рддреАрди рдЕрдиреБрд░реЛрдз_ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкрд╣рд▓реЗ рдПрдХ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдЕрдиреНрдп рджреЛ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓реЗ рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдПрдЬреЗрдВрдЯ st_busy рдкрд░ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджреЗрдЧрд╛ рдХрд┐ st_busy рдореЗрдВ рд╣реЛрдиреЗ рдкрд░ рдЙрд╕реЗ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

St_busy рдореЗрдВ, agent processor_t 2 рд╕реЗрдХрдВрдб рдЦрд░реНрдЪ рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдпрд╣ рдлрд┐рд░ рд╕реЗ st_normal рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдирдП рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдЧрд╛ред

рдпрд╣рд╛рдВ рдРрд╕рд╛ рдХреНрдпрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ processor_t рдПрдЬреЗрдВрдЯ рджрд┐рдЦрддрд╛ рд╣реИ:

 class processor_t final : public so_5::agent_t { //   .     //   . state_t st_normal{this, "normal"}; //  " ".   . state_t st_busy{this, "busy"}; public: processor_t(context_t ctx) : so_5::agent_t{std::move(ctx)} { this >>= st_normal; st_normal.event(&processor_t::on_request); //     ,    . //  2   ,    st_normal. st_busy.time_limit(2s, st_normal); } private: void on_request(mhood_t<request_t> cmd) { std::cout << "processor: on_request(" << cmd->m_id << ", " << cmd->m_data << ")" << std::endl; this >>= st_busy; } }; 

рдЕрдм рд╣рдо рдПрдЬреЗрдВрдЯ request_generator_t рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЙрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдкреНрд░реЛрд╕реЗрд╕рд░_ рдЯреА рддрдХ рдкрд╣реБрдВрдЪрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред Request_generator_t рдПрдЬреЗрдВрдЯ рдкреВрд░реЗ 3 рд╕реЗрдХрдВрдб рдореЗрдВ рдкреВрд░реЗ рдкреИрдХреЗрдЯ рдХреЛ рднреЗрдЬрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ delivery_receipt_t рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рддрд░рдг рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реИред

рдЬрдм delivery_recept_t рдЖрддрд╛ рд╣реИ, рддреЛ request_generator_t рдПрдЬреЗрдВрдЯ рд╡рд┐рддрд░рд┐рдд рдЕрдиреБрд░реЛрдз рдХреЛ рдмрдВрдбрд▓ рд╕реЗ рдмрд╛рд╣рд░ рдлреЗрдВрдХ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдкреИрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦрд╛рд▓реА рд╣реИ, рддреЛ рдЙрджрд╛рд╣рд░рдг рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдХреБрдЫ рдФрд░ рд╢реЗрд╖ рд░рд╣рддрд╛ рд╣реИ, рддреЛ рд╢реЗрд╖ рдкреИрдХреЗрдЯ рдЕрдЧрд▓реА рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред

рддреЛ рдпрд╣рд╛рдБ request_generator_t рдПрдЬреЗрдВрдЯ рдХреЛрдб рд╣реИред рдпрд╣ рдХрд╛рдлреА рд╕реНрд╡реИрдЪреНрдЫрд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрджрд┐рдо рд╣реИред рдЖрдк рдХреЗрд╡рд▓ send_requests () рд╡рд┐рдзрд┐ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдкрд░ рдзреНрдпрд╛рди рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ request_t рд╕рдВрджреЗрд╢ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд▓рд┐рдлрд╛рдлреЗ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реИрдВред

Request_generator_t рдПрдЬреЗрдВрдЯ рдХреЛрдб
 class requests_generator_t final : public so_5::agent_t { //    . const so_5::mbox_t m_processor; //  ,       . std::map<request_id_t, std::string> m_requests; struct resend_requests final : public so_5::signal_t {}; public: requests_generator_t(context_t ctx, so_5::mbox_t processor) : so_5::agent_t{std::move(ctx)} , m_processor{std::move(processor)} { so_subscribe_self() .event(&requests_generator_t::on_delivery_receipt) .event(&requests_generator_t::on_resend); } void so_evt_start() override { //    . m_requests.emplace(0, "First"); m_requests.emplace(1, "Second"); m_requests.emplace(2, "Third"); m_requests.emplace(3, "Four"); //  . send_requests(); } private: void on_delivery_receipt(mhood_t<delivery_receipt_t> cmd) { std::cout << "request delivered: " << cmd->m_id << std::endl; m_requests.erase(cmd->m_id); if(m_requests.empty()) //    .  . so_deregister_agent_coop_normally(); } void on_resend(mhood_t<resend_requests>) { std::cout << "time to resend requests, pending requests: " << m_requests.size() << std::endl; send_requests(); } void send_requests() { for(const auto & item : m_requests) { std::cout << "sending request: (" << item.first << ", " << item.second << ")" << std::endl; envelope_ns::make<request_t>(item.first, item.second) .envelope<custom_envelope_t>(so_direct_mbox(), item.first) .send_to(m_processor); } //       3 . so_5::send_delayed<resend_requests>(*this, 3s); } }; 

рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рдВрджреЗрд╢ рдФрд░ рдПрдЬреЗрдВрдЯ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдВрдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреЗрд╡рд▓ рдПрдХ рдЫреЛрдЯреА рд╕реА рдЪреАрдЬ рдмрдЪреА рдереА - рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ delivery_receipt_t рд╕рдВрджреЗрд╢ рдмрдирд╛рддреЗ рд╕рдордп рдкреНрд░реЛрд╕реЗрд╕рд░_t рдХреЛ request_t рднреЗрдЬрддреЗ рд╕рдордпред

рдпрд╣ рдЗрд╕ рд▓рд┐рдлрд╛рдлреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 class custom_envelope_t final : public envelope_ns::just_envelope_t { //     . const so_5::mbox_t m_to; // ID  . const request_id_t m_id; public: custom_envelope_t(so_5::message_ref_t payload, so_5::mbox_t to, request_id_t id) : envelope_ns::just_envelope_t{std::move(payload)} , m_to{std::move(to)} , m_id{id} {} void handler_found_hook(handler_invoker_t & invoker) noexcept override { //    ,     . //     . so_5::send<delivery_receipt_t>(m_to, m_id); //      . envelope_ns::just_envelope_t::handler_found_hook(invoker); } }; 

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИред рд╣рдо so_5 рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрддреЗ рд╣реИрдВ :: рдЕрддрд┐рд░рд┐рдХреНрдд :: рд▓рд┐рдлрд╛рдлрд╛_msg :: just_envelope_tред рдпрд╣ рдПрдХ рд╕рд╣рд╛рдпрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд▓рд┐рдлрд╛рдлрд╛ рд╣реИ рдЬреЛ рдЗрд╕рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣реБрдХ
рд╣реИрдВрдбрд▓рд░_рдлрд╛рдЙрдВрдб_рд╣реВрдХ () рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди_рд╣реВрдХ () рдХрд╛ рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ рдЙрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╕рд╣реЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ custom_envelope_t рдХреЗ рдЕрдВрджрд░ рдЪрд╛рд╣рд┐рдП рдФрд░ hand_found_hook () рд╣реБрдХ рдХреЗ рдЕрдВрджрд░ delivery_receipt_t рднреЗрдЬреЗрдВред

рд╡рд╣, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рд╣реИред рдпрджрд┐ рд╣рдо рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд┐рд▓рддреЗ рд╣реИрдВ:

 sending request: (0, First) sending request: (1, Second) sending request: (2, Third) sending request: (3, Four) processor: on_request(0, First) request delivered: 0 time to resend requests, pending requests: 3 sending request: (1, Second) sending request: (2, Third) sending request: (3, Four) processor: on_request(1, Second) request delivered: 1 time to resend requests, pending requests: 2 sending request: (2, Third) sending request: (3, Four) processor: on_request(2, Third) request delivered: 2 time to resend requests, pending requests: 1 sending request: (3, Four) processor: on_request(3, Four) request delivered: 3 

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рд╡рд┐рддрд░рдг рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рд░рд▓ custom_envelope_t рд╢рд╛рдпрдж рд╣реА рдЙрдкрдпреБрдХреНрдд рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рддреЛ рдпрд╣ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдФрд░ рд▓реЗрдЦ рдХреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд▓рд┐рдлрд╛рдлреЗ рдХреЗ рд╕рд╛рде рдФрд░ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?


рдмрдбрд╝рд╛ рдЕрдЪреНрдЫрд╛ рд╕рд╡рд╛рд▓!рдЬрд┐рд╕рдХрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рд╡реНрдпрд╛рдкрдХ рдЬрд╡рд╛рдм рдирд╣реАрдВ рд╣реИред рд╢рд╛рдпрдж, рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдХрд▓реНрдкрдирд╛ рд╕реЗ рд╕реАрдорд┐рдд рд╣реИрдВред рдареАрдХ рд╣реИ, рдЕрдЧрд░ SObjectizer рдореЗрдВ рдХрд▓реНрдкрдирд╛рдУрдВ рдХреА рдкреНрд░рд╛рдкреНрддрд┐ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ, рддреЛ рдпрд╣ рд╣рдореЗрдВ рдмрддрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рд╣рдореЗрд╢рд╛ рд╕реБрдирддреЗ рд╣реИрдВред рдФрд░, рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдХрдИ рдмрд╛рд░ рд╣рдо рдРрд╕рд╛ рднреА рдХрд░рддреЗ рд╣реИрдВ :)

рдорд╛рдЪрд┐рди рдХреЗ рд╕рд╛рде рдПрдЬреЗрдВрдЯреЛрдВ рдХрд╛ рдПрдХреАрдХрд░рдг


рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдмреЛрд▓рддреЗ рд╣реБрдП, рдпрд╣ рдПрдХ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рд╕рдордп-рд╕рдордп рдкрд░ рд▓реЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдЬрд┐рд╕реЗ so_5_extra-1.2.0 рдХреЗ рд▓рд┐рдП рднреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рдереАред рд▓реЗрдХрд┐рди рдЬреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, 1.2.0 рд░рд┐рд▓реАрдЬ рдореЗрдВ рдирд╣реАрдВ рдЖрдПрдЧрд╛ред

рдпрд╣ mchains рдФрд░ рдПрдЬреЗрдВрдЯреЛрдВ рдХреЗ рдПрдХреАрдХрд░рдг рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ ред

рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╢реБрд░реВ рдореЗрдВ mchains SObjectizer рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рдереЗ рддрд╛рдХрд┐ рдПрдЬреЗрдВрдЯреЛрдВ рдХреЗ рд╕рдВрдЪрд╛рд░ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдЬреЛ рдХрд┐ рдмрд┐рдирд╛ рдПрдЬреЗрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдореБрдЦреНрдп рдзрд╛рдЧрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ GUI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдХрдИ рдПрдЬреЗрдВрдЯ-рд╢реНрд░рдорд┐рдХ рд╣реИрдВ рдЬреЛ рдкреГрд╖реНрдарднреВрдорд┐ "рдХрдард┐рди" рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдореБрдЦреНрдп рдереНрд░реЗрдб рд╕реЗ рдПрдЬреЗрдВрдЯ рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ: рдмрд╕ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдХреЙрд▓ рдХрд░реЗрдВред рд▓реЗрдХрд┐рди рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╡рд╛рдкрд╕ рдХреИрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ?

рдЗрд╕рдХреЗ рд▓рд┐рдП рдорд╛рдЪрд┐рди-рдПрд╕ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред

рд▓реЗрдХрд┐рди рд╕рдордп рдХреЗ рд╕рд╛рде, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдорд╛рдЪрд┐рди рдмрд╣реБрдд рдмрдбрд╝реА рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдХреЗрд╡рд▓ рдХрд┐рд╕реА рднреА рдПрдЬреЗрдВрдЯ рдХреЗ рдмрд┐рдирд╛ SObjectizer рдкрд░ рдорд▓реНрдЯреАрдереНрд░реЗрдбреЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдорд╛рдЪрд┐рди-рдЖрд╣ рдкрд░ ( рдпрд╣рд╛рдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг )ред рдФрд░ рдЖрдк рдПрдЬреЗрдВрдЯреЛрдВ рдкрд░ рд▓реЛрдб рдХреЛ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рдзрди рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдЪрд┐рди-рдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдирд┐рд░реНрдорд╛рддрд╛-рдЙрдкрднреЛрдХреНрддрд╛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВред

рдирд┐рд░реНрдорд╛рддрд╛-рдЙрдкрднреЛрдХреНрддрд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдирд┐рд░реНрдорд╛рддрд╛ рддреЗрдЬреА рд╕реЗ рд╕рдВрджреЗрд╢ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рддреЛ рдЙрдкрднреЛрдХреНрддрд╛ рдЙрдиреНрд╣реЗрдВ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдкрд░реЗрд╢рд╛рдиреА рдореЗрдВ рд╣реИрдВред рд╕рдВрджреЗрд╢ рдХреА рдХрддрд╛рд░реЗрдВ рдмрдврд╝реЗрдВрдЧреА, рдкреНрд░рджрд░реНрд╢рди рд╕рдордп рдХреЗ рд╕рд╛рде рдХрдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдореЛрд░реА рдердХрд╛рд╡рдЯ рдХреЗ рдХрд╛рд░рдг рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рдЬреЛ рд╣рдордиреЗ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджрд┐рдпрд╛ рдерд╛, рд╡рд╣ рд╣реИ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПрдХрд▓реЗрдХреНрдЯрд░-рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдЬреЗрдВрдЯреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА ред рдЖрдк рд╕рдВрджреЗрд╢ рд╕реАрдорд╛ (рдпрд╛ рддреЛ рдореБрдЦреНрдп рд╕реБрд░рдХреНрд╖рд╛ рддрдВрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╛ рдХрд▓реЗрдХреНрдЯрд░-рдХрд▓рд╛рдХрд╛рд░ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЗ рд░реВрдк рдореЗрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдХрд▓реЗрдХреНрдЯрд░-рдХрд▓рд╛рдХрд╛рд░ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рд▓реЗрдХрд┐рди рдбреЗрд╡рд▓рдкрд░ рд╕реЗ рдиреНрдпреВрдирддрдо рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП mchains рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдирд┐рд░реНрдорд╛рддрд╛ рдЕрдЧрд▓рд╛ рд╕рдВрджреЗрд╢ рдордЪрд┐рди рдореЗрдВ рдбрд╛рд▓ рджреЗрдЧрд╛, рдФрд░ рдЙрдкрднреЛрдХреНрддрд╛ рдЗрд╕ рдордЪрд┐рди рд╕реЗ рд╕рдВрджреЗрд╢ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред

рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЙрдкрднреЛрдХреНрддрд╛ рдПрдХ рдПрдЬреЗрдВрдЯ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдПрдЬреЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдкреНрд░рд╛рдкреНрдд () рдФрд░ рдЪрдпрди () рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд╛рдЪрд┐рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдПрдЬреЗрдВрдЯреЛрдВ рдФрд░ рдордЪрд┐рди-рдПрд╕ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрдкрдХрд░рдг рдХреА рдорджрдж рд╕реЗ рдЗрд╕ рдЕрд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред

рдЗрд╕ рддрд░рд╣ рдХреЗ рдЙрдкрдХрд░рдг рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдПрдХ рд╕рдВрджреЗрд╢ рдорд╛рдЪрд┐рди рдореЗрдВ рдЖрддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдХрд┐рд╕ рдмрд┐рдВрджреБ рдкрд░ рдорд╛рдЪрд┐рди рд╕реЗ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдпрджрд┐ рдЙрдкрднреЛрдХреНрддрд╛ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ рдФрд░ рдХреБрдЫ рднреА рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдореИрдЪрд┐рди рд╕реЗ рд╕рдВрджреЗрд╢ рдХреЛ рддреБрд░рдВрдд рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЙрдкрднреЛрдХреНрддрд╛ рдПрдЬреЗрдВрдЯ рдХреЛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЙрдкрднреЛрдХреНрддрд╛ рдХреЛ рдореЗрдЪрд┐рди рд╕реЗ рдПрдХ рд╕рдВрджреЗрд╢ рдкрд╣рд▓реЗ рд╣реА рднреЗрдЬрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЕрднреА рддрдХ рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдирдпрд╛ рд╕рдВрджреЗрд╢ рдкрд╣рд▓реЗ рд╣реА рдорд╛рдЪрд┐рди рдореЗрдВ рдЖ рдЪреБрдХрд╛ рд╣реИ ... рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдРрд╕реА рдЕрдЯрдХрд▓реЗрдВ рд╣реИрдВ рдХрд┐ рд▓рд┐рдлрд╛рдлреЗ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЬрдм рд╣рдо рдорд╛рдЪрд┐рди рд╕реЗ рдкрд╣рд▓рд╛ рд╕рдВрджреЗрд╢ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЙрдкрднреЛрдХреНрддрд╛ рдХреЛ рднреЗрдЬрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд▓рд┐рдлрд╛рдлреЗ рдореЗрдВ рд▓рдкреЗрдЯрддреЗ рд╣реИрдВред рдЬрдм рд▓рд┐рдлрд╛рдлрд╛ рджреЗрдЦрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрджреЗрд╢ рд╡рд┐рддрд░рд┐рдд рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдорд╛рдЪрд┐рди рд╕реЗ рдЕрдЧрд▓рд╛ рд╕рдВрджреЗрд╢ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ (рдпрджрд┐ рдХреЛрдИ рд╣реИ)ред

рдмреЗрд╢рдХ, рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдпрд╣ рдХрд╛рдлреА рд╕реЙрд▓реНрд╡ рд▓рдЧ рд░рд╣рд╛ рд╣реИред рдФрд░, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ, рдПрдХ рд╕рдорд╛рди рддрдВрддреНрд░ so_5_extra рдХреЗ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред

рдХреНрдпрд╛ рд╣рдо рднрд╛рдиреБрдорддреА рдХрд╛ рдкрд┐рдЯрд╛рд░рд╛ рдЦреЛрд▓рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ?


рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдХреНрд╖рдорддрд╛рдУрдВ рдЦреБрдж рджреЛрд╣рд░реА рднрд╛рд╡рдирд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреА рд╣реИрдВред

рдПрдХ рддрд░рдл, рд▓рд┐рдлрд╛рдлреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрди рдЪреАрдЬреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ / рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдП рдЧрдП рдереЗ (рд▓реЗрдХрд┐рди рдмрд╕ рдХреБрдЫ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдкрдирд╛ рджреЗрдЦрд╛)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЯрд╛рдЗрдорд░ рдХреА рдЧрд╛рд░рдВрдЯреА рд░рджреНрдж рдХрд░рдиреЗ рдФрд░ рдбрд┐рд▓реАрд╡рд░реА рдХреЗ рд╕рдордп, рд╡рд┐рддрд░рдг рд░рд┐рдкреЛрд░реНрдЯ, рдкрд╣рд▓реЗ рднреЗрдЬреЗ рдЧрдП рд╕рдВрджреЗрд╢ рдХреЛ рд╡рд╛рдкрд╕ рдмреБрд▓рд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд╣реИред

рджреВрд╕рд░реА рдУрд░, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реЛрдЧрд╛ред рдЖрдЦрд┐рд░рдХрд╛рд░, рдЖрдк рдХрд┐рд╕реА рднреА рдЕрд╡рд╕рд░ рд╕реЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдк рдЗрд╕ рдЕрд╡рд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдЬрд╝рд░реВрд░рдд рд╣реИ рдФрд░ рдЬрд╣рд╛рдВ рдЖрдк рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рддреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдкреЗрдВрдбреЛрд░рд╛ рдХрд╛ рдбрд┐рдмреНрдмрд╛ рдЦреЛрд▓ рджреЗрдВ рдФрд░ рд╣рдо рдЕрднреА рднреА рдХрд▓реНрдкрдирд╛ рди рдХрд░реЗрдВ рдХрд┐ рд╣рдореЗрдВ рдХреНрдпрд╛ рдЗрдВрддрдЬрд╛рд░ рд╣реИ?

рдпрд╣ рдХреЗрд╡рд▓ рдзреИрд░реНрдп рд░рдЦрдиреЗ рдФрд░ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рд╣рдореЗрдВ рдХрд╣рд╛рдВ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред

рд╕рдорд╛рдкрди рдХреЗ рдмрдЬрд╛рдп SObjectizer рдХреА рддрддреНрдХрд╛рд▓ рд╡рд┐рдХрд╛рд╕ рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп, рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдо рд╕реЛрдмрд┐рдЬрд╛рдЗрдЬрд╝рд░ рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рдирд┐рдХрдЯ (рдФрд░ рди рдХреЗрд╡рд▓) рдХреИрд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВред рдпрджрд┐ рдХреЛрдИ рд╣рдорд╛рд░реА рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХрд┐рд╕реА рдЪреАрдЬ рд╕реЗ рдЦреБрд╢ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдмрд╛рд╣рд░ рдмрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрд╕рдУрдмреАрдЬреЗрдирд╛рдЗрдЬрд░ -5 рдХреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдЧрд╛ред

SObjectizer-5.5.23 рдФрд░ so_5_extra-1.2.0 рдХреЗ рдкрд╣рд▓реЗ рдмреАрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг рдкрд╣рд▓реЗ рд╕реЗ рддрдп рд╣реИрдВ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЕрднреА рднреА рдмрд╣реБрдд рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд┐рд▓реАрдЬ рдХреА рдпреЛрдЬрдирд╛ рдирд╡рдВрдмрд░ рдХреЗ рдкрд╣рд▓реЗ рджрд╢рдХ рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИред рдпрджрд┐ рдпрд╣ рдкрд╣рд▓реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рдкрд╣рд▓реЗ рдХрд░реЗрдВрдЧреЗред

SObjectizer-5.5.23 рдХреА рд░рд┐рд╣рд╛рдИ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╢рд╛рдЦрд╛ 5.5 рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдЗрд╕рдХреЗ рдЕрдВрдд рдореЗрдВ рдЖ рд░рд╣рд╛ рд╣реИред рдпрд╣ рд╣реИ рдЗрд╕ рд╢рд╛рдЦрд╛ рдХреА рдкрд╣рд▓реА рд░рд┐рд▓реАрдЬ рдЪрд╛рд░ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЕрдХреНрдЯреВрдмрд░ 2014 рдореЗрдВред рддрдм рд╕реЗ, SObjectizer-5 рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдХрд┐рд╕реА рднреА рдмрдбрд╝реЗ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд┐рдирд╛ 5.5 рд╢рд╛рдЦрд╛ рдХреЗ рднреАрддрд░ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдЖ рд╣реИред рдпрд╣ рдЖрд╕рд╛рди рдирд╣реАрдВ рдерд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕ рддрдереНрдп рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдЗрд╕ рдмрд╛рд░ рд╣рдореЗрдВ рдЙрди рдХрдВрдкрд╛рдЗрд▓рд░реЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рдкрдбрд╝рд╛ рдЬреЛ C ++ 11 рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рд╕рдорд░реНрдерди рд╕реЗ рджреВрд░ рдереЗред

рдЕрдм рд╣рдо 5.5 рд╢рд╛рдЦрд╛ рдХреЗ рднреАрддрд░ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреБрд░рд╛рдиреЗ C ++ рдХрдВрдкрд╛рдЗрд▓рд░ рдкрд░ рд╕рдВрдЧрддрддрд╛ рджреЗрдЦрдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВред 2014 рдореЗрдВ рдХреНрдпрд╛ рдЙрдЪрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдм C ++ 14 рд╕рд┐рд░реНрдл рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рдЕрдкрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рд░рд╣рд╛ рдерд╛, рдФрд░ C ++ 17 рдЕрднреА рддрдХ рдХреНрд╖рд┐рддрд┐рдЬ рдкрд░ рдирд╣реАрдВ рдерд╛, рдЕрдм рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рджрд┐рдЦрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, SObjectizer-5.5 рдореЗрдВ рд╣реА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рд░реЗрдХ рдФрд░ рдмреИрдХрдЕрдк рдЬрдорд╛ рд╣реЛ рдЧрдП рд╣реИрдВ, рдЬреЛ рдЗрд╕реА рд╕рдВрдЧрддрддрд╛ рдХреЗ рдХрд╛рд░рдг рджрд┐рдЦрд╛рдИ рджрд┐рдП рдФрд░ рдЬреЛ SObjectizer рдХреЗ рдЖрдЧреЗ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рддреЗ рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП, рдЖрдиреЗ рд╡рд╛рд▓реЗ рдорд╣реАрдиреЛрдВ рдореЗрдВ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ:

1. so_5_extra рдХреЗ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд╡рд┐рдХрд╛рд╕, рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рдПрдЬреЗрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓реЗрдЦрди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдХреНрдпрд╛ рдпрд╣ so_5_extra-1.3.0 рд╣реЛрдЧрд╛ (рдпрд╛рдиреА 1.2.0 рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкрд░рд┐рд╡рд░реНрддрди рддреЛрдбрд╝рдиреЗ рдХреЗ рд╕рд╛рде) рдпрд╛ рдХреНрдпрд╛ рдпрд╣ so_5_extra-1.2.1 рд╣реЛрдЧрд╛ (рдпрд╛рдиреА рдмрд┐рдирд╛ рдкрд░рд┐рд╡рд░реНрддрди рддреЛрдбрд╝реЗ) рдЕрднреА рддрдХ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ so_5_extra рдХрд╛ рдЕрдЧрд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг SObjectizer-5.5 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрдЧрд╛ред

1 рдХред рдпрджрд┐ so_5_extra рдХреЗ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ SObjectizer-5.5 рдореЗрдВ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЕрдЧрд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг 5.5.24 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ so_5_extra рдХреЗ рд▓рд┐рдП рдпрд╣ SObjectizer рдХреЗ рдореВрд▓ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рддреЛ рд╕рдВрд╕реНрдХрд░рдг 5.5.23 рд╢рд╛рдЦрд╛ 5.5 рдХреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ рдЕрдВрддрд┐рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрд╕реНрдХрд░рдг рдмрди рдЬрд╛рдПрдЧрд╛ред рдорд╛рдореВрд▓реА рдмрдЧ-рдлрд┐рдХреНрд╕ рд░рд┐рд▓реАрдЬ рд╕рд╛рдордиреЗ рдЖрдПрдВрдЧреАред рд▓реЗрдХрд┐рди рд╢рд╛рдЦрд╛ 5.5 рдХрд╛ рд╡рд┐рдХрд╛рд╕ рд╕рдВрд╕реНрдХрд░рдг 5.5.23 рдпрд╛ 5.5.24 рдкрд░ рд╣реА рд░реБрдХ рдЬрд╛рддрд╛ рд╣реИред

2. рдлрд┐рд░ SObjectizer-5.6.0 рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдПрдХ рдирдИ рд╢рд╛рдЦрд╛ рдЦреЛрд▓реЗрдЧрд╛ред рд╢рд╛рдЦрд╛ 5.6 рдореЗрдВ рд╣рдо рд╕рднреА рд╕рдВрдЪрд┐рдд рдмреИрд╕рд╛рдЦрд┐рдпреЛрдВ рдФрд░ рдмреИрдХрдЕрдкреЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдкреБрд░рд╛рдиреЗ рдХреВрдбрд╝реЗрджрд╛рдиреЛрдВ рд╕реЗ SObjectizer рдХреЛрдб рдХреЛ рд╕рд╛рдл рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рдиреНрд╣реЗрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкрджрд╛рд╡рдирдд рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдЪреАрдЬреЗрдВ рд░рд┐рдлреИрдХреНрдЯрд┐рдВрдЧ рд╕реЗ рдЧреБрдЬрд░реЗрдВрдЧреА (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, abstract_message_box_t рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рд╣реА рдХрд╛рд░реНрдбрд┐рдирд▓ред рдХрд╛рдо рдХреЗ рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрдд рдФрд░ SObjectizer-5.6 рдореЗрдВ SObjectizer-5.5 рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╕рдорд╛рди рд░реВрдк рдореЗрдВ рд░рд╣реЗрдВрдЧреАред

SObjectizer-5.6 рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА C ++ 14 (рдХрдо рд╕реЗ рдХрдо GCC-5.5 рд╕реНрддрд░ рдкрд░) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред VC ++ 15 (рдЬреЛ Visual Studio 2017 рд╕реЗ рд╣реИ) рдХреЗ рдиреАрдЪреЗ рд╡рд┐рдЬреБрдЕрд▓ C ++ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред

рд╣рдо рд╢рд╛рдЦрд╛ 5.6 рдХреЛ SObjectizer рдХреА рдПрдХ рд╕реНрдерд┐рд░ рд╢рд╛рдЦрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддреЗ рд╣реИрдВ, рдЬреЛ SObjectizer-5.7 рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рддрдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛрдЧреАред

рдореИрдВ рдлрд░рд╡рд░реА рдореЗрдВ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ 2019 рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг 5.6.0 рдЬрд╛рд░реА рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

3. рд╢рд╛рдЦрд╛ 5.6 рдХреЛ рд╕реНрдерд┐рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд╢рд╛рдЦрд╛ 5.7 рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо SObjectizer рдХреЗ рдХрд╛рдо рдХреЗ рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдирд┐рдЬреА рд▓реЛрдЧреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбрд┐рд╕реНрдкреИрдЪрд░реЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫреЛрдбрд╝ рджреЗрдВред рд╕рд╣рдХрд╛рд░реА рд╕рдорд┐рддрд┐рдпреЛрдВ рдХреЗ рддрдВрддреНрд░ рдФрд░ рдЙрдирдХреЗ рдЕрднрд┐рднрд╛рд╡рдХ-рдмрдЪреНрдЪреЗ рдХреЗ рд░рд┐рд╢реНрддреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдПрдВ, рдЬрд┐рд╕рд╕реЗ рд╕рд╣рдХрд╛рд░реА рд╕рдорд┐рддрд┐рдпреЛрдВ рдХреЗ рдкрдВрдЬреАрдХрд░рдг / рдбреЗрд░реЗрдЧреЗрдЯрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдЕрдбрд╝рдЪрди рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓ рд╕рдХреЗред рд╕рдВрджреЗрд╢ / рд╕рдВрдХреЗрдд рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрди рдирд┐рдХрд╛рд▓реЗрдВред рдХреЗрд╡рд▓ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП / send_delayed / send_periodic рдХреЛ рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ, рдФрд░ "рд╣реБрдб рдХреЗ рддрд╣рдд" рдкрд╣реБрдВрдЪ рдФрд░ рд╢реЗрдбреНрдпреВрд▓_рдЯрд╛рдЗрдорд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЫреБрдкрд╛рдпреЗрдВред рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрд╛ рддреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдбрд╛рдпрдиреЗрдорд┐рдХ_рдХрд╛рд╕реНрдЯ рд╣рдЯрд╛ рджреЗрдВ, рдпрд╛ рдЙрдиреНрд╣реЗрдВ рдмрд╣реБрдд рдХрдо рдХрд░ рджреЗрдВред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЬрд╣рд╛рдВ рдШреВрдордирд╛ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕реА рд╕рдордп, SObjectizer-5.7 рдХреЛ C ++ 14 рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА C ++ 17 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдпрджрд┐ рдЖрдк рдЧреБрд▓рд╛рдмреА рдЪрд╢реНрдореЗ рдХреЗ рдмрд┐рдирд╛ рдЪреАрдЬреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЕрдЧрд░ рд░рд┐рд▓реАрдЬ 5.7.0 рджреЗрд░ рд╕реЗ рд╢рд░рдж рдЛрддреБ 2019 рдореЗрдВ рд╣реЛрддреА рд╣реИред рдпрд╣ рдХреНрдпрд╛ рд╣реИ 2019 рдХреЗ рд▓рд┐рдП SObjectizer рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рд╕рдВрд╕реНрдХрд░рдг рд╢рд╛рдЦрд╛ 5.6 рд╣реЛрдЧрд╛ред

4. рдЗрд╕ рд╕рдмрдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░, рдЗрд╕рд▓рд┐рдП_5_ рдХрд╕реНрдЯрдореНрд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдЧрд╛ред рд╕рдВрднрд╡рддрдГ, so_5_extra-2 рд╕рдВрд╕реНрдХрд░рдг SObjectizer-5.6 рдХреЗ рд╕рд╛рде рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ 2019 рдХреЗ рдкрд╛рдареНрдпрдХреНрд░рдо рдкрд░ рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди SObjectizer-5.6 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрдЧрд╛ред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдЦреБрдж SObjectizer-5 рдХреЗ рдХреБрдЫ рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдХреНрд░рдорд┐рдХ рд╕рдВрд╢реЛрдзрди рдХреЗ рд╕рд╛рде SObjectizer-5 рдХреЗ рд▓рд┐рдП рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рд╡рд┐рдХрд╛рд╕ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред рдЙрд╕реА рд╕рдордп, рд╣рдо рдЗрд╕реЗ рдпрдерд╛рд╕рдВрднрд╡ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдиреНрдпреВрдирддрдо рджрд░реНрдж рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрдЧрд░ рдХреЛрдИ SObjectizer рд╕реЗ рдЕрдзрд┐рдХ рдирд╛рдЯрдХреАрдп рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрджрд▓рд╛рд╡ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕ рдкрд░ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ ред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ: рдЖрдк рдЕрдкрдиреА рдкрд╕рдВрдж рдХреЗ рдЕрдиреБрд╕рд╛рд░ SObjectizer рдХрд╛ рд░реАрдореЗрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП SObjectizer-6 рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ред рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрдиреЗ рдЦрд░реНрдЪ рдкрд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ SObjectizer -5 рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИред

рд╢рд╛рдпрдж рдпрд╣реА рд╕рдм рд╣реИредрдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдПрдХ рдЕрдЪреНрдЫреА рдФрд░ рд░рдЪрдирд╛рддреНрдордХ рдЪрд░реНрдЪрд╛ рдирд┐рдХрд▓реАрдВред рдЕрдЧрд░ рдЗрд╕ рдмрд╛рд░ рднреА рдЗрд╕реА рддрд░рд╣ рдХреА рдЪрд░реНрдЪрд╛ рд╣реБрдИ рддреЛ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд╣рдо рдХрд┐рд╕реА рднреА рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдордЭрджрд╛рд░ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдФрд░ рдЦреБрд╢реА рдХреЗ рд╕рд╛рдеред

рдФрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд░реЛрдЧреА рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдЧрдП рд╣реИрдВ, рд▓реЗрдЦ рдкрдврд╝рдиреЗ рдореЗрдВ рдмрд┐рддрд╛рдП рдЧрдП рд╕рдордп рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред

Source: https://habr.com/ru/post/hi426983/


All Articles