X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/1f6214607a4f2b727484a4ae9e9411044dae8051..2196a3a0cdc5384c082febb7f4aa5994cc7d80db:/projects/stargazer/plugins/other/rscript/ur_functor.h?ds=sidebyside diff --git a/projects/stargazer/plugins/other/rscript/ur_functor.h b/projects/stargazer/plugins/other/rscript/ur_functor.h index b3a5cdac..a4addc83 100644 --- a/projects/stargazer/plugins/other/rscript/ur_functor.h +++ b/projects/stargazer/plugins/other/rscript/ur_functor.h @@ -18,84 +18,69 @@ * Author : Maxim Mamontov */ -/* - $Revision: 1.3 $ - $Date: 2010/03/04 12:07:03 $ - $Author: faust $ -*/ +#pragma once + +#include "rscript.h" -#ifndef __UR_FUNCTOR_H__ -#define __UR_FUNCTOR_H__ +#include "stg/common.h" #include #include #include +#include -#include "stg/os_int.h" -#include "stg/common.h" - -#include "rscript.h" +namespace STG::RS +{ -class UpdateRouter : public std::unary_function, void> +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()) - { - //if (oldIt != newRouters.end()) - //{ // Already checked it - obj.SendDirect(val.first, val.second, *oldIt, true); // Disconnect on old router + else if (newIt == newRouters.end()) + { + obj.SendDirect(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 (*oldIt < *newIt) + { + obj.SendDirect(val.second, *oldIt, true); // Disconnect on old router ++oldIt; - if (newIt != newRouters.end()) + } + 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; - /*if (val.second.souters != newRouters) - { - obj.Send(val.first, val.second, true); // Disconnect on old router - val.second.routerIP = obj.IP2Router(val.first); // Change router - val.second.shortPacketsCount = 0; // Reset packets count (to prevent alive send) - obj.Send(val.first, val.second); // Connect on new router - }*/ - } -private: - REMOTE_SCRIPT & obj; + private: + REMOTE_SCRIPT & obj; }; -#endif +} // namespace RS