X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/97a198bf64f74f1bacd064026e67d7cb40daffa2..43ac308ea20014761481bc40525496a0bb1d9740:/projects/stargazer/plugins/other/rscript/ur_functor.h diff --git a/projects/stargazer/plugins/other/rscript/ur_functor.h b/projects/stargazer/plugins/other/rscript/ur_functor.h index c5752e87..a4addc83 100644 --- a/projects/stargazer/plugins/other/rscript/ur_functor.h +++ b/projects/stargazer/plugins/other/rscript/ur_functor.h @@ -18,73 +18,69 @@ * Author : Maxim Mamontov */ -#ifndef __UR_FUNCTOR_H__ -#define __UR_FUNCTOR_H__ +#pragma once -#include -#include -#include +#include "rscript.h" -#include "stg/os_int.h" #include "stg/common.h" -#include "rscript.h" +#include +#include +#include +#include -namespace RS +namespace STG::RS { class UpdateRouter : public std::unary_function, void> { -public: - UpdateRouter(REMOTE_SCRIPT & t) - : obj(t) {}; + public: + explicit UpdateRouter(REMOTE_SCRIPT & t) + : obj(t) {} - void operator() (std::pair & val) - { - std::vector newRouters = obj.IP2Routers(val.first); - std::vector::const_iterator oldIt(val.second.routers.begin()); - std::vector::const_iterator newIt(newRouters.begin()); - val.second.shortPacketsCount = 0; - while (oldIt != val.second.routers.end() || - newIt != newRouters.end()) + void operator() (std::pair & val) { - if (oldIt == val.second.routers.end()) + std::vector newRouters = obj.IP2Routers(val.second.ip); + std::vector::const_iterator oldIt(val.second.routers.begin()); + std::vector::const_iterator newIt(newRouters.begin()); + val.second.shortPacketsCount = 0; + while (oldIt != val.second.routers.end() || + newIt != newRouters.end()) { - if (newIt != newRouters.end()) + if (oldIt == val.second.routers.end()) { - obj.SendDirect(val.first, val.second, *newIt); // Connect on new router - ++newIt; + if (newIt != newRouters.end()) + { + obj.SendDirect(val.second, *newIt); // Connect on new router + ++newIt; + } } - } - else if (newIt == newRouters.end()) - { - obj.SendDirect(val.first, val.second, *oldIt, true); // Disconnect on old router - ++oldIt; - } - else if (*oldIt < *newIt) - { - obj.SendDirect(val.first, val.second, *oldIt, true); // Disconnect on old router - ++oldIt; - } - else if (*oldIt > *newIt) - { - obj.SendDirect(val.first, val.second, *newIt); // Connect on new router - ++newIt; - } - else - { - if (oldIt != val.second.routers.end()) + else if (newIt == newRouters.end()) + { + obj.SendDirect(val.second, *oldIt, true); // Disconnect on old router ++oldIt; - if (newIt != newRouters.end()) + } + else if (*oldIt < *newIt) + { + obj.SendDirect(val.second, *oldIt, true); // Disconnect on old router + ++oldIt; + } + else if (*oldIt > *newIt) + { + obj.SendDirect(val.second, *newIt); // Connect on new router ++newIt; + } + else + { + ++oldIt; + if (newIt != newRouters.end()) + ++newIt; + } } + val.second.routers = newRouters; } - val.second.routers = newRouters; - } -private: - REMOTE_SCRIPT & obj; + private: + REMOTE_SCRIPT & obj; }; } // namespace RS - -#endif