
POCO рд▓рд╛рдЗрдмреНрд░реЗрд░реА (
рдкреЛрд░реНрдЯреЗрдмрд▓ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ ) рдкрд░ рдЕрдкрдиреЗ
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдХреЛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реБрдП, рдореИрдВ POCO рдПрдкреНрд▓реАрдХреЗрд╢рди рд╕реНрдиреИрдк-рдЗрди рдФрд░ рдЙрд╕рдХреЗ рдбреЗрд░рд┐рд╡реЗрдЯрд┐рд╡ рдЬреИрд╕реЗ рдХрд┐ ServerApplication рдФрд░ ConsoleApplication рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдиреИрдк-рдЗрди рдХреЛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдФрд░, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рд╕рдордп рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рд╕реНрдиреИрдк-рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдорд┐рдирдЯреЛрдВ рдореЗрдВ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рд╡рд┐рдВрдбреЛрдЬ рд╕реЗрд╡рд╛рдПрдВ рдФрд░ UNIX рдбреЗрдореЙрди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд┐рд╡рд░рдг
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдбреЗрд░рд┐рд╡реЗрдЯрд┐рд╡реНрд╕ рдХреЛ 2 рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рдХрдВрд╕реЛрд▓ рдФрд░ рд╕рд░реНрд╡рд░ ред
рдЙрдкрдХрд░рдг рдореЗрдВ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдРрд╕реА рдЪреАрдЬреЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- рдЙрдЪреНрдЪ рд╕реНрддрд░ рдкрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВред рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдФрд░ рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рди рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдПрдХ рдкреНрд░рдгрд╛рд▓реА рд╣реИред
- UNIX рдбреЗрдореЙрди рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгред
- рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВред рдпрд╣ рдЖрдЗрдЯрдо рдЖрдзреБрдирд┐рдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдпрд╛ рд╡рд┐рдВрдбреЛрдЬ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдЖрд░рдВрдн рдФрд░ рд╕рдорд╛рдкрдиред POCO Application рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдЬреАрд╡рди рдЪрдХреНрд░ рдХреЗ рдЕрдзреАрди рд╣реИ: рдкреНрд░рд╛рд░рдВрдн - рдПрдХ рдЖрд╡реЗрджрди рдкреНрд░рджрд░реНрд╢рди - рд╢рдЯ рдбрд╛рдЙрди рдХрд░рдирд╛ ред рдпрд╣ рдСрд░реНрдбрд░ рд╣рдореЗрдВ рдореЗрди рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд╛рд░реНрдЯ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рдиреЗ рдФрд░ рд╕рднреА рдЫреЛрдЯреА рдЪреАрдЬреЛрдВ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
- рд▓реЙрдЧрд┐рдВрдЧ рдЯреВрд▓ред рдпрд╣ рдХреЛрдИ рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рдХреНрд╖рдо рд▓реЙрдЧ рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рдгрд╛рд▓реА рд╣рдореЗрдВ рд╕рдордп рдФрд░ рдХрднреА-рдХрднреА рдкреИрд╕реЗ рдмрдЪрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред POCO рд╣рдореЗрдВ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд▓реЙрдЧрд┐рдВрдЧ рдЯреВрд▓ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд▓реЙрдЧреНрд╕ рдХреЛ рдХрдВрд╕реЛрд▓ рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП, рд╡рд┐рдВрдбреЛрдЬ рдИрд╡реЗрдВрдЯ рд▓реЙрдЧ рдореЗрдВ, SYSLOG рд╕рд░реНрд╡рд░ рдкрд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рд╕рд┐рд╕реНрдЯрдо рдЕрдбрд╝рдЪрди рдПрдХ рд╣рд╛рд░реНрдб рдбрд┐рд╕реНрдХ рд╣реИ)ред рдкреНрд░рддреНрдпреЗрдХ рдЪреИрдирд▓ рдХреЗ рд▓рд┐рдП рдордирдорд╛рдиреА рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкреНрд░рд╛рд░реВрдк рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЛ рдкреЗрд╢ рдХрд░реВрдВрдЧрд╛ред
- рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдирд┐рд░реНрдорд╛рдг, рдПрдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЙрдирдХрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рдФрд░ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдкреИрдХреЗрдЬрд┐рдВрдЧред рдПрдХ рдореЙрдбреНрдпреВрд▓рд░ рдкреНрд░рдгрд╛рд▓реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рдЬрд┐рд╕рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдлрд┐рд░ рд╕реЗ рджреЗрдЦреЗ рдмрд┐рдирд╛ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЕрднреНрдпрд╛рд╕
рдЗрд╕ рд╕реНрдиреИрдк-рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
рдкреЛрдХреЛ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
:: Util :: рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЕрдзрд┐рднрд╛рд░рд┐рдд рдХрд░реЗрдВ:
void initialize(Application& self)
void uninitialize()
void reinitialize(Application& self)
void defineOptions()
void handleOption()
int main(const std::vector<std::string>& args)
рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд▓реЙрдиреНрдЪ рд╡рд┐рдХрд▓реНрдк
POCO рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╡рд┐рдХрд▓реНрдк рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкреНрд░рддреНрдпреЗрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЧреБрдг рд╣реЛрддреЗ рд╣реИрдВ:
- рдкреВрд░рд╛ рдирд╛рдо
- рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо
- рдЪрд░рд┐рддреНрд░ рдХрд╛ рдирд╛рдо (1 рд╡рд░реНрдг)
- рд╡рд┐рд╡рд░рдг
рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕рдореВрд╣реАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП рдорд╛рди рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рд╕рдВрд▓рдЧреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред POCO рдореЗрдВ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИрдВ: IntValidator - рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рдиреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ, RegExpValidator - рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЕрдиреБрдкрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЙрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рд╕рддреНрдпрд╛рдкрди рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реБрдП рд╣реИрдВ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдПрдХ рддреНрд░реБрдЯрд┐ рд▓реМрдЯрд╛рдПрдЧрд╛ рдФрд░ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдк рджрд┐рдЦрд╛рдПрдЧрд╛, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВред рдЖрдк рдорд╛рдкрджрдВрдбреЛрдВ рдкрд░ рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВрдбрд▓рд░ (рдХреЙрд▓рдмреИрдХ) "рд╣реИрдВрдЧ" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
class myApp : public Application { public: myApp(int argc, char** argv) : Application(argc,argv) {} void initialize(Application& self) { cout << "" << endl; loadConfiguration();
UNIX рдбреЗрдореЙрди рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгред
рдПрдХ рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрднреА-рдХрднреА рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд┐рд╕реНрдЯрдо рд╕реЗ) рд╕реЗ рд╢реБрд░реВ рд╣реЛ рдФрд░ рдмрд╛рдж рд╡рд╛рд▓реЗ рд╕реЗ рд╕рдВрд╕рд╛рдзрди рди рд▓реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдУрдПрд╕ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред POCO рдореЗрдВ рдПрдХ рд╕реЗрд╡рд╛ рдпрд╛ рдбреЗрдореЙрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛
рдкреЛрдХреЛ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ
рдорд┐рд▓рд╛ рд╣реИ ред
:: Util :: ServerApplication ред
рд╣рдо рдХреБрдЫ рдХрд╛рд░реНрдп рдХреЗ рд╡рд░реНрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдХрд╛ рддрд░реНрдХ рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рд░ рд╕реЗрдХрдВрдб рдпрд╣ рд▓реЙрдЧ рдХреЛ рд▓рд┐рдЦреЗрдЧрд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдиреЗ рдХрд┐рддрдирд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ:
class myServerTask: public Task { public: myServerTask(): Task("MyTask")
рдЕрдЧрд▓рд╛, рд╣рдо рд╕реАрдзреЗ рд╕рд░реНрд╡рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ:
class myServer: public ServerApplication { protected: void initialize(Application& self) {
рд╕рдм рдХреБрдЫ, рд╕реЗрд╡рд╛ рдФрд░ рдбреЗрдорди рд▓рд┐рдЦрд╛ рд╣реИред
рдЕрдм рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛрдЬ рд╕реЗрд╡рд╛ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдФрд░ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ:
- Windows рд╕реЗрд╡рд╛ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: / registerService
- рд╡рд┐рдВрдбреЛрдЬ рд╕реЗрд╡рд╛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: / unregisterService
- рд╡рд┐рдВрдбреЛрдЬ рд╕реЗрд╡рд╛ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП: / displayName "рдирд╛рдо"
рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░рдирд╛ рдФрд░ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
- рдпреВрдирд┐рдХреНрд╕ рдбреЗрдореЙрди рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП: - рдХрд╛рдо
- рд╡рд┐рдВрдбреЛрдЬ рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЪрд▓рд╛рдПрдВ: рдиреЗрдЯ рд╕реНрдЯрд╛рд░реНрдЯ <рдПрдкреНрд▓реАрдХреЗрд╢рди>
- рд╣рддреНрдпрд╛рд░реЗ рдбреЗрдореЙрди рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП <рдПрдкреНрд▓реАрдХреЗрд╢рди>
- рд╕рд░реНрд╡рд┐рд╕ рдиреЗрдЯ рд╕реНрдЯреЙрдк рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП <Application>
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
void loadConfiguration(const std::string& path, int priority = PRIO_DEFAULT);
рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
- .properties - рдЧреБрдг рдлрд╝рд╛рдЗрд▓ (PropertyFileConfiguration)
- .ini - рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдлрд╝рд╛рдЗрд▓ (IniFileConfiguration)
- .xml - XML тАЛтАЛрдлрд╝рд╛рдЗрд▓ (XMLConfiguration)
рдбреЗрдЯрд╛ рдЕрдкрд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред POCO рдореЗрдВ, рдПрдХ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдПрдХ рдкреЗрдбрд╝ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рддрдХ рдкрд╣реБрдВрдЪ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЬрд╛рддреА рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП XML:
<?xml version="1.0" encoding="UTF-8"?> <recipe name="" preptime="5" cooktime="180"> <title> </title> <composition> <ingredient amount="3" unit=""></ingredient> <ingredient amount="0.25" unit=""></ingredient> <ingredient amount="1.5" unit=""> </ingredient> <ingredient amount="1" unit=" "></ingredient> </composition> <instructions> <step> .</step> <step> .</step> <step> , .</step> </instructions> </recipe>
рд╣рдо рдЗрд╕ рддрд░рд╣ рдЬрд╣рд╛рдЬ:
void initialize(Application& self) { ofstream file("out.txt"); cout << "" << endl; loadConfiguration("a:\\conf.xml"); file << " : " << config().getString("title") << endl << " : " << config().getString("composition.ingredient[0]") << " : " << config().getString("composition.ingredient[0][@amount]") << " " << config().getString("composition.ingredient[0][@unit]") << endl << config().getString("composition.ingredient[1]") << " : " << config().getString("composition.ingredient[1][@amount]") << " " << config().getString("composition.ingredient[1][@unit]") << endl << config().getString("composition.ingredient[2]") << " : " << config().getString("composition.ingredient[2][@amount]") << " " << config().getString("composition.ingredient[2][@unit]") << endl << config().getString("composition.ingredient[3]") << " : " << config().getString("composition.ingredient[3][@amount]") << " " << config().getString("composition.ingredient[3][@unit]") << endl << " : " << endl << config().getString("instructions.step[0]") << endl << config().getString("instructions.step[1]") << endl << config().getString("instructions.step[2]") << endl; int timeToCook = config().getInt("[@cooktime]"); file << " : " << timeToCook << endl; file.close(); }
рдкрд░рд┐рдгрд╛рдо рдпрд╣ рд╣реИ:
рд╣рдо рдкрдХрд╛рддреЗ рд╣реИрдВ: рд╕рд╛рдзрд╛рд░рдг рд░реЛрдЯреА
рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП: рдЖрдЯрд╛: 3 рдХрдк
рдЦрдореАрд░: 0.25 рдЧреНрд░рд╛рдо
рдЧрд░реНрдо рдкрд╛рдиреА: 1.5 рдХрдк
рдирдордХ: 1 рдЪрдореНрдордЪ
рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ:
рд╕рднреА рдЕрд╡рдпрд╡реЛрдВ рдХреЛ рдорд┐рд▓рд╛рдПрдВ рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЧреВрдВрдзреЗрдВред
рдПрдХ рдХрдкрдбрд╝реЗ рдХреЗ рд╕рд╛рде рдХрд╡рд░ рдХрд░реЗрдВ рдФрд░ рдПрдХ рдЧрд░реНрдо рдХрдорд░реЗ рдореЗрдВ рдПрдХ рдШрдВрдЯреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджреЗрдВред
рдлрд┐рд░ рд╕реЗ рдЧреВрдВрдз, рдПрдХ рдмреЗрдХрд┐рдВрдЧ рд╢реАрдЯ рдФрд░ рдУрд╡рди рдореЗрдВ рд░рдЦреЗрдВред
рдЦрд╛рдирд╛ рдкрдХрд╛рдиреЗ рдХрд╛ рд╕рдордп: 180
рдЗрд╕реА рддрд░рд╣, рдЖрдк рдкрд╛рд░реНрд╕ рдФрд░ INI рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддрджрдиреБрд╕рд╛рд░, рд╣рдореЗрд╢рд╛ "рд╢реНрд░реЗрдгреА.рдХреА" рдлрд╝реЙрд░реНрдо рдХреА рдкрд╣рдЪрд╛рди рд╣реЛрдЧреАред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
;INI-File [Group] ValueText = "hello world" IntValue = 123
рд╣рдо рдЗрд╕ рддрд░рд╣ рдЬрд╣рд╛рдЬ:
std::string text = config().getString("Group.ValueText");
.Property рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЪрд░ рдХрд╛ рдирд╛рдо рд╣реА рд╣реЛрддрд╛ рд╣реИ
; рдЬрд╛рд╡рд╛ рд╕рдВрдкрддреНрддрд┐ рдлрд╝рд╛рдЗрд▓
Value.Text = "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб"
Int.Value = 123
рд╣рдо рдЗрд╕ рддрд░рд╣ рдЬрд╣рд╛рдЬ:
std::string text = config().getString("Value.Text");
рд▓реЙрдЧрд┐рдВрдЧ рдЯреВрд▓
рд▓реЙрдЧрд┐рдВрдЧ рдЯреВрд▓ рдореЗрдВ рдЪрд╛рд░ рдореБрдЦреНрдп рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВ:
- рд▓рдХрдбрд╝рд╣рд╛рд░рд╛
- рдЪреИрдирд▓
- рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣рдг рдСрдмреНрдЬреЗрдХреНрдЯ (рдлрд╝рд╛рдЗрд▓, рдбреЗрдЯрд╛рдмреЗрд╕)
- рдлрд╝реЙрд░реНрдореЗрдЯрд░
рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рд╡рд╣ рдХрдбрд╝реА рд╣реИ рдЬрд┐рд╕реЗ рд╣рдорд╛рд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЧ рдореЗрдВ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕реЗрд╕ рдХрд░рддрд╛ рд╣реИред рд▓реЙрдЧрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдЗрдХрд╛рдИ рдПрдХ рд╕рдВрджреЗрд╢ рд╣реИред
рд╕рдВрджреЗрд╢ рдПрдХ рд╡рд╕реНрддреБ рд╣реИ:
- рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд (рдкреВрд░реНрд╡ рдЪрдпрдирд┐рдд рдкрд╛рда рдорд╛рди)
- рдбреЗрдЯрд╛ - рдШрдЯрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдпреБрдХреНрдд рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ
- рд╕рдордп рдХреА рдореЛрд╣рд░
- рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдердорд┐рдХрддрд╛
- рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ (PIDs) рдФрд░ рдкреНрд░рд╡рд╛рд╣ (TID)
- рдХреБрдЫ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдХрд▓реНрдк
рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдБ рдирд┐рдореНрди рдХреНрд░рдо рдореЗрдВ рд╕реЗрдЯ рдХреА рдЬрд╛рддреА рд╣реИрдВ (рдирд┐рдореНрди рд╕реЗ рдЙрдЪреНрдЪ рдореЗрдВ):
- рдЯреНрд░реЗрд╕ рдЬрд╛рдирдХрд╛рд░реА (рдЯреНрд░реЗрд╕)
- рдбреАрдмрдЧ рдЬрд╛рдирдХрд╛рд░реА (рдбреАрдмрдЧ)
- рддрдХрдиреАрдХреА рдЬрд╛рдирдХрд╛рд░реА
- рдЕрдиреБрд╕реНрдорд╛рд░рдХ (рд╕реВрдЪрдирд╛)
- рдЪреЗрддрд╛рд╡рдиреА (рдЪреЗрддрд╛рд╡рдиреА)
- рддреНрд░реБрдЯрд┐ (рддреНрд░реБрдЯрд┐)
- рдЧрдВрднреАрд░ рддреНрд░реБрдЯрд┐
- рдШрд╛рддрдХ рддреНрд░реБрдЯрд┐
рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдбреЗрдЯрд╛ рдХреЛ рднреА рдЗрдирдХреЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЛ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЪреИрдирд▓ - рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдФрд░ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдмреАрдЪ рдПрдХ рд▓рд┐рдВрдХред
рдХрдИ рдореВрд▓ рдЪреИрдирд▓ рд╣реИрдВ:
- ConsoleChannel - рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдПрдХ рдЪреИрдирд▓ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛ рдХреЛ рдорд╛рдирдХ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдо STDOUT рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИ
- WindowsConsoleChannel - рдПрдХ рд╡рд┐рдВрдбреЛрдЬрд╝-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдВрд╕реЛрд▓ рдЪреИрдирд▓ рдЬреЛ рдбреЗрдЯрд╛ рдХреЛ std :: clog рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИ
- NullChannel - рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ
- SimpleFileChannel - рдПрдХ рдлрд╝рд╛рдЗрд▓ рдкрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдЪреИрдирд▓, рдПрдХ рдирдИ рд▓рд╛рдЗрди рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдирдП рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рдеред рдПрдХ рд╕рд┐рд▓реЗ рдЕрдзрд┐рдХрддрдо рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░ рд╣реИред рдкреНрд░рд╛рдердорд┐рдХ рдЕрдзрд┐рдХрддрдо рдЖрдХрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рдкрд░ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреНрд╡рд┐рддреАрдпрдХ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдоред
- FileChannel рдПрдХ рдСрд▓-рд╡реНрд╣реАрд▓ рдбреНрд░рд╛рдЗрд╡ рдлрд╛рдЗрд▓ рдЪреИрдирд▓ рд╣реИред рд╕рдВрдЧреНрд░рд╣, рд╕рдордп рдХреНрд╖реЗрддреНрд░, рд╕рдВрдкреАрдбрд╝рди, рдЕрдзрд┐рдХрддрдо рд▓реЙрдЧ рдЬреАрд╡рдирдХрд╛рд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
- EventLogChannel рдПрдХ рд╡рд┐рдВрдбреЛрдЬ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛ рдЪреИрдирд▓ рд╣реИ рдЬреЛ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╡рд┐рдВрдбреЛрдЬ рд╕рд┐рд╕реНрдЯрдо рдЗрд╡реЗрдВрдЯ рд▓реЙрдЧ рдореЗрдВ рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
- SyslogChannel - рдПрдХ рдЪреИрдирд▓ рдЬреЛ syslog рдбреЗрдорди рд╕рд░реНрд╡рд░ рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИред
- AsyncChannel - рдПрдХ рдкреБрд▓ рдЬреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдЪреИрдирд▓ рдХреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
- SplitterChannel - рдПрдХ рдЪреИрдирд▓ рдЬреЛ рдЖрдкрдХреЛ рдХрдИ рдЪреИрдирд▓реЛрдВ рдкрд░ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдирд╛
рдкреАрдУрд╕реАрдУ рдореЗрдВ, рдореВрд▓ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣рд░ рдХреАрдордд рдкрд░ рдкреНрд░рддрд┐рд░реВрдкрдХрддрд╛ рд╣реИ, рдФрд░ рдЖрдк рдПрдХ рдЕрдЪреНрдЫреЗ рдЙрдкрдХрд░рдг, рдХреНрд▓рд╛рд╕рдУрд▓реЗрдбрд░ рдХреЗ рд╕рд╛рде рд░рдирдЯрд╛рдЗрдо рдкрд░ рдЗрд╕ рддрд░рд╣ рдХреА рдореЙрдбреНрдпреВрд▓рд░рд┐рдЯреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЧрддрд┐рд╢реАрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╣рдо рдПрдХ рд╕рд░рдгреА рдХреЛ рдЫрд╛рдВрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рд░ рд╡рд░реНрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред
рдирд┐рд░реНрдпрд╛рдд рдХреЗ рд▓рд┐рдП, рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдФрд░ рд╡рд░реНрдЪреБрдЕрд▓ рдбрд┐рд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдФрд░ рдПрдХ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рд╡рд░реНрдЪреБрдЕрд▓ рд╡рд┐рдзрд┐
рд╡рд░реНрдЪреБрдЕрд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╛рдо () рдХреЙрдиреНрд╕реНрдЯ = 0 рднреА рдмрдирд╛рдирд╛ рд╣реИ
; рдФрд░ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА рд╡рд░реНрдЧ рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВред
рдЕрдЧрд▓рд╛, рд╣рдо 2 рдЫрдБрдЯрд╛рдИ рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рддреЗ рд╣реИрдВ: рдмреБрд▓рдмреБрд▓рд╛ рд╡рд┐рдзрд┐ рдФрд░ рдорд╛рдирдХ STL рд╡рд┐рдзрд┐ (static_sort)
рдпрд╣ рдирд┐рд░реНрдпрд╛рдд рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ
POCO_BEGIN_MANIFEST(ABaseSort)
рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдЕрдм рд╣рдо рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рддрд░реНрдХ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреБрди: рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЕрдкрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдореЙрдбреНрдпреВрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ "рдлреАрдб" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг POCO рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ POCO рдкрд░ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╛ рд╕реЗрд╡рд╛ рдмрдирд╛рдирд╛ рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓рд╛ рдХрд╛рдо рдирд╣реАрдВ рд╣реИред рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдореИрдВ рдореЙрдбреНрдпреВрд▓ рдПрдХреНрд╕рдПрдордПрд▓, рдЬрд┐рдк, рдбреЗрдЯрд╛, рдиреЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ, рд╡рд╣ POCO рдореЗрдВ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдЧрд╛ред рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдПрдВрдб рдЗрд╡реЗрдВрдЯреНрд╕ рд╕рд┐рд╕реНрдЯрдо, рдХреИрд╢рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЕрд▓рдЧ рдХрд░реЗрдВред
рд▓реЗрдЦ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдпрдереЛрдЪрд┐рдд рдЖрд▓реЛрдЪрдирд╛ рдФрд░ рд╕реБрдЭрд╛рд╡реЛрдВ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред