рдХреГрдкрдпрд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХреИрд╕рд╛рдмреНрд▓рд╛рдВрдХрд╛ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрдПрдВ


рдХреБрдЫ рд╣рдлрд╝реНрддреЗ рдкрд╣рд▓реЗ, Microsoft рдиреЗ рдЕрдкрдирд╛ рдирдпрд╛ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ - рдХреИрд╕рд╛рдмреНрд▓рд╛рдВрдХрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ред рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИ, рдЖрдкрдХреЛ рдкрд┐рдЫрд▓реЗ рдЧреЛрдЗрдВрдЧ рдиреЗрдЯрд┐рд╡ 2012 рд╕рдореНрдореЗрд▓рди рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рдкреАрдЫреЗ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдирдП рд╕реА ++ 11 рдорд╛рдирдХ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЪрддреБрд░ рд╡рд┐рдЪрд╛рд░ рдХрд╣рд╛ рдЧрдП рдереЗред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рд╣рд░реНрдм рд╕рдЯрд░ рдХреЗ рд╡реНрдпрд╛рдЦреНрдпрд╛рди рдореЗрдВ рдерд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ рдЖрдзреБрдирд┐рдХ C ++ рдореЗрдВ рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рд╕рднреА рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдпрд╛ рд▓рдВрдмреЛрджрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рд╡рд╛рдХреНрдп рд╡рд┐рдиреНрдпрд╛рд╕ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЧрд░реАрдмреА рд╣реИред рдЬрдм рдПрдХ рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рдЬрд╛рд╡рд╛ рдпрд╛ рд╕реА # рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЕрдкрдиреЗ рд╡рд░рд┐рд╖реНрда рд╕рд╣рдпреЛрдЧреА рд╕реЗ рдкреВрдЫрддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдПрдХ HTTP рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ / рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, XML \ JSON, рд╕рдВрдЧреНрд░рд╣ / рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВ, рдЖрджрд┐ред - рд╡рд╣ рдПрдХ рдареЛрд╕, рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЙрддреНрддрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ: "рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ"ред рдЬрдм рдПрдХ рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рд╕реА ++ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдПрдХ рд╣реА рд╕рд╡рд╛рд▓ рдкреВрдЫрддрд╛ рд╣реИ - рд╡рд╣ "рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реБрдирддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдорд╛рдирдХ рдЙрдкрдХрд░рдг рдирд╣реАрдВ рд╣реИрдВ, рдЖрдкрдХреЛ рдпрд╛ рддреЛ рдЦреБрдж рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдпрд╛ рдХреБрдЫ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдЪреБрдирдиреЗ, рдкрд░реАрдХреНрд╖рдг, рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкрдврд╝рдиреЗ ..." рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдирддреАрдЬрддрди, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдПрдХ рдЬрдВрдЧрд▓реА рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рд╣реИ, рдЕрдХреНрд╕рд░ рдПрдХ рдШрдЯрд┐рдпрд╛ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо, рд╕реНрд╡-рдирд┐рд░реНрдорд┐рдд рд╕рд╛рдЗрдХрд┐рд▓ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛, рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдореЗрдВ рдХрдард┐рдирд╛рдИ, рдХреНрдпреЛрдВрдХрд┐ "рдореИрдВ рдмреВрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдХреНрдпреВрдЯреА рдкрд░ рд╣реИ", рдЖрджрд┐ред рд╣рд░реНрдм рд╕рдЯрд░ рдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐ рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИред

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


рддреЛ рдХреИрд╕рд╛рдмреНрд▓рд╛рдВрдХрд╛ рдореЗрдВ рдХреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ? рдореИрдВ рдЖрдкрдХреЛ рддреБрд░рдВрдд рдХрд╛рд╕рд╛рдмреНрд▓реИрдВрдХрд╛ рдкрд░ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рджрд┐рдЦрд╛рддрд╛ рд╣реВрдВ - рдпрд╣ рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╣реЛрдЧрд╛ рдЬреЛ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб!" рдкрд╛рда рдХреЛ рдХрд┐рд╕реА рднреА рдЕрдиреБрд░реЛрдз рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛ рджреЗрдЧрд╛:

#include "stdafx.h" #include <iostream> #include "astreambuf.h" using namespace http::listener; int main(int argc, char* argv[]) { http_listener::create("http://localhost:4711/trivial", [](http_request message) { message.reply(http::status_codes::OK, "Hello World!"); }) /* Prevent Listen() from returning until user hits 'Enter' */ .listen([]() { fgetc(stdin); }).wait(); return 0; } 


рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ рдирд╛?

рдФрд░ рдЕрдм рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗред рдЗрд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрд╛рддреЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

рдкреАрдкреАрдПрд▓ рдХрд╛рд░реНрдп


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

 http::http_client client("http://localhost:80"); pplx::task<http::http_response> resp = client.request(methods::GET, "/foo.html"); 


рдпрд╣рд╛рдБ рд╣рдордиреЗ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ http рдХреНрд▓рд╛рдЗрдВрдЯ рдмрдирд╛рдпрд╛: 80 рдФрд░ рдХрд╛рд░реНрдп "рдореБрдЭреЗ GET рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде foo.html рдкреЗрдЬ рджреЗрдВ"ред рдирд┐рд░реНрдорд╛рдг рдХреЗ рдХреНрд╖рдг рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдп рдХреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд▓рдЧрддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рдХреНрд╖рдг рдореЗрдВ, рд╣рдо рдЙрд╕ рдХрд╛рд░реНрдп рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЪрд╛рд╣реЗ рд╡рд╣ рдкрд╣рд▓реЗ рд╣реА рдкреВрд░рд╛ рд╣реЛ рдЪреБрдХрд╛ рд╣реЛ:

 bool done = resp.is_done(); 


рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП рдкреВрдЫреЗрдВ:

 http_response response = resp.get(); 

рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдХрд╛рд░реНрдп рдХреЛ рддреБрд░рдВрдд рд▓реИрдореНрдмреНрдбрд╛ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЗрд╕рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

 resp.then( [=](http_response response) { ... }); 



рдкреАрдкреАрдПрд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдпрд╣рд╛рдБред

HTTP рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░


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

рдПрдЬрд╝реНрдпреЛрд░ рд╕реНрдЯреЛрд░реЗрдЬ рд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдПрдХреНрд╕реЗрд╕ рдХрд░реЗрдВ


рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрд╣рд╛ рдерд╛ рдХрд┐ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдПрдЬрд╝реНрдпреЛрд░ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рд╕реБрд╡рд┐рдзрд╛ рд╣реИред рдпрд╣рд╛рдБ Azure Storage Services рдореЗрдВ рд╕реНрдЯреЛрд░реЗрдЬ рдкреНрд░реЛрд╕реЗрд╕ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ

 storage_credentials creds = local_storage::get_credentials(); cloud_blob_client local(local_storage::get_blob_uri(), local_storage::get_credentials()); cloud_blob_client real("http://johndoe.blob.core.windows.net", creds); cloud_blob_container container = client.create_container(L"sampledata").get(); auto blob = container.create_block_blob(L"sample1"); blob.put(L"A first sample blob", L"text/plain"); 

рдмрд╣реБрдд рд╕рдВрдХреНрд╖рд┐рдкреНрдд, рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред

JSON


рдкрджрдЪреНрдЫреЗрдж

 std::istream stream = ...; json::value value1(stream); double var = value1["var"].as_double() 


рд╕реГрдЬрди

 json::value::element_vector e; e.push_back(json::value(false)); e.push_back(json::value::string("hehe")); json::value arr = json::value::array(e); std::ostream stream = ...; stream << arr; 


рдЕрднрд┐рдиреЗрддрд╛


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

 class Hello : public actors::actor { public: Hello() {} actors::actor *factory() { new Hello(); } protected: void initialize(actors::ActorInitEvent e) { } virtual void execute() { std::string name; accept(name).then([=](std::string &name) { std::cout << "Hello, " << name << "!" << std::endl; Done(); }); } }; ... PID h = actor::spawn<Hello>(); h.send<std::string>("Niklas"); 


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

рд╕рдВрдмрдВрдзрд┐рдд рд╕рд╛рдордЧреНрд░реА


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


All Articles