X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/8c6fa3fbaccc22127280bf77a48fab5a3ee0716e..46b0747592074017ff0ea4b33d4a7194235886e5:/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 deleted file mode 100644 index 9ecf2bc5..00000000 --- a/projects/stargazer/plugins/other/rscript/ur_functor.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Author : Maxim Mamontov - */ - -#ifndef __UR_FUNCTOR_H__ -#define __UR_FUNCTOR_H__ - -#include "rscript.h" - -#include "stg/os_int.h" -#include "stg/common.h" - -#include -#include -#include - -namespace RS -{ - -class UpdateRouter : public std::unary_function, void> -{ -public: - explicit UpdateRouter(REMOTE_SCRIPT & t) - : obj(t) {} - - void operator() (std::pair & val) - { - 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 (oldIt == val.second.routers.end()) - { - if (newIt != newRouters.end()) - { - obj.SendDirect(val.second, *newIt); // Connect on new router - ++newIt; - } - } - else if (newIt == newRouters.end()) - { - obj.SendDirect(val.second, *oldIt, true); // Disconnect on old router - ++oldIt; - } - 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; - } -private: - REMOTE_SCRIPT & obj; -}; - -} // namespace RS - -#endif