X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/97a198bf64f74f1bacd064026e67d7cb40daffa2..80aca6d78d4ff5d514216fe96c44e2ee75c4e933:/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..95b03ea2 100644 --- a/projects/stargazer/plugins/other/rscript/ur_functor.h +++ b/projects/stargazer/plugins/other/rscript/ur_functor.h @@ -21,14 +21,14 @@ #ifndef __UR_FUNCTOR_H__ #define __UR_FUNCTOR_H__ -#include -#include -#include +#include "rscript.h" -#include "stg/os_int.h" #include "stg/common.h" -#include "rscript.h" +#include +#include +#include +#include namespace RS { @@ -36,12 +36,12 @@ namespace RS class UpdateRouter : public std::unary_function, void> { public: - UpdateRouter(REMOTE_SCRIPT & t) - : obj(t) {}; + explicit UpdateRouter(REMOTE_SCRIPT & t) + : obj(t) {} void operator() (std::pair & val) { - std::vector newRouters = obj.IP2Routers(val.first); + 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; @@ -52,29 +52,28 @@ public: { if (newIt != newRouters.end()) { - obj.SendDirect(val.first, val.second, *newIt); // Connect on new router + 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 + 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 + obj.SendDirect(val.second, *oldIt, true); // Disconnect on old router ++oldIt; } else if (*oldIt > *newIt) { - obj.SendDirect(val.first, val.second, *newIt); // Connect on new router + obj.SendDirect(val.second, *newIt); // Connect on new router ++newIt; } else { - if (oldIt != val.second.routers.end()) - ++oldIt; + ++oldIt; if (newIt != newRouters.end()) ++newIt; }