From 4c346b97338163448e1a684bd1b5d53271f34cd6 Mon Sep 17 00:00:00 2001 From: Maxim Mamontov Date: Thu, 15 Sep 2011 17:24:57 +0300 Subject: [PATCH] Hide or add proper copy ctor and assignement operator, initialize members via initialization lists in rscript code --- .../plugins/other/rscript/nrmap_parser.cpp | 8 --- .../plugins/other/rscript/nrmap_parser.h | 29 ++++++++-- .../plugins/other/rscript/rscript.cpp | 36 +++++++----- .../stargazer/plugins/other/rscript/rscript.h | 56 ++++++++++++++----- 4 files changed, 89 insertions(+), 40 deletions(-) diff --git a/projects/stargazer/plugins/other/rscript/nrmap_parser.cpp b/projects/stargazer/plugins/other/rscript/nrmap_parser.cpp index 254a3da6..308d5d05 100644 --- a/projects/stargazer/plugins/other/rscript/nrmap_parser.cpp +++ b/projects/stargazer/plugins/other/rscript/nrmap_parser.cpp @@ -35,14 +35,6 @@ #include "stg/common.h" #include "nrmap_parser.h" -NRMapParser::NRMapParser() -{ -} - -NRMapParser::~NRMapParser() -{ -} - bool NRMapParser::ReadFile(const std::string & fileName) { std::ifstream source(fileName.c_str()); diff --git a/projects/stargazer/plugins/other/rscript/nrmap_parser.h b/projects/stargazer/plugins/other/rscript/nrmap_parser.h index 82c6fe31..e7cb44c2 100644 --- a/projects/stargazer/plugins/other/rscript/nrmap_parser.h +++ b/projects/stargazer/plugins/other/rscript/nrmap_parser.h @@ -34,20 +34,39 @@ struct NET_ROUTER { -uint32_t subnetIP; -uint32_t subnetMask; -std::vector routers; + NET_ROUTER() : subnetIP(0), subnetMask(0), routers() {} + NET_ROUTER(const NET_ROUTER & rvalue) + : subnetIP(rvalue.subnetIP), + subnetMask(rvalue.subnetMask), + routers(rvalue.routers) + {} + + uint32_t subnetIP; + uint32_t subnetMask; + std::vector routers; + + NET_ROUTER & operator=(const NET_ROUTER & rvalue) + { + subnetIP = rvalue.subnetIP; + subnetMask = rvalue.subnetMask; + routers = rvalue.routers; + return *this; + } }; class NRMapParser { public: - NRMapParser(); - ~NRMapParser(); + NRMapParser() : nrmap(), errorStr() {} + ~NRMapParser() {} bool ReadFile(const std::string & fileName); const std::vector & GetMap() const { return nrmap; }; const std::string & GetErrorStr() const { return errorStr; }; + private: + NRMapParser(const NRMapParser & rvalue); + NRMapParser & operator=(const NRMapParser & rvalue); + std::vector nrmap; mutable std::string errorStr; diff --git a/projects/stargazer/plugins/other/rscript/rscript.cpp b/projects/stargazer/plugins/other/rscript/rscript.cpp index d1768ee6..6fde814a 100644 --- a/projects/stargazer/plugins/other/rscript/rscript.cpp +++ b/projects/stargazer/plugins/other/rscript/rscript.cpp @@ -58,24 +58,23 @@ return rsc.GetPlugin(); //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- -RS_USER::RS_USER() - : lastSentTime(0), - user(NULL), - shortPacketsCount(0) -{ -} -//----------------------------------------------------------------------------- -RS_USER::RS_USER(const std::vector & r, USER_PTR it) - : lastSentTime(0), - user(it), - routers(r), - shortPacketsCount(0) +RS_USER & RS_USER::operator=(const RS_USER & rvalue) { +lastSentTime = rvalue.lastSentTime; +user = rvalue.user; +routers = rvalue.routers; +shortPacketsCount = rvalue.shortPacketsCount; +return *this; } //----------------------------------------------------------------------------- RS_SETTINGS::RS_SETTINGS() : sendPeriod(0), - port(0) + port(0), + errorStr(), + netRouters(), + userParams(), + password(), + subnetFile() { } //----------------------------------------------------------------------------- @@ -171,11 +170,20 @@ return 0; //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- REMOTE_SCRIPT::REMOTE_SCRIPT() - : sendPeriod(15), + : ctx(), + afterChgIPNotifierList(), + authorizedUsers(), + errorStr(), + rsSettings(), + settings(), + sendPeriod(15), halfPeriod(8), nonstop(false), isRunning(false), users(NULL), + netRouters(), + thread(), + mutex(), sock(0), onAddUserNotifier(*this), onDelUserNotifier(*this) diff --git a/projects/stargazer/plugins/other/rscript/rscript.h b/projects/stargazer/plugins/other/rscript/rscript.h index 649970e9..ca52adf8 100644 --- a/projects/stargazer/plugins/other/rscript/rscript.h +++ b/projects/stargazer/plugins/other/rscript/rscript.h @@ -65,6 +65,9 @@ public: void Notify(const USER_PTR & user); private: + RS_ADD_USER_NONIFIER(const RS_ADD_USER_NONIFIER & rvalue); + RS_ADD_USER_NONIFIER & operator=(const RS_ADD_USER_NONIFIER); + REMOTE_SCRIPT & rs; }; //----------------------------------------------------------------------------- @@ -75,29 +78,55 @@ public: void Notify(const USER_PTR & user); private: + RS_DEL_USER_NONIFIER(const RS_DEL_USER_NONIFIER & rvalue); + RS_DEL_USER_NONIFIER & operator=(const RS_DEL_USER_NONIFIER); + REMOTE_SCRIPT & rs; }; //----------------------------------------------------------------------------- -template -class RS_CHG_AFTER_NOTIFIER: public PROPERTY_NOTIFIER_BASE { +template +class RS_CHG_AFTER_NOTIFIER: public PROPERTY_NOTIFIER_BASE { public: RS_CHG_AFTER_NOTIFIER(REMOTE_SCRIPT & r, USER_PTR u) : user(u), rs(r) {} - void Notify(const varParamType & oldValue, const varParamType & newValue); - USER_PTR GetUser() {return user; } + RS_CHG_AFTER_NOTIFIER(const RS_CHG_AFTER_NOTIFIER & rvalue) + : user(rvalue.user), rs(rvalue.rs) + {} + void Notify(const T & oldValue, const T & newValue); + USER_PTR GetUser() { return user; } private: + RS_CHG_AFTER_NOTIFIER & operator=(const RS_CHG_AFTER_NOTIFIER & rvalue); + USER_PTR user; REMOTE_SCRIPT & rs; }; //----------------------------------------------------------------------------- struct RS_USER { -RS_USER(); -RS_USER(const std::vector & r, USER_PTR it); - -time_t lastSentTime; -USER_PTR user; -std::vector routers; -int shortPacketsCount; + RS_USER() + : lastSentTime(0), + user(NULL), + routers(), + shortPacketsCount(0) + {} + RS_USER(const std::vector & r, USER_PTR it) + : lastSentTime(0), + user(it), + routers(r), + shortPacketsCount(0) + {} + RS_USER(const RS_USER & rvalue) + : lastSentTime(rvalue.lastSentTime), + user(rvalue.user), + routers(rvalue.routers), + shortPacketsCount(rvalue.shortPacketsCount) + {} + + RS_USER & operator=(const RS_USER & rvalue); + + time_t lastSentTime; + USER_PTR user; + std::vector routers; + int shortPacketsCount; }; //----------------------------------------------------------------------------- class RS_SETTINGS { @@ -148,6 +177,9 @@ public: void ChangedIP(USER_PTR u, uint32_t oldIP, uint32_t newIP); private: + REMOTE_SCRIPT(const REMOTE_SCRIPT & rvalue); + REMOTE_SCRIPT & operator=(const REMOTE_SCRIPT & rvalue); + static void * Run(void *); bool PrepareNet(); bool FinalizeNet(); @@ -210,13 +242,11 @@ class DisconnectUser : public std::unary_function