diff options
author | Andrew Shadura <andrewsh@debian.org> | 2016-12-15 11:12:46 +0100 |
---|---|---|
committer | Andrew Shadura <andrewsh@debian.org> | 2016-12-15 11:14:48 +0100 |
commit | ccc154b9b1c7682a86f8372070095e5e4218e7be (patch) | |
tree | 7b29d1db2daba9400ba6f55e660bd41da3c848e2 /analyzers | |
parent | f60c749375b9518e01cff9b0458234c65194df80 (diff) | |
parent | 50a11af5bddcda9160d84f2ae3577df7451a7a95 (diff) |
Merge tag 'upstream/0.4.3.1'
Upstream version 0.4.3.1
Diffstat (limited to 'analyzers')
62 files changed, 891 insertions, 886 deletions
diff --git a/analyzers/src/breakdown/analyzer.cpp b/analyzers/src/breakdown/analyzer.cpp index de60cf0..5f46cb6 100644 --- a/analyzers/src/breakdown/analyzer.cpp +++ b/analyzers/src/breakdown/analyzer.cpp @@ -45,25 +45,23 @@ public: } }; -extern "C" +extern "C" { +const char* usage() { + return "No options"; +} - const char* usage() - { - return "No options"; - } - - IAnalyzer* create(const char*) - { - return new Analyzer(); - } +IAnalyzer* create(const char*) +{ + return new Analyzer(); +} - void destroy(IAnalyzer* instance) - { - delete instance; - } +void destroy(IAnalyzer* instance) +{ + delete instance; +} - NST_PLUGIN_ENTRY_POINTS (&usage, &create, &destroy, nullptr) +NST_PLUGIN_ENTRY_POINTS(&usage, &create, &destroy, nullptr) -}//extern "C" +} //extern "C" //------------------------------------------------------------------------------ diff --git a/analyzers/src/breakdown/breakdowncounter.cpp b/analyzers/src/breakdown/breakdowncounter.cpp index 5d3df3c..7a7ab5a 100644 --- a/analyzers/src/breakdown/breakdowncounter.cpp +++ b/analyzers/src/breakdown/breakdowncounter.cpp @@ -26,7 +26,8 @@ //------------------------------------------------------------------------------ using namespace NST::breakdown; //------------------------------------------------------------------------------ -BreakdownCounter::BreakdownCounter(size_t count) : latencies(count, NST::breakdown::Latencies()) +BreakdownCounter::BreakdownCounter(size_t count) + : latencies(count, NST::breakdown::Latencies()) { } @@ -41,8 +42,7 @@ Latencies& BreakdownCounter::operator[](int index) uint64_t BreakdownCounter::get_total_count() const { - return std::accumulate(std::begin(latencies), std::end(latencies), 0, [](int sum, const NST::breakdown::Latencies & latency) - { + return std::accumulate(std::begin(latencies), std::end(latencies), 0, [](int sum, const NST::breakdown::Latencies& latency) { return sum + latency.get_count(); }); } diff --git a/analyzers/src/breakdown/breakdowncounter.h b/analyzers/src/breakdown/breakdowncounter.h index 2d9a86c..66a9443 100644 --- a/analyzers/src/breakdown/breakdowncounter.h +++ b/analyzers/src/breakdown/breakdowncounter.h @@ -53,12 +53,12 @@ public: * \brief get_total_count returns total amount of commands * \return commands count */ - uint64_t get_total_count () const; + uint64_t get_total_count() const; private: - void operator= (const BreakdownCounter&) = delete; + void operator=(const BreakdownCounter&) = delete; std::vector<NST::breakdown::Latencies> latencies; }; //------------------------------------------------------------------------------ -#endif//BREAKDOWNCOUNTER_H +#endif //BREAKDOWNCOUNTER_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/breakdown/cifsv1breakdownanalyzer.cpp b/analyzers/src/breakdown/cifsv1breakdownanalyzer.cpp index e8977e8..751664e 100644 --- a/analyzers/src/breakdown/cifsv1breakdownanalyzer.cpp +++ b/analyzers/src/breakdown/cifsv1breakdownanalyzer.cpp @@ -19,8 +19,8 @@ along with Nfstrace. If not, see <http://www.gnu.org/licenses/>. */ //------------------------------------------------------------------------------ -#include "cifsv1commands.h" #include "cifsv1breakdownanalyzer.h" +#include "cifsv1commands.h" //------------------------------------------------------------------------------ using namespace NST::breakdown; //------------------------------------------------------------------------------ diff --git a/analyzers/src/breakdown/cifsv1breakdownanalyzer.h b/analyzers/src/breakdown/cifsv1breakdownanalyzer.h index 335b0fd..cb19df2 100644 --- a/analyzers/src/breakdown/cifsv1breakdownanalyzer.h +++ b/analyzers/src/breakdown/cifsv1breakdownanalyzer.h @@ -31,13 +31,12 @@ namespace NST { namespace breakdown { - /*! \class Analyzer for CIFS v1 * Handles CIFS v1 commands */ class CIFSBreakdownAnalyzer : virtual public IAnalyzer { - Statistics statistics; //!< Statistics + Statistics statistics; //!< Statistics Representer representer; //!< Class for statistics representation public: CIFSBreakdownAnalyzer(std::ostream& o = std::cout); @@ -117,6 +116,7 @@ public: void writeBulkDataSMBv1(const SMBv1::WriteBulkDataCommand* cmd, const SMBv1::WriteBulkDataArgumentType*, const SMBv1::WriteBulkDataResultType*) override final; void invalidSMBv1(const SMBv1::InvalidCommand* cmd, const SMBv1::InvalidArgumentType*, const SMBv1::InvalidResultType*) override final; void noAndxCommandSMBv1(const SMBv1::NoAndxCommand* cmd, const SMBv1::NoAndxCmdArgumentType*, const SMBv1::NoAndxCmdResultType*) override final; + protected: void flush_statistics() override; }; @@ -124,5 +124,5 @@ protected: } // namespace breakdown } // namespace NST //------------------------------------------------------------------------------ -#endif//CIFSBREAKDOWNANALYZER_H +#endif //CIFSBREAKDOWNANALYZER_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/breakdown/cifsv1commands.h b/analyzers/src/breakdown/cifsv1commands.h index 3e0aeb7..e039b6a 100644 --- a/analyzers/src/breakdown/cifsv1commands.h +++ b/analyzers/src/breakdown/cifsv1commands.h @@ -28,7 +28,6 @@ namespace NST { namespace breakdown { - /*! * Represents CIFS v1 commands * Converts commands to string @@ -37,11 +36,11 @@ struct SMBv1Commands : public CommandRepresenter { const char* command_description(int cmd_code) override final; const char* command_name(int cmd_code) override final; - size_t commands_count(); - const char* protocol_name(); + size_t commands_count() override final; + const char* protocol_name() override final; }; } // namespace breakdown } // namespace NST //------------------------------------------------------------------------------ -#endif//CIFS_COMMANDS_H +#endif //CIFS_COMMANDS_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/breakdown/cifsv2breakdownanalyzer.h b/analyzers/src/breakdown/cifsv2breakdownanalyzer.h index 73f1fad..1bdb72d 100644 --- a/analyzers/src/breakdown/cifsv2breakdownanalyzer.h +++ b/analyzers/src/breakdown/cifsv2breakdownanalyzer.h @@ -31,13 +31,12 @@ namespace NST { namespace breakdown { - /*! \class Analyzer for CIFS v2 * Handles CIFS v2 commands */ class CIFSv2BreakdownAnalyzer : virtual public IAnalyzer { - Statistics stats; //!< Statistics + Statistics stats; //!< Statistics Representer cifs2Representer; //!< Class for statistics representation public: CIFSv2BreakdownAnalyzer(std::ostream& o = std::cout); @@ -60,6 +59,7 @@ public: void queryInfoSMBv2(const SMBv2::QueryInfoCommand* cmd, const SMBv2::QueryInfoRequest*, const SMBv2::QueryInfoResponse*) override final; void setInfoSMBv2(const SMBv2::SetInfoCommand* cmd, const SMBv2::SetInfoRequest*, const SMBv2::SetInfoResponse*) override final; void breakOplockSMBv2(const SMBv2::BreakOpLockCommand* cmd, const SMBv2::OplockAcknowledgment*, const SMBv2::OplockResponse*) override final; + protected: void flush_statistics() override; }; @@ -67,5 +67,5 @@ protected: } // namespace breakdown } // namespace NST //------------------------------------------------------------------------------ -#endif//CIFSV2BREAKDOWNANALYZER_H +#endif //CIFSV2BREAKDOWNANALYZER_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/breakdown/cifsv2commands.cpp b/analyzers/src/breakdown/cifsv2commands.cpp index e00e244..c64acd7 100644 --- a/analyzers/src/breakdown/cifsv2commands.cpp +++ b/analyzers/src/breakdown/cifsv2commands.cpp @@ -29,27 +29,27 @@ using namespace NST::breakdown; const char* NST::breakdown::SMBv2Commands::command_name(int cmd_code) { static std::map<Commands, const char*> cmdNames; - if (cmdNames.empty()) + if(cmdNames.empty()) { - cmdNames[Commands::NEGOTIATE] = "NEGOTIATE"; - cmdNames[Commands::SESSION_SETUP] = "SESSION SETUP"; - cmdNames[Commands::LOGOFF] = "LOGOFF"; - cmdNames[Commands::TREE_CONNECT] = "TREE CONNECT"; - cmdNames[Commands::TREE_DISCONNECT] = "TREE DISCONNECT"; - cmdNames[Commands::CREATE] = "CREATE"; - cmdNames[Commands::CLOSE] = "CLOSE"; - cmdNames[Commands::FLUSH] = "FLUSH"; - cmdNames[Commands::READ] = "READ"; - cmdNames[Commands::WRITE] = "WRITE"; - cmdNames[Commands::LOCK] = "LOCK"; - cmdNames[Commands::IOCTL] = "IOCTL"; - cmdNames[Commands::CANCEL] = "CANCEL"; - cmdNames[Commands::ECHO] = "ECHO"; - cmdNames[Commands::QUERY_DIRECTORY] = "QUERY DIRECTORY"; - cmdNames[Commands::CHANGE_NOTIFY] = "CHANGE NOTIFY"; - cmdNames[Commands::QUERY_INFO] = "QUERY INFO"; - cmdNames[Commands::SET_INFO] = "SET INFO"; - cmdNames[Commands::OPLOCK_BREAK] = "OPLOCK BREAK"; + cmdNames[Commands::NEGOTIATE] = "NEGOTIATE"; + cmdNames[Commands::SESSION_SETUP] = "SESSION SETUP"; + cmdNames[Commands::LOGOFF] = "LOGOFF"; + cmdNames[Commands::TREE_CONNECT] = "TREE CONNECT"; + cmdNames[Commands::TREE_DISCONNECT] = "TREE DISCONNECT"; + cmdNames[Commands::CREATE] = "CREATE"; + cmdNames[Commands::CLOSE] = "CLOSE"; + cmdNames[Commands::FLUSH] = "FLUSH"; + cmdNames[Commands::READ] = "READ"; + cmdNames[Commands::WRITE] = "WRITE"; + cmdNames[Commands::LOCK] = "LOCK"; + cmdNames[Commands::IOCTL] = "IOCTL"; + cmdNames[Commands::CANCEL] = "CANCEL"; + cmdNames[Commands::ECHO] = "ECHO"; + cmdNames[Commands::QUERY_DIRECTORY] = "QUERY DIRECTORY"; + cmdNames[Commands::CHANGE_NOTIFY] = "CHANGE NOTIFY"; + cmdNames[Commands::QUERY_INFO] = "QUERY INFO"; + cmdNames[Commands::SET_INFO] = "SET INFO"; + cmdNames[Commands::OPLOCK_BREAK] = "OPLOCK BREAK"; } return cmdNames[static_cast<Commands>(cmd_code)]; } @@ -62,27 +62,27 @@ size_t SMBv2Commands::commands_count() const char* NST::breakdown::SMBv2Commands::command_description(int cmd_code) { static std::map<Commands, const char*> cmdNames; - if (cmdNames.empty()) + if(cmdNames.empty()) { - cmdNames[Commands::NEGOTIATE] = "NEGOTIATE"; - cmdNames[Commands::SESSION_SETUP] = "SESSION_SETUP"; - cmdNames[Commands::LOGOFF] = "LOGOFF"; - cmdNames[Commands::TREE_CONNECT] = "TREE_CONNECT"; - cmdNames[Commands::TREE_DISCONNECT] = "TREE_DISCONNECT"; - cmdNames[Commands::CREATE] = "CREATE"; - cmdNames[Commands::CLOSE] = "CLOSE"; - cmdNames[Commands::FLUSH] = "FLUSH"; - cmdNames[Commands::READ] = "READ"; - cmdNames[Commands::WRITE] = "WRITE"; - cmdNames[Commands::LOCK] = "LOCK"; - cmdNames[Commands::IOCTL] = "IOCTL"; - cmdNames[Commands::CANCEL] = "CANCEL"; - cmdNames[Commands::ECHO] = "ECHO"; - cmdNames[Commands::QUERY_DIRECTORY] = "QUERY_DIRECTORY"; - cmdNames[Commands::CHANGE_NOTIFY] = "CHANGE_NOTIFY"; - cmdNames[Commands::QUERY_INFO] = "QUERY_INFO"; - cmdNames[Commands::SET_INFO] = "SET_INFO"; - cmdNames[Commands::OPLOCK_BREAK] = "OPLOCK_BREAK"; + cmdNames[Commands::NEGOTIATE] = "NEGOTIATE"; + cmdNames[Commands::SESSION_SETUP] = "SESSION_SETUP"; + cmdNames[Commands::LOGOFF] = "LOGOFF"; + cmdNames[Commands::TREE_CONNECT] = "TREE_CONNECT"; + cmdNames[Commands::TREE_DISCONNECT] = "TREE_DISCONNECT"; + cmdNames[Commands::CREATE] = "CREATE"; + cmdNames[Commands::CLOSE] = "CLOSE"; + cmdNames[Commands::FLUSH] = "FLUSH"; + cmdNames[Commands::READ] = "READ"; + cmdNames[Commands::WRITE] = "WRITE"; + cmdNames[Commands::LOCK] = "LOCK"; + cmdNames[Commands::IOCTL] = "IOCTL"; + cmdNames[Commands::CANCEL] = "CANCEL"; + cmdNames[Commands::ECHO] = "ECHO"; + cmdNames[Commands::QUERY_DIRECTORY] = "QUERY_DIRECTORY"; + cmdNames[Commands::CHANGE_NOTIFY] = "CHANGE_NOTIFY"; + cmdNames[Commands::QUERY_INFO] = "QUERY_INFO"; + cmdNames[Commands::SET_INFO] = "SET_INFO"; + cmdNames[Commands::OPLOCK_BREAK] = "OPLOCK_BREAK"; } return cmdNames[static_cast<Commands>(cmd_code)]; } diff --git a/analyzers/src/breakdown/cifsv2commands.h b/analyzers/src/breakdown/cifsv2commands.h index 306f18a..3a166ae 100644 --- a/analyzers/src/breakdown/cifsv2commands.h +++ b/analyzers/src/breakdown/cifsv2commands.h @@ -28,7 +28,6 @@ namespace NST { namespace breakdown { - /*! * Represents CIFS v2 commands * Converts commands to string @@ -66,13 +65,13 @@ struct SMBv2Commands : CommandRepresenter const char* command_name(int cmd_code) override final; - size_t commands_count(); + size_t commands_count() override final; - const char* protocol_name(); + const char* protocol_name() override final; }; } // namespace breakdown } // namespace NST //------------------------------------------------------------------------------ -#endif//CIFS2_COMMANDS_H +#endif //CIFS2_COMMANDS_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/breakdown/commandrepresenter.h b/analyzers/src/breakdown/commandrepresenter.h index 2e1a61a..4847199 100644 --- a/analyzers/src/breakdown/commandrepresenter.h +++ b/analyzers/src/breakdown/commandrepresenter.h @@ -28,7 +28,6 @@ namespace NST { namespace breakdown { - /*! * \brief The CommandRepresenter struct represents interface for command representers * Commands representer should be able to convert commands to string @@ -67,5 +66,5 @@ struct CommandRepresenter } // namespace breakdown } // namespace NST //------------------------------------------------------------------------------ -#endif//COMMANDREPRESENTER_H +#endif //COMMANDREPRESENTER_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/breakdown/latencies.cpp b/analyzers/src/breakdown/latencies.cpp index bc342e5..b6bbc83 100644 --- a/analyzers/src/breakdown/latencies.cpp +++ b/analyzers/src/breakdown/latencies.cpp @@ -26,7 +26,10 @@ using namespace NST::breakdown; //------------------------------------------------------------------------------ -Latencies::Latencies() : count {0}, avg {0}, m2 {0} +Latencies::Latencies() + : count{0} + , avg{0} + , m2{0} { timerclear(&min); timerclear(&max); @@ -34,7 +37,7 @@ Latencies::Latencies() : count {0}, avg {0}, m2 {0} void Latencies::add(const timeval& t) { - long double x = to_sec(t); + long double x = to_sec(t); long double delta = x - avg; avg += delta / (++count); m2 += delta * (x - avg); @@ -54,7 +57,7 @@ long double Latencies::get_avg() const long double Latencies::get_st_dev() const { - if (count < 2) + if(count < 2) { return 0; } @@ -73,15 +76,15 @@ const timeval& Latencies::get_max() const void Latencies::set_range(const timeval& t) { - if (timercmp(&t, &min, < )) + if(timercmp(&t, &min, <)) { min = t; } - if (min.tv_sec == 0 && min.tv_usec == 0) + if(min.tv_sec == 0 && min.tv_usec == 0) { min = t; } - if (timercmp(&t, &max, > )) + if(timercmp(&t, &max, >)) { max = t; } diff --git a/analyzers/src/breakdown/latencies.h b/analyzers/src/breakdown/latencies.h index b206e52..bb4a073 100644 --- a/analyzers/src/breakdown/latencies.h +++ b/analyzers/src/breakdown/latencies.h @@ -30,7 +30,6 @@ namespace NST { namespace breakdown { - /*! * \brief Latencies calculates latencies */ @@ -82,7 +81,7 @@ private: timeval min; timeval max; - uint64_t count; + uint64_t count; long double avg; long double m2; }; @@ -97,5 +96,5 @@ double to_sec(const timeval& val); } // namespace breakdown } // namespace NST //------------------------------------------------------------------------------ -#endif//LATENCIES_H +#endif //LATENCIES_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/breakdown/nfsv3breakdownanalyzer.cpp b/analyzers/src/breakdown/nfsv3breakdownanalyzer.cpp index e12409a..006556d 100644 --- a/analyzers/src/breakdown/nfsv3breakdownanalyzer.cpp +++ b/analyzers/src/breakdown/nfsv3breakdownanalyzer.cpp @@ -19,8 +19,8 @@ along with Nfstrace. If not, see <http://www.gnu.org/licenses/>. */ //------------------------------------------------------------------------------ -#include "breakdowncounter.h" #include "nfsv3breakdownanalyzer.h" +#include "breakdowncounter.h" #include "nfsv3commands.h" //------------------------------------------------------------------------------ using namespace NST::breakdown; @@ -101,7 +101,6 @@ void NFSv3BreakdownAnalyzer::rmdir3(const RPCProcedure* proc, const NFS3::RMDIR3 stats.account(proc, proc->call.ru.RM_cmb.cb_proc); } - void NFSv3BreakdownAnalyzer::rename3(const RPCProcedure* proc, const NFS3::RENAME3args*, const NFS3::RENAME3res*) { stats.account(proc, proc->call.ru.RM_cmb.cb_proc); diff --git a/analyzers/src/breakdown/nfsv3breakdownanalyzer.h b/analyzers/src/breakdown/nfsv3breakdownanalyzer.h index 943a453..7e8a8c6 100644 --- a/analyzers/src/breakdown/nfsv3breakdownanalyzer.h +++ b/analyzers/src/breakdown/nfsv3breakdownanalyzer.h @@ -31,13 +31,12 @@ namespace NST { namespace breakdown { - /*! \brief NFSv3BreakdownAnalyzer Analyzer for NFS v3 * Handles NFS v3 commands */ class NFSv3BreakdownAnalyzer : virtual public IAnalyzer { - Statistics stats; //!< Statistics + Statistics stats; //!< Statistics Representer representer; //!< Class for statistics representation public: NFSv3BreakdownAnalyzer(std::ostream& o = std::cout); @@ -115,5 +114,5 @@ public: } // namespace breakdown } // namespace NST //------------------------------------------------------------------------------ -#endif//NFSV3BREAKDOWNANALYZER_H +#endif //NFSV3BREAKDOWNANALYZER_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/breakdown/nfsv3commands.h b/analyzers/src/breakdown/nfsv3commands.h index 19f035d..1b7dcc9 100644 --- a/analyzers/src/breakdown/nfsv3commands.h +++ b/analyzers/src/breakdown/nfsv3commands.h @@ -28,7 +28,6 @@ namespace NST { namespace breakdown { - /*! * Represents NFS v3 commands * Converts commands to string @@ -38,12 +37,12 @@ class NFSv3Commands : public CommandRepresenter public: const char* command_description(int cmd_code) override final; const char* command_name(int cmd_code) override final; - size_t commands_count() override final; - const char* protocol_name(); + size_t commands_count() override final; + const char* protocol_name() override final; }; } // namespace breakdown } // namespace NST //------------------------------------------------------------------------------ -#endif//NFSV3COMMANDS_H +#endif //NFSV3COMMANDS_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/breakdown/nfsv41breakdownanalyzer.cpp b/analyzers/src/breakdown/nfsv41breakdownanalyzer.cpp index ba95f08..d785875 100644 --- a/analyzers/src/breakdown/nfsv41breakdownanalyzer.cpp +++ b/analyzers/src/breakdown/nfsv41breakdownanalyzer.cpp @@ -42,7 +42,7 @@ void NFSv41BreakdownAnalyzer::compound41(const RPCProcedure* proc, const NFS41:: void NFSv41BreakdownAnalyzer::access41(const RPCProcedure* proc, const NFS41::ACCESS4args*, const NFS41::ACCESS4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::ACCESS); } @@ -50,7 +50,7 @@ void NFSv41BreakdownAnalyzer::access41(const RPCProcedure* proc, const NFS41::AC void NFSv41BreakdownAnalyzer::close41(const RPCProcedure* proc, const NFS41::CLOSE4args*, const NFS41::CLOSE4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::CLOSE); } @@ -58,7 +58,7 @@ void NFSv41BreakdownAnalyzer::close41(const RPCProcedure* proc, const NFS41::CLO void NFSv41BreakdownAnalyzer::commit41(const RPCProcedure* proc, const NFS41::COMMIT4args*, const NFS41::COMMIT4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::COMMIT); } @@ -66,7 +66,7 @@ void NFSv41BreakdownAnalyzer::commit41(const RPCProcedure* proc, const NFS41::CO void NFSv41BreakdownAnalyzer::create41(const RPCProcedure* proc, const NFS41::CREATE4args*, const NFS41::CREATE4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::CREATE); } @@ -74,7 +74,7 @@ void NFSv41BreakdownAnalyzer::create41(const RPCProcedure* proc, const NFS41::CR void NFSv41BreakdownAnalyzer::delegpurge41(const RPCProcedure* proc, const NFS41::DELEGPURGE4args*, const NFS41::DELEGPURGE4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::DELEGPURGE); } @@ -82,7 +82,7 @@ void NFSv41BreakdownAnalyzer::delegpurge41(const RPCProcedure* proc, const NFS41 void NFSv41BreakdownAnalyzer::delegreturn41(const RPCProcedure* proc, const NFS41::DELEGRETURN4args*, const NFS41::DELEGRETURN4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::DELEGRETURN); } @@ -90,7 +90,7 @@ void NFSv41BreakdownAnalyzer::delegreturn41(const RPCProcedure* proc, const NFS4 void NFSv41BreakdownAnalyzer::getattr41(const RPCProcedure* proc, const NFS41::GETATTR4args*, const NFS41::GETATTR4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::GETATTR); } @@ -98,7 +98,7 @@ void NFSv41BreakdownAnalyzer::getattr41(const RPCProcedure* proc, const NFS41::G void NFSv41BreakdownAnalyzer::getfh41(const RPCProcedure* proc, const NFS41::GETFH4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::GETFH); } @@ -106,7 +106,7 @@ void NFSv41BreakdownAnalyzer::getfh41(const RPCProcedure* proc, const NFS41::GET void NFSv41BreakdownAnalyzer::link41(const RPCProcedure* proc, const NFS41::LINK4args*, const NFS41::LINK4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::LINK); } @@ -114,7 +114,7 @@ void NFSv41BreakdownAnalyzer::link41(const RPCProcedure* proc, const NFS41::LINK void NFSv41BreakdownAnalyzer::lock41(const RPCProcedure* proc, const NFS41::LOCK4args*, const NFS41::LOCK4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::LOCK); } @@ -122,7 +122,7 @@ void NFSv41BreakdownAnalyzer::lock41(const RPCProcedure* proc, const NFS41::LOCK void NFSv41BreakdownAnalyzer::lockt41(const RPCProcedure* proc, const NFS41::LOCKT4args*, const NFS41::LOCKT4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::LOCKT); } @@ -130,7 +130,7 @@ void NFSv41BreakdownAnalyzer::lockt41(const RPCProcedure* proc, const NFS41::LOC void NFSv41BreakdownAnalyzer::locku41(const RPCProcedure* proc, const NFS41::LOCKU4args*, const NFS41::LOCKU4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::LOCKU); } @@ -138,7 +138,7 @@ void NFSv41BreakdownAnalyzer::locku41(const RPCProcedure* proc, const NFS41::LOC void NFSv41BreakdownAnalyzer::lookup41(const RPCProcedure* proc, const NFS41::LOOKUP4args*, const NFS41::LOOKUP4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::LOOKUP); } @@ -146,7 +146,7 @@ void NFSv41BreakdownAnalyzer::lookup41(const RPCProcedure* proc, const NFS41::LO void NFSv41BreakdownAnalyzer::lookupp41(const RPCProcedure* proc, const NFS41::LOOKUPP4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::LOOKUPP); } @@ -154,7 +154,7 @@ void NFSv41BreakdownAnalyzer::lookupp41(const RPCProcedure* proc, const NFS41::L void NFSv41BreakdownAnalyzer::nverify41(const RPCProcedure* proc, const NFS41::NVERIFY4args*, const NFS41::NVERIFY4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::NVERIFY); } @@ -162,7 +162,7 @@ void NFSv41BreakdownAnalyzer::nverify41(const RPCProcedure* proc, const NFS41::N void NFSv41BreakdownAnalyzer::open41(const RPCProcedure* proc, const NFS41::OPEN4args*, const NFS41::OPEN4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::OPEN); } @@ -170,7 +170,7 @@ void NFSv41BreakdownAnalyzer::open41(const RPCProcedure* proc, const NFS41::OPEN void NFSv41BreakdownAnalyzer::openattr41(const RPCProcedure* proc, const NFS41::OPENATTR4args*, const NFS41::OPENATTR4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::OPENATTR); } @@ -178,7 +178,7 @@ void NFSv41BreakdownAnalyzer::openattr41(const RPCProcedure* proc, const NFS41:: void NFSv41BreakdownAnalyzer::open_confirm41(const RPCProcedure* proc, const NFS41::OPEN_CONFIRM4args*, const NFS41::OPEN_CONFIRM4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::OPEN_CONFIRM); } @@ -186,7 +186,7 @@ void NFSv41BreakdownAnalyzer::open_confirm41(const RPCProcedure* proc, const NFS void NFSv41BreakdownAnalyzer::open_downgrade41(const RPCProcedure* proc, const NFS41::OPEN_DOWNGRADE4args*, const NFS41::OPEN_DOWNGRADE4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::OPEN_DOWNGRADE); } @@ -194,7 +194,7 @@ void NFSv41BreakdownAnalyzer::open_downgrade41(const RPCProcedure* proc, const N void NFSv41BreakdownAnalyzer::putfh41(const RPCProcedure* proc, const NFS41::PUTFH4args*, const NFS41::PUTFH4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::PUTFH); } @@ -202,7 +202,7 @@ void NFSv41BreakdownAnalyzer::putfh41(const RPCProcedure* proc, const NFS41::PUT void NFSv41BreakdownAnalyzer::putpubfh41(const RPCProcedure* proc, const NFS41::PUTPUBFH4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::PUTPUBFH); } @@ -210,7 +210,7 @@ void NFSv41BreakdownAnalyzer::putpubfh41(const RPCProcedure* proc, const NFS41:: void NFSv41BreakdownAnalyzer::putrootfh41(const RPCProcedure* proc, const NFS41::PUTROOTFH4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::PUTROOTFH); } @@ -218,7 +218,7 @@ void NFSv41BreakdownAnalyzer::putrootfh41(const RPCProcedure* proc, const NFS41: void NFSv41BreakdownAnalyzer::read41(const RPCProcedure* proc, const NFS41::READ4args*, const NFS41::READ4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::READ); } @@ -226,7 +226,7 @@ void NFSv41BreakdownAnalyzer::read41(const RPCProcedure* proc, const NFS41::READ void NFSv41BreakdownAnalyzer::readdir41(const RPCProcedure* proc, const NFS41::READDIR4args*, const NFS41::READDIR4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::READDIR); } @@ -234,7 +234,7 @@ void NFSv41BreakdownAnalyzer::readdir41(const RPCProcedure* proc, const NFS41::R void NFSv41BreakdownAnalyzer::readlink41(const RPCProcedure* proc, const NFS41::READLINK4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::READLINK); } @@ -242,7 +242,7 @@ void NFSv41BreakdownAnalyzer::readlink41(const RPCProcedure* proc, const NFS41:: void NFSv41BreakdownAnalyzer::remove41(const RPCProcedure* proc, const NFS41::REMOVE4args*, const NFS41::REMOVE4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::REMOVE); } @@ -250,7 +250,7 @@ void NFSv41BreakdownAnalyzer::remove41(const RPCProcedure* proc, const NFS41::RE void NFSv41BreakdownAnalyzer::rename41(const RPCProcedure* proc, const NFS41::RENAME4args*, const NFS41::RENAME4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::RENAME); } @@ -258,7 +258,7 @@ void NFSv41BreakdownAnalyzer::rename41(const RPCProcedure* proc, const NFS41::RE void NFSv41BreakdownAnalyzer::renew41(const RPCProcedure* proc, const NFS41::RENEW4args*, const NFS41::RENEW4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::RENEW); } @@ -266,7 +266,7 @@ void NFSv41BreakdownAnalyzer::renew41(const RPCProcedure* proc, const NFS41::REN void NFSv41BreakdownAnalyzer::restorefh41(const RPCProcedure* proc, const NFS41::RESTOREFH4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::RESTOREFH); } @@ -274,7 +274,7 @@ void NFSv41BreakdownAnalyzer::restorefh41(const RPCProcedure* proc, const NFS41: void NFSv41BreakdownAnalyzer::savefh41(const RPCProcedure* proc, const NFS41::SAVEFH4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::SAVEFH); } @@ -282,7 +282,7 @@ void NFSv41BreakdownAnalyzer::savefh41(const RPCProcedure* proc, const NFS41::SA void NFSv41BreakdownAnalyzer::secinfo41(const RPCProcedure* proc, const NFS41::SECINFO4args*, const NFS41::SECINFO4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::SECINFO); } @@ -290,7 +290,7 @@ void NFSv41BreakdownAnalyzer::secinfo41(const RPCProcedure* proc, const NFS41::S void NFSv41BreakdownAnalyzer::setattr41(const RPCProcedure* proc, const NFS41::SETATTR4args*, const NFS41::SETATTR4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::SETATTR); } @@ -298,7 +298,7 @@ void NFSv41BreakdownAnalyzer::setattr41(const RPCProcedure* proc, const NFS41::S void NFSv41BreakdownAnalyzer::setclientid41(const RPCProcedure* proc, const NFS41::SETCLIENTID4args*, const NFS41::SETCLIENTID4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::SETCLIENTID); } @@ -306,7 +306,7 @@ void NFSv41BreakdownAnalyzer::setclientid41(const RPCProcedure* proc, const NFS4 void NFSv41BreakdownAnalyzer::setclientid_confirm41(const RPCProcedure* proc, const NFS41::SETCLIENTID_CONFIRM4args*, const NFS41::SETCLIENTID_CONFIRM4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::SETCLIENTID_CONFIRM); } @@ -314,7 +314,7 @@ void NFSv41BreakdownAnalyzer::setclientid_confirm41(const RPCProcedure* proc, co void NFSv41BreakdownAnalyzer::verify41(const RPCProcedure* proc, const NFS41::VERIFY4args*, const NFS41::VERIFY4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::VERIFY); } @@ -322,7 +322,7 @@ void NFSv41BreakdownAnalyzer::verify41(const RPCProcedure* proc, const NFS41::VE void NFSv41BreakdownAnalyzer::write41(const RPCProcedure* proc, const NFS41::WRITE4args*, const NFS41::WRITE4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::WRITE); } @@ -330,7 +330,7 @@ void NFSv41BreakdownAnalyzer::write41(const RPCProcedure* proc, const NFS41::WRI void NFSv41BreakdownAnalyzer::release_lockowner41(const RPCProcedure* proc, const NFS41::RELEASE_LOCKOWNER4args*, const NFS41::RELEASE_LOCKOWNER4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::RELEASE_LOCKOWNER); } @@ -338,7 +338,7 @@ void NFSv41BreakdownAnalyzer::release_lockowner41(const RPCProcedure* proc, cons void NFSv41BreakdownAnalyzer::backchannel_ctl41(const RPCProcedure* proc, const NFS41::BACKCHANNEL_CTL4args*, const NFS41::BACKCHANNEL_CTL4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::BACKCHANNEL_CTL); } @@ -346,7 +346,7 @@ void NFSv41BreakdownAnalyzer::backchannel_ctl41(const RPCProcedure* proc, const void NFSv41BreakdownAnalyzer::bind_conn_to_session41(const RPCProcedure* proc, const NFS41::BIND_CONN_TO_SESSION4args*, const NFS41::BIND_CONN_TO_SESSION4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::BIND_CONN_TO_SESSION); } @@ -354,7 +354,7 @@ void NFSv41BreakdownAnalyzer::bind_conn_to_session41(const RPCProcedure* proc, c void NFSv41BreakdownAnalyzer::exchange_id41(const RPCProcedure* proc, const NFS41::EXCHANGE_ID4args*, const NFS41::EXCHANGE_ID4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::EXCHANGE_ID); } @@ -362,7 +362,7 @@ void NFSv41BreakdownAnalyzer::exchange_id41(const RPCProcedure* proc, const NFS4 void NFSv41BreakdownAnalyzer::create_session41(const RPCProcedure* proc, const NFS41::CREATE_SESSION4args*, const NFS41::CREATE_SESSION4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::CREATE_SESSION); } @@ -370,7 +370,7 @@ void NFSv41BreakdownAnalyzer::create_session41(const RPCProcedure* proc, const N void NFSv41BreakdownAnalyzer::destroy_session41(const RPCProcedure* proc, const NFS41::DESTROY_SESSION4args*, const NFS41::DESTROY_SESSION4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::DESTROY_SESSION); } @@ -378,7 +378,7 @@ void NFSv41BreakdownAnalyzer::destroy_session41(const RPCProcedure* proc, const void NFSv41BreakdownAnalyzer::free_stateid41(const RPCProcedure* proc, const NFS41::FREE_STATEID4args*, const NFS41::FREE_STATEID4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::FREE_STATEID); } @@ -386,7 +386,7 @@ void NFSv41BreakdownAnalyzer::free_stateid41(const RPCProcedure* proc, const NFS void NFSv41BreakdownAnalyzer::get_dir_delegation41(const RPCProcedure* proc, const NFS41::GET_DIR_DELEGATION4args*, const NFS41::GET_DIR_DELEGATION4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::GET_DIR_DELEGATION); } @@ -394,7 +394,7 @@ void NFSv41BreakdownAnalyzer::get_dir_delegation41(const RPCProcedure* proc, con void NFSv41BreakdownAnalyzer::getdeviceinfo41(const RPCProcedure* proc, const NFS41::GETDEVICEINFO4args*, const NFS41::GETDEVICEINFO4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::GETDEVICEINFO); } @@ -402,7 +402,7 @@ void NFSv41BreakdownAnalyzer::getdeviceinfo41(const RPCProcedure* proc, const NF void NFSv41BreakdownAnalyzer::getdevicelist41(const RPCProcedure* proc, const NFS41::GETDEVICELIST4args*, const NFS41::GETDEVICELIST4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::GETDEVICELIST); } @@ -410,7 +410,7 @@ void NFSv41BreakdownAnalyzer::getdevicelist41(const RPCProcedure* proc, const NF void NFSv41BreakdownAnalyzer::layoutcommit41(const RPCProcedure* proc, const NFS41::LAYOUTCOMMIT4args*, const NFS41::LAYOUTCOMMIT4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::LAYOUTCOMMIT); } @@ -418,7 +418,7 @@ void NFSv41BreakdownAnalyzer::layoutcommit41(const RPCProcedure* proc, const NFS void NFSv41BreakdownAnalyzer::layoutget41(const RPCProcedure* proc, const NFS41::LAYOUTGET4args*, const NFS41::LAYOUTGET4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::LAYOUTGET); } @@ -426,7 +426,7 @@ void NFSv41BreakdownAnalyzer::layoutget41(const RPCProcedure* proc, const NFS41: void NFSv41BreakdownAnalyzer::layoutreturn41(const RPCProcedure* proc, const NFS41::LAYOUTRETURN4args*, const NFS41::LAYOUTRETURN4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::LAYOUTRETURN); } @@ -434,7 +434,7 @@ void NFSv41BreakdownAnalyzer::layoutreturn41(const RPCProcedure* proc, const NFS void NFSv41BreakdownAnalyzer::secinfo_no_name41(const RPCProcedure* proc, const NFS41::SECINFO_NO_NAME4args*, const NFS41::SECINFO_NO_NAME4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::SECINFO_NO_NAME); } @@ -442,7 +442,7 @@ void NFSv41BreakdownAnalyzer::secinfo_no_name41(const RPCProcedure* proc, const void NFSv41BreakdownAnalyzer::sequence41(const RPCProcedure* proc, const NFS41::SEQUENCE4args*, const NFS41::SEQUENCE4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::SEQUENCE); } @@ -450,7 +450,7 @@ void NFSv41BreakdownAnalyzer::sequence41(const RPCProcedure* proc, const NFS41:: void NFSv41BreakdownAnalyzer::set_ssv41(const RPCProcedure* proc, const NFS41::SET_SSV4args*, const NFS41::SET_SSV4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::SET_SSV); } @@ -458,7 +458,7 @@ void NFSv41BreakdownAnalyzer::set_ssv41(const RPCProcedure* proc, const NFS41::S void NFSv41BreakdownAnalyzer::test_stateid41(const RPCProcedure* proc, const NFS41::TEST_STATEID4args*, const NFS41::TEST_STATEID4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::TEST_STATEID); } @@ -466,7 +466,7 @@ void NFSv41BreakdownAnalyzer::test_stateid41(const RPCProcedure* proc, const NFS void NFSv41BreakdownAnalyzer::want_delegation41(const RPCProcedure* proc, const NFS41::WANT_DELEGATION4args*, const NFS41::WANT_DELEGATION4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::WANT_DELEGATION); } @@ -474,7 +474,7 @@ void NFSv41BreakdownAnalyzer::want_delegation41(const RPCProcedure* proc, const void NFSv41BreakdownAnalyzer::destroy_clientid41(const RPCProcedure* proc, const NFS41::DESTROY_CLIENTID4args*, const NFS41::DESTROY_CLIENTID4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::DESTROY_CLIENTID); } @@ -482,7 +482,7 @@ void NFSv41BreakdownAnalyzer::destroy_clientid41(const RPCProcedure* proc, const void NFSv41BreakdownAnalyzer::reclaim_complete41(const RPCProcedure* proc, const NFS41::RECLAIM_COMPLETE4args*, const NFS41::RECLAIM_COMPLETE4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::RECLAIM_COMPLETE); } @@ -490,7 +490,7 @@ void NFSv41BreakdownAnalyzer::reclaim_complete41(const RPCProcedure* proc, const void NFSv41BreakdownAnalyzer::illegal41(const RPCProcedure* proc, const NFS41::ILLEGAL4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS41::NFSProcedure::ILLEGAL); } diff --git a/analyzers/src/breakdown/nfsv41breakdownanalyzer.h b/analyzers/src/breakdown/nfsv41breakdownanalyzer.h index f5f1f9b..2221db6 100644 --- a/analyzers/src/breakdown/nfsv41breakdownanalyzer.h +++ b/analyzers/src/breakdown/nfsv41breakdownanalyzer.h @@ -31,19 +31,18 @@ namespace NST { namespace breakdown { - /*! \brief Analyzer for NFS v4.1 * Handles NFS v4.1 commands */ class NFSv41BreakdownAnalyzer : virtual public IAnalyzer { - Statistics compound_stats; //!< Statistics - Statistics stats; //!< Statistics - NFSv4Representer representer; //!< Class for statistics representation + Statistics compound_stats; //!< Statistics + Statistics stats; //!< Statistics + NFSv4Representer representer; //!< Class for statistics representation public: NFSv41BreakdownAnalyzer(std::ostream& o = std::cout); // NFSv4.1 procedures - void compound41(const RPCProcedure* proc, + void compound41(const RPCProcedure* proc, const struct NFS41::COMPOUND4args*, const struct NFS41::COMPOUND4res*) override final; // NFSv4.1 operations @@ -69,7 +68,7 @@ public: void getattr41(const RPCProcedure* proc, const struct NFS41::GETATTR4args*, const struct NFS41::GETATTR4res* res) override final; - void getfh41(const RPCProcedure* proc, + void getfh41(const RPCProcedure* proc, const struct NFS41::GETFH4res* res) override final; void link41(const RPCProcedure* proc, const struct NFS41::LINK4args*, @@ -86,7 +85,7 @@ public: void lookup41(const RPCProcedure* proc, const struct NFS41::LOOKUP4args*, const struct NFS41::LOOKUP4res* res) override final; - void lookupp41(const RPCProcedure* proc, + void lookupp41(const RPCProcedure* proc, const struct NFS41::LOOKUPP4res* res) override final; void nverify41(const RPCProcedure* proc, const struct NFS41::NVERIFY4args*, @@ -106,9 +105,9 @@ public: void putfh41(const RPCProcedure* proc, const struct NFS41::PUTFH4args*, const struct NFS41::PUTFH4res* res) override final; - void putpubfh41(const RPCProcedure* proc, + void putpubfh41(const RPCProcedure* proc, const struct NFS41::PUTPUBFH4res* res) override final; - void putrootfh41(const RPCProcedure* proc, + void putrootfh41(const RPCProcedure* proc, const struct NFS41::PUTROOTFH4res* res) override final; void read41(const RPCProcedure* proc, const struct NFS41::READ4args*, @@ -116,7 +115,7 @@ public: void readdir41(const RPCProcedure* proc, const struct NFS41::READDIR4args*, const struct NFS41::READDIR4res* res) override final; - void readlink41(const RPCProcedure* proc, + void readlink41(const RPCProcedure* proc, const struct NFS41::READLINK4res* res) override final; void remove41(const RPCProcedure* proc, const struct NFS41::REMOVE4args*, @@ -127,9 +126,9 @@ public: void renew41(const RPCProcedure* proc, const struct NFS41::RENEW4args*, const struct NFS41::RENEW4res* res) override final; - void restorefh41(const RPCProcedure* proc, + void restorefh41(const RPCProcedure* proc, const struct NFS41::RESTOREFH4res* res) override final; - void savefh41(const RPCProcedure* proc, + void savefh41(const RPCProcedure* proc, const struct NFS41::SAVEFH4res* res) override final; void secinfo41(const RPCProcedure* proc, const struct NFS41::SECINFO4args*, @@ -209,7 +208,7 @@ public: void reclaim_complete41(const RPCProcedure* proc, const struct NFS41::RECLAIM_COMPLETE4args*, const struct NFS41::RECLAIM_COMPLETE4res* res) override final; - void illegal41(const RPCProcedure* proc, + void illegal41(const RPCProcedure* proc, const struct NFS41::ILLEGAL4res* res) override final; void flush_statistics() override; @@ -218,5 +217,5 @@ public: } // namespace protocols } // namespace NST //------------------------------------------------------------------------------ -#endif//NFSV41BREAKDOWNANALYZER_H +#endif //NFSV41BREAKDOWNANALYZER_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/breakdown/nfsv41commands.h b/analyzers/src/breakdown/nfsv41commands.h index 97c7c9c..fce94fd 100644 --- a/analyzers/src/breakdown/nfsv41commands.h +++ b/analyzers/src/breakdown/nfsv41commands.h @@ -28,7 +28,6 @@ namespace NST { namespace breakdown { - /*! * Represents NFS v 4.0 commands * Converts commands to string @@ -39,11 +38,11 @@ public: const char* command_description(int cmd_code); const char* command_name(int cmd_code); const char* protocol_name(); - size_t commands_count(); + size_t commands_count(); }; } // namespace breakdown } // namespace NST //------------------------------------------------------------------------------ -#endif//NFSV41COMMANDS_H +#endif //NFSV41COMMANDS_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/breakdown/nfsv4breakdownanalyzer.cpp b/analyzers/src/breakdown/nfsv4breakdownanalyzer.cpp index b9f37af..5ac6641 100644 --- a/analyzers/src/breakdown/nfsv4breakdownanalyzer.cpp +++ b/analyzers/src/breakdown/nfsv4breakdownanalyzer.cpp @@ -49,7 +49,7 @@ void NFSv4BreakdownAnalyzer::compound4(const RPCProcedure* proc, const NFS4::COM void NFSv4BreakdownAnalyzer::access40(const RPCProcedure* proc, const NFS4::ACCESS4args*, const NFS4::ACCESS4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::ACCESS); } @@ -57,7 +57,7 @@ void NFSv4BreakdownAnalyzer::access40(const RPCProcedure* proc, const NFS4::ACCE void NFSv4BreakdownAnalyzer::close40(const RPCProcedure* proc, const NFS4::CLOSE4args*, const NFS4::CLOSE4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::CLOSE); } @@ -65,7 +65,7 @@ void NFSv4BreakdownAnalyzer::close40(const RPCProcedure* proc, const NFS4::CLOSE void NFSv4BreakdownAnalyzer::commit40(const RPCProcedure* proc, const NFS4::COMMIT4args*, const NFS4::COMMIT4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::COMMIT); } @@ -73,7 +73,7 @@ void NFSv4BreakdownAnalyzer::commit40(const RPCProcedure* proc, const NFS4::COMM void NFSv4BreakdownAnalyzer::create40(const RPCProcedure* proc, const NFS4::CREATE4args*, const NFS4::CREATE4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::CREATE); } @@ -81,7 +81,7 @@ void NFSv4BreakdownAnalyzer::create40(const RPCProcedure* proc, const NFS4::CREA void NFSv4BreakdownAnalyzer::delegpurge40(const RPCProcedure* proc, const NFS4::DELEGPURGE4args*, const NFS4::DELEGPURGE4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::DELEGPURGE); } @@ -89,7 +89,7 @@ void NFSv4BreakdownAnalyzer::delegpurge40(const RPCProcedure* proc, const NFS4:: void NFSv4BreakdownAnalyzer::delegreturn40(const RPCProcedure* proc, const NFS4::DELEGRETURN4args*, const NFS4::DELEGRETURN4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::DELEGRETURN); } @@ -97,7 +97,7 @@ void NFSv4BreakdownAnalyzer::delegreturn40(const RPCProcedure* proc, const NFS4: void NFSv4BreakdownAnalyzer::getattr40(const RPCProcedure* proc, const NFS4::GETATTR4args*, const NFS4::GETATTR4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::GETATTR); } @@ -105,7 +105,7 @@ void NFSv4BreakdownAnalyzer::getattr40(const RPCProcedure* proc, const NFS4::GET void NFSv4BreakdownAnalyzer::getfh40(const RPCProcedure* proc, const NFS4::GETFH4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::GETFH); } @@ -113,7 +113,7 @@ void NFSv4BreakdownAnalyzer::getfh40(const RPCProcedure* proc, const NFS4::GETFH void NFSv4BreakdownAnalyzer::link40(const RPCProcedure* proc, const NFS4::LINK4args*, const NFS4::LINK4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::LINK); } @@ -121,7 +121,7 @@ void NFSv4BreakdownAnalyzer::link40(const RPCProcedure* proc, const NFS4::LINK4a void NFSv4BreakdownAnalyzer::lock40(const RPCProcedure* proc, const NFS4::LOCK4args*, const NFS4::LOCK4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::LOCK); } @@ -129,7 +129,7 @@ void NFSv4BreakdownAnalyzer::lock40(const RPCProcedure* proc, const NFS4::LOCK4a void NFSv4BreakdownAnalyzer::lockt40(const RPCProcedure* proc, const NFS4::LOCKT4args*, const NFS4::LOCKT4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::LOCKT); } @@ -137,7 +137,7 @@ void NFSv4BreakdownAnalyzer::lockt40(const RPCProcedure* proc, const NFS4::LOCKT void NFSv4BreakdownAnalyzer::locku40(const RPCProcedure* proc, const NFS4::LOCKU4args*, const NFS4::LOCKU4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::LOCKU); } @@ -145,7 +145,7 @@ void NFSv4BreakdownAnalyzer::locku40(const RPCProcedure* proc, const NFS4::LOCKU void NFSv4BreakdownAnalyzer::lookup40(const RPCProcedure* proc, const NFS4::LOOKUP4args*, const NFS4::LOOKUP4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::LOOKUP); } @@ -153,7 +153,7 @@ void NFSv4BreakdownAnalyzer::lookup40(const RPCProcedure* proc, const NFS4::LOOK void NFSv4BreakdownAnalyzer::lookupp40(const RPCProcedure* proc, const NFS4::LOOKUPP4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::LOOKUPP); } @@ -161,7 +161,7 @@ void NFSv4BreakdownAnalyzer::lookupp40(const RPCProcedure* proc, const NFS4::LOO void NFSv4BreakdownAnalyzer::nverify40(const RPCProcedure* proc, const NFS4::NVERIFY4args*, const NFS4::NVERIFY4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::NVERIFY); } @@ -169,7 +169,7 @@ void NFSv4BreakdownAnalyzer::nverify40(const RPCProcedure* proc, const NFS4::NVE void NFSv4BreakdownAnalyzer::open40(const RPCProcedure* proc, const NFS4::OPEN4args*, const NFS4::OPEN4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::OPEN); } @@ -177,7 +177,7 @@ void NFSv4BreakdownAnalyzer::open40(const RPCProcedure* proc, const NFS4::OPEN4a void NFSv4BreakdownAnalyzer::openattr40(const RPCProcedure* proc, const NFS4::OPENATTR4args*, const NFS4::OPENATTR4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::OPENATTR); } @@ -185,7 +185,7 @@ void NFSv4BreakdownAnalyzer::openattr40(const RPCProcedure* proc, const NFS4::OP void NFSv4BreakdownAnalyzer::open_confirm40(const RPCProcedure* proc, const NFS4::OPEN_CONFIRM4args*, const NFS4::OPEN_CONFIRM4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::OPEN_CONFIRM); } @@ -193,7 +193,7 @@ void NFSv4BreakdownAnalyzer::open_confirm40(const RPCProcedure* proc, const NFS4 void NFSv4BreakdownAnalyzer::open_downgrade40(const RPCProcedure* proc, const NFS4::OPEN_DOWNGRADE4args*, const NFS4::OPEN_DOWNGRADE4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::OPEN_DOWNGRADE); } @@ -201,7 +201,7 @@ void NFSv4BreakdownAnalyzer::open_downgrade40(const RPCProcedure* proc, const NF void NFSv4BreakdownAnalyzer::putfh40(const RPCProcedure* proc, const NFS4::PUTFH4args*, const NFS4::PUTFH4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::PUTFH); } @@ -209,7 +209,7 @@ void NFSv4BreakdownAnalyzer::putfh40(const RPCProcedure* proc, const NFS4::PUTFH void NFSv4BreakdownAnalyzer::putpubfh40(const RPCProcedure* proc, const NFS4::PUTPUBFH4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::PUTPUBFH); } @@ -217,7 +217,7 @@ void NFSv4BreakdownAnalyzer::putpubfh40(const RPCProcedure* proc, const NFS4::PU void NFSv4BreakdownAnalyzer::putrootfh40(const RPCProcedure* proc, const NFS4::PUTROOTFH4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::PUTROOTFH); } @@ -225,7 +225,7 @@ void NFSv4BreakdownAnalyzer::putrootfh40(const RPCProcedure* proc, const NFS4::P void NFSv4BreakdownAnalyzer::read40(const RPCProcedure* proc, const NFS4::READ4args*, const NFS4::READ4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::READ); } @@ -233,7 +233,7 @@ void NFSv4BreakdownAnalyzer::read40(const RPCProcedure* proc, const NFS4::READ4a void NFSv4BreakdownAnalyzer::readdir40(const RPCProcedure* proc, const NFS4::READDIR4args*, const NFS4::READDIR4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::READDIR); } @@ -241,7 +241,7 @@ void NFSv4BreakdownAnalyzer::readdir40(const RPCProcedure* proc, const NFS4::REA void NFSv4BreakdownAnalyzer::readlink40(const RPCProcedure* proc, const NFS4::READLINK4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::READLINK); } @@ -249,7 +249,7 @@ void NFSv4BreakdownAnalyzer::readlink40(const RPCProcedure* proc, const NFS4::RE void NFSv4BreakdownAnalyzer::remove40(const RPCProcedure* proc, const NFS4::REMOVE4args*, const NFS4::REMOVE4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::REMOVE); } @@ -257,7 +257,7 @@ void NFSv4BreakdownAnalyzer::remove40(const RPCProcedure* proc, const NFS4::REMO void NFSv4BreakdownAnalyzer::rename40(const RPCProcedure* proc, const NFS4::RENAME4args*, const NFS4::RENAME4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::RENAME); } @@ -265,7 +265,7 @@ void NFSv4BreakdownAnalyzer::rename40(const RPCProcedure* proc, const NFS4::RENA void NFSv4BreakdownAnalyzer::renew40(const RPCProcedure* proc, const NFS4::RENEW4args*, const NFS4::RENEW4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::RENEW); } @@ -273,7 +273,7 @@ void NFSv4BreakdownAnalyzer::renew40(const RPCProcedure* proc, const NFS4::RENEW void NFSv4BreakdownAnalyzer::restorefh40(const RPCProcedure* proc, const NFS4::RESTOREFH4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::RESTOREFH); } @@ -281,7 +281,7 @@ void NFSv4BreakdownAnalyzer::restorefh40(const RPCProcedure* proc, const NFS4::R void NFSv4BreakdownAnalyzer::savefh40(const RPCProcedure* proc, const NFS4::SAVEFH4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::SAVEFH); } @@ -289,7 +289,7 @@ void NFSv4BreakdownAnalyzer::savefh40(const RPCProcedure* proc, const NFS4::SAVE void NFSv4BreakdownAnalyzer::secinfo40(const RPCProcedure* proc, const NFS4::SECINFO4args*, const NFS4::SECINFO4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::SECINFO); } @@ -297,7 +297,7 @@ void NFSv4BreakdownAnalyzer::secinfo40(const RPCProcedure* proc, const NFS4::SEC void NFSv4BreakdownAnalyzer::setattr40(const RPCProcedure* proc, const NFS4::SETATTR4args*, const NFS4::SETATTR4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::SETATTR); } @@ -305,7 +305,7 @@ void NFSv4BreakdownAnalyzer::setattr40(const RPCProcedure* proc, const NFS4::SET void NFSv4BreakdownAnalyzer::setclientid40(const RPCProcedure* proc, const NFS4::SETCLIENTID4args*, const NFS4::SETCLIENTID4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::SETCLIENTID); } @@ -313,7 +313,7 @@ void NFSv4BreakdownAnalyzer::setclientid40(const RPCProcedure* proc, const NFS4: void NFSv4BreakdownAnalyzer::setclientid_confirm40(const RPCProcedure* proc, const NFS4::SETCLIENTID_CONFIRM4args*, const NFS4::SETCLIENTID_CONFIRM4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::SETCLIENTID_CONFIRM); } @@ -321,7 +321,7 @@ void NFSv4BreakdownAnalyzer::setclientid_confirm40(const RPCProcedure* proc, con void NFSv4BreakdownAnalyzer::verify40(const RPCProcedure* proc, const NFS4::VERIFY4args*, const NFS4::VERIFY4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::VERIFY); } @@ -329,7 +329,7 @@ void NFSv4BreakdownAnalyzer::verify40(const RPCProcedure* proc, const NFS4::VERI void NFSv4BreakdownAnalyzer::write40(const RPCProcedure* proc, const NFS4::WRITE4args*, const NFS4::WRITE4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::WRITE); } @@ -337,7 +337,7 @@ void NFSv4BreakdownAnalyzer::write40(const RPCProcedure* proc, const NFS4::WRITE void NFSv4BreakdownAnalyzer::release_lockowner40(const RPCProcedure* proc, const NFS4::RELEASE_LOCKOWNER4args*, const NFS4::RELEASE_LOCKOWNER4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::RELEASE_LOCKOWNER); } @@ -345,7 +345,7 @@ void NFSv4BreakdownAnalyzer::release_lockowner40(const RPCProcedure* proc, const void NFSv4BreakdownAnalyzer::get_dir_delegation40(const RPCProcedure* proc, const NFS4::GET_DIR_DELEGATION4args*, const NFS4::GET_DIR_DELEGATION4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::GET_DIR_DELEGATION); } @@ -353,7 +353,7 @@ void NFSv4BreakdownAnalyzer::get_dir_delegation40(const RPCProcedure* proc, cons void NFSv4BreakdownAnalyzer::illegal40(const RPCProcedure* proc, const NFS4::ILLEGAL4res* res) { - if (res) + if(res) { stats.account(proc, ProcEnumNFS4::NFSProcedure::ILLEGAL); } diff --git a/analyzers/src/breakdown/nfsv4breakdownanalyzer.h b/analyzers/src/breakdown/nfsv4breakdownanalyzer.h index 14275e6..c74cdc4 100644 --- a/analyzers/src/breakdown/nfsv4breakdownanalyzer.h +++ b/analyzers/src/breakdown/nfsv4breakdownanalyzer.h @@ -31,7 +31,6 @@ namespace NST { namespace breakdown { - /*! \brief Analyzer for NFS v4 * Handles NFS v4 commands */ @@ -39,9 +38,9 @@ class NFSv4BreakdownAnalyzer : virtual public IAnalyzer { protected: private: - Statistics compound_stats; //!< Statistics - Statistics stats; //!< Statistics - NFSv4Representer representer; //!< stream to output + Statistics compound_stats; //!< Statistics + Statistics stats; //!< Statistics + NFSv4Representer representer; //!< stream to output public: NFSv4BreakdownAnalyzer(std::ostream& o = std::cout); @@ -50,7 +49,7 @@ public: void null4(const RPCProcedure* proc, const struct NFS4::NULL4args*, const struct NFS4::NULL4res*) override final; - void compound4(const RPCProcedure* proc, + void compound4(const RPCProcedure* proc, const struct NFS4::COMPOUND4args*, const struct NFS4::COMPOUND4res*) override final; @@ -78,7 +77,7 @@ public: void getattr40(const RPCProcedure* proc, const struct NFS4::GETATTR4args*, const struct NFS4::GETATTR4res* res) override final; - void getfh40(const RPCProcedure* proc, + void getfh40(const RPCProcedure* proc, const struct NFS4::GETFH4res* res) override final; void link40(const RPCProcedure* proc, const struct NFS4::LINK4args*, @@ -95,7 +94,7 @@ public: void lookup40(const RPCProcedure* proc, const struct NFS4::LOOKUP4args*, const struct NFS4::LOOKUP4res* res) override final; - void lookupp40(const RPCProcedure* proc, + void lookupp40(const RPCProcedure* proc, const struct NFS4::LOOKUPP4res* res) override final; void nverify40(const RPCProcedure* proc, const struct NFS4::NVERIFY4args*, @@ -115,9 +114,9 @@ public: void putfh40(const RPCProcedure* proc, const struct NFS4::PUTFH4args*, const struct NFS4::PUTFH4res* res) override final; - void putpubfh40(const RPCProcedure* proc, + void putpubfh40(const RPCProcedure* proc, const struct NFS4::PUTPUBFH4res* res) override final; - void putrootfh40(const RPCProcedure* proc, + void putrootfh40(const RPCProcedure* proc, const struct NFS4::PUTROOTFH4res* res) override final; void read40(const RPCProcedure* proc, const struct NFS4::READ4args*, @@ -125,7 +124,7 @@ public: void readdir40(const RPCProcedure* proc, const struct NFS4::READDIR4args*, const struct NFS4::READDIR4res* res) override final; - void readlink40(const RPCProcedure* proc, + void readlink40(const RPCProcedure* proc, const struct NFS4::READLINK4res* res) override final; void remove40(const RPCProcedure* proc, const struct NFS4::REMOVE4args*, @@ -136,9 +135,9 @@ public: void renew40(const RPCProcedure* proc, const struct NFS4::RENEW4args*, const struct NFS4::RENEW4res* res) override final; - void restorefh40(const RPCProcedure* proc, + void restorefh40(const RPCProcedure* proc, const struct NFS4::RESTOREFH4res* res) override final; - void savefh40(const RPCProcedure* proc, + void savefh40(const RPCProcedure* proc, const struct NFS4::SAVEFH4res* res) override final; void secinfo40(const RPCProcedure* proc, const struct NFS4::SECINFO4args*, @@ -164,7 +163,7 @@ public: void get_dir_delegation40(const RPCProcedure* proc, const struct NFS4::GET_DIR_DELEGATION4args*, const struct NFS4::GET_DIR_DELEGATION4res* res) override final; - void illegal40(const RPCProcedure* proc, + void illegal40(const RPCProcedure* proc, const struct NFS4::ILLEGAL4res* res) override final; void flush_statistics() override; }; @@ -172,5 +171,5 @@ public: } // namespace breakdown } // namespace NST //------------------------------------------------------------------------------ -#endif//NFSV4BREAKDOWNANALYZER_H +#endif //NFSV4BREAKDOWNANALYZER_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/breakdown/nfsv4commands.h b/analyzers/src/breakdown/nfsv4commands.h index 2fcfa0e..ac2789e 100644 --- a/analyzers/src/breakdown/nfsv4commands.h +++ b/analyzers/src/breakdown/nfsv4commands.h @@ -28,7 +28,6 @@ namespace NST { namespace breakdown { - /*! * Represents NFS v 4.0 commands * Converts commands to string @@ -38,12 +37,12 @@ class NFSv4Commands : public CommandRepresenter public: const char* command_description(int cmd_code) override final; const char* command_name(int cmd_code) override final; - size_t commands_count() override final; - const char* protocol_name(); + size_t commands_count() override final; + const char* protocol_name() override final; }; } // namespace breakdown } // namespace NST //------------------------------------------------------------------------------ -#endif//NFSV4COMMANDS_H +#endif //NFSV4COMMANDS_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/breakdown/nfsv4representer.cpp b/analyzers/src/breakdown/nfsv4representer.cpp index e6410b6..beac005 100644 --- a/analyzers/src/breakdown/nfsv4representer.cpp +++ b/analyzers/src/breakdown/nfsv4representer.cpp @@ -24,20 +24,21 @@ using namespace NST::breakdown; //------------------------------------------------------------------------------ NFSv4Representer::NFSv4Representer(std::ostream& o, CommandRepresenter* cmdRep, size_t space_for_cmd_name, size_t count_of_compounds) - : Representer(o, cmdRep, space_for_cmd_name), count_of_compounds(count_of_compounds) + : Representer(o, cmdRep, space_for_cmd_name) + , count_of_compounds(count_of_compounds) { } void NFSv4Representer::onProcedureInfoPrinted(std::ostream& o, const BreakdownCounter& breakdown, unsigned procedure) const { - if (procedure == 0) + if(procedure == 0) { o << "Total procedures: " << breakdown.get_total_count() - << ". Per procedure:" << std::endl; + << ". Per procedure:" << std::endl; } - if (procedure == count_of_compounds) + if(procedure == count_of_compounds) { o << "Total operations: " << breakdown.get_total_count() - << ". Per operation:" << std::endl; + << ". Per operation:" << std::endl; } } diff --git a/analyzers/src/breakdown/nfsv4representer.h b/analyzers/src/breakdown/nfsv4representer.h index 5bda9b1..105aaa7 100644 --- a/analyzers/src/breakdown/nfsv4representer.h +++ b/analyzers/src/breakdown/nfsv4representer.h @@ -28,7 +28,6 @@ namespace NST { namespace breakdown { - /** * @brief The NFSv4Representer class * Splits output into commands/operations lists for NFS v4.* protocols @@ -36,6 +35,7 @@ namespace breakdown class NFSv4Representer : public Representer { const size_t count_of_compounds; + public: NFSv4Representer(std::ostream& o, CommandRepresenter* cmdRep, size_t space_for_cmd_name, size_t count_of_compounds); void onProcedureInfoPrinted(std::ostream& o, const BreakdownCounter& breakdown, unsigned procedure) const override final; @@ -44,5 +44,5 @@ public: } // namespace breakdown } // namespace NST //------------------------------------------------------------------------------ -#endif//NFSV4REPRESENTER_H +#endif //NFSV4REPRESENTER_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/breakdown/representer.cpp b/analyzers/src/breakdown/representer.cpp index ca33062..9f402a5 100644 --- a/analyzers/src/breakdown/representer.cpp +++ b/analyzers/src/breakdown/representer.cpp @@ -36,36 +36,33 @@ NST::breakdown::Representer::Representer(std::ostream& o, NST::breakdown::Comman void Representer::flush_statistics(const Statistics& statistics) { - out << "### Breakdown analyzer ###" - << std::endl - << cmd_representer->protocol_name() - << " protocol" - << std::endl; + out << "### Breakdown analyzer ###" << std::endl + << cmd_representer->protocol_name() << " protocol"; - statistics.for_each_procedure([&](const BreakdownCounter& breakdown, size_t procedure) + if(statistics.has_session()) { - onProcedureInfoPrinted(out, breakdown, procedure); - size_t procedure_count = breakdown[procedure].get_count(); - out.width(space_for_cmd_name); - out << std::left - << cmd_representer->command_name(procedure); - out.width(5); - out << std::right - << procedure_count; - out.width(7); - out.setf(std::ios::fixed, std::ios::floatfield); - out.precision(2); - out << (breakdown.get_total_count() ? ((1.0 * procedure_count / breakdown.get_total_count()) * 100.0) : 0); - out.setf(std::ios::fixed | std::ios::scientific , std::ios::floatfield); - out << '%' << std::endl; - }); + out << std::endl; + + statistics.for_each_procedure([&](const BreakdownCounter& breakdown, size_t procedure) { + onProcedureInfoPrinted(out, breakdown, procedure); + size_t procedure_count = breakdown[procedure].get_count(); + out.width(space_for_cmd_name); + out << std::left + << cmd_representer->command_name(procedure); + out.width(5); + out << std::right + << procedure_count; + out.width(7); + out.setf(std::ios::fixed, std::ios::floatfield); + out.precision(2); + out << (breakdown.get_total_count() ? ((1.0 * procedure_count / breakdown.get_total_count()) * 100.0) : 0); + out.setf(std::ios::fixed | std::ios::scientific, std::ios::floatfield); + out << '%' << std::endl; + }); - if (statistics.has_session()) // is not empty? - { out << "Per connection info: " << std::endl; - statistics.for_each_session([&](const Session& session) - { + statistics.for_each_session([&](const Session& session) { std::stringstream ssession; print_session(ssession, session); print_per_session(statistics, session, ssession.str()); @@ -73,6 +70,10 @@ void Representer::flush_statistics(const Statistics& statistics) store_per_session(file, statistics, session, ssession.str()); }); } + else + { + out << ": Data transmission has not been detected." << std::endl; + } } void Representer::store_per_session(std::ostream& file, const Statistics& statistics, const Session& session, const std::string& ssession) const @@ -80,8 +81,7 @@ void Representer::store_per_session(std::ostream& file, const Statistics& statis //TODO: does it make sense to join store_per_session & print_per_session? file << "Session: " << ssession << std::endl; - statistics.for_each_procedure_in_session(session, [&](const BreakdownCounter& breakdown, size_t procedure) - { + statistics.for_each_procedure_in_session(session, [&](const BreakdownCounter& breakdown, size_t procedure) { uint64_t s_total_proc = breakdown.get_total_count(); file << cmd_representer->command_name(procedure); file << ' ' << breakdown[procedure].get_count() << ' '; @@ -98,8 +98,7 @@ void Representer::print_per_session(const Statistics& statistics, const Session& { out << "Session: " << ssession << std::endl; - statistics.for_each_procedure_in_session(session, [&](const BreakdownCounter& breakdown, size_t procedure) - { + statistics.for_each_procedure_in_session(session, [&](const BreakdownCounter& breakdown, size_t procedure) { uint64_t s_total_proc = breakdown.get_total_count(); onProcedureInfoPrinted(out, breakdown, procedure); out.width(22); @@ -136,10 +135,10 @@ void Representer::print_per_session(const Statistics& statistics, const Session& void Representer::onProcedureInfoPrinted(std::ostream& o, const BreakdownCounter& breakdown, unsigned procedure) const { - if (procedure == 0) + if(procedure == 0) { o << "Total operations: " << breakdown.get_total_count() - << ". Per operation:" << std::endl; + << ". Per operation:" << std::endl; } } //------------------------------------------------------------------------------ diff --git a/analyzers/src/breakdown/representer.h b/analyzers/src/breakdown/representer.h index 3a216ca..edde03d 100644 --- a/analyzers/src/breakdown/representer.h +++ b/analyzers/src/breakdown/representer.h @@ -25,29 +25,29 @@ #include <memory> #include <ostream> -#include "commandrepresenter.h" #include "breakdowncounter.h" +#include "commandrepresenter.h" #include "statistics.h" //------------------------------------------------------------------------------ namespace NST { namespace breakdown { - /*! \class Represents statistics and sends it to screen */ class Representer { - std::ostream& out; + std::ostream& out; std::unique_ptr<CommandRepresenter> cmd_representer; - size_t space_for_cmd_name; + size_t space_for_cmd_name; - void store_per_session(std::ostream& file, - const Statistics& statistics, - const Session& session, + void store_per_session(std::ostream& file, + const Statistics& statistics, + const Session& session, const std::string& ssession) const; void print_per_session(const Statistics& statistics, const Session& session, const std::string& ssession) const; + protected: /** * @brief handler of one procedure output event @@ -56,6 +56,7 @@ protected: * @param procedure - procedure ID */ virtual void onProcedureInfoPrinted(std::ostream& o, const BreakdownCounter& breakdown, unsigned procedure) const; + public: /** * @brief Representer's constructor @@ -75,5 +76,5 @@ public: } // namespace breakdown } // namespace NST //------------------------------------------------------------------------------ -#endif//REPRESENTER_H +#endif //REPRESENTER_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/breakdown/statistics.cpp b/analyzers/src/breakdown/statistics.cpp index 5cbf51b..c392ac1 100644 --- a/analyzers/src/breakdown/statistics.cpp +++ b/analyzers/src/breakdown/statistics.cpp @@ -25,15 +25,13 @@ using namespace NST::breakdown; //------------------------------------------------------------------------------ bool Less::operator()(const Session& a, const Session& b) const { - return ( (std::uint16_t)(a.ip_type) < (std::uint16_t)(b.ip_type) ) || // compare versions of IP address - ( ntohs(a.port[0]) < ntohs(b.port[0]) ) || // compare Source(client) ports - ( ntohs(a.port[1]) < ntohs(b.port[1]) ) || // compare Destination(server) ports + return ((std::uint16_t)(a.ip_type) < (std::uint16_t)(b.ip_type)) || // compare versions of IP address + (ntohs(a.port[0]) < ntohs(b.port[0])) || // compare Source(client) ports + (ntohs(a.port[1]) < ntohs(b.port[1])) || // compare Destination(server) ports - ( (a.ip_type == Session::IPType::v4) ? // compare IPv4 - ((ntohl(a.ip.v4.addr[0]) < ntohl(b.ip.v4.addr[0])) || (ntohl(a.ip.v4.addr[1]) < ntohl(b.ip.v4.addr[1]))) - : - (memcmp(&a.ip.v6, &b.ip.v6, sizeof(a.ip.v6)) < 0 ) - ); + ((a.ip_type == Session::IPType::v4) ? // compare IPv4 + ((ntohl(a.ip.v4.addr[0]) < ntohl(b.ip.v4.addr[0])) || (ntohl(a.ip.v4.addr[1]) < ntohl(b.ip.v4.addr[1]))) + : (memcmp(&a.ip.v6, &b.ip.v6, sizeof(a.ip.v6)) < 0)); } Statistics::Statistics(size_t proc_types_count) @@ -42,31 +40,31 @@ Statistics::Statistics(size_t proc_types_count) { } -void Statistics::for_each_procedure(std::function<void (const BreakdownCounter&, size_t)> on_procedure) const +void Statistics::for_each_procedure(std::function<void(const BreakdownCounter&, size_t)> on_procedure) const { - for (size_t procedure = 0; procedure < proc_types_count; ++procedure) + for(size_t procedure = 0; procedure < proc_types_count; ++procedure) { on_procedure(counter, procedure); } } -void Statistics::for_each_session(std::function<void (const Session&)> on_session) const +void Statistics::for_each_session(std::function<void(const Session&)> on_session) const { - for (auto& it : per_session_statistics) + for(auto& it : per_session_statistics) { on_session(it.first); } } -void Statistics::for_each_procedure_in_session(const Session& session, std::function<void (const BreakdownCounter&, size_t)> on_procedure) const +void Statistics::for_each_procedure_in_session(const Session& session, std::function<void(const BreakdownCounter&, size_t)> on_procedure) const { - if (per_session_statistics.find(session) == per_session_statistics.end()) + if(per_session_statistics.find(session) == per_session_statistics.end()) { return; } const BreakdownCounter& current = per_session_statistics.at(session); - for (size_t procedure = 0; procedure < proc_types_count; ++procedure) + for(size_t procedure = 0; procedure < proc_types_count; ++procedure) { on_procedure(current, procedure); } @@ -82,10 +80,10 @@ void Statistics::account(const int cmd_index, const Session& session, const time counter[cmd_index].add(latency); auto i = per_session_statistics.find(session); - if (i == per_session_statistics.end()) + if(i == per_session_statistics.end()) { - auto session_res = per_session_statistics.emplace(session, BreakdownCounter {proc_types_count}); - if (session_res.second == false) + auto session_res = per_session_statistics.emplace(session, BreakdownCounter{proc_types_count}); + if(session_res.second == false) { return; } @@ -93,6 +91,5 @@ void Statistics::account(const int cmd_index, const Session& session, const time } (i->second)[cmd_index].add(latency); - } //------------------------------------------------------------------------------ diff --git a/analyzers/src/breakdown/statistics.h b/analyzers/src/breakdown/statistics.h index 6202386..aac0a99 100644 --- a/analyzers/src/breakdown/statistics.h +++ b/analyzers/src/breakdown/statistics.h @@ -33,12 +33,11 @@ namespace NST { namespace breakdown { - /*! \brief Comparator for sessions */ struct Less { - bool operator() (const Session& a, const Session& b) const; + bool operator()(const Session& a, const Session& b) const; }; /*! \brief All statistics data's container @@ -46,7 +45,7 @@ struct Less struct Statistics { using PerSessionStatistics = std::map<Session, BreakdownCounter, Less>; - using ProceduresCount = std::vector<int>; + using ProceduresCount = std::vector<int>; const size_t proc_types_count; //!< Count of types of procedures @@ -86,27 +85,28 @@ struct Statistics * @param cmd_code - commands code * @param stats - statistics */ - template<typename Cmd, typename Code> + template <typename Cmd, typename Code> void account(const Cmd* proc, Code cmd_code) { - timeval latency {0, 0}; - const int cmd_index = static_cast<int>(cmd_code); - const Session& session = *proc->session; + timeval latency{0, 0}; + const int cmd_index = static_cast<int>(cmd_code); + const Session& session = *proc->session; // diff between 'reply' and 'call' timestamps timersub(proc->rtimestamp, proc->ctimestamp, &latency); account(cmd_index, session, latency); } + protected: void account(const int cmd_index, const Session& session, const timeval latency); - BreakdownCounter counter; //!< Statistics for all sessions + BreakdownCounter counter; //!< Statistics for all sessions PerSessionStatistics per_session_statistics; //!< Statistics for each session }; } // namespace breakdown } // namespace NST //------------------------------------------------------------------------------ -#endif//STATISTICS_H +#endif //STATISTICS_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/breakdown/statisticscompositor.cpp b/analyzers/src/breakdown/statisticscompositor.cpp index 653c1df..c322bac 100644 --- a/analyzers/src/breakdown/statisticscompositor.cpp +++ b/analyzers/src/breakdown/statisticscompositor.cpp @@ -29,12 +29,11 @@ StatisticsCompositor::StatisticsCompositor(Statistics& procedures_stats, Statist : Statistics(operations_stats) , procedures_stats(procedures_stats) { - procedures_stats.for_each_session([&](const Session& session) - { + procedures_stats.for_each_session([&](const Session& session) { auto i = per_session_statistics.find(session); - if (i == per_session_statistics.end()) + if(i == per_session_statistics.end()) { - per_session_statistics.emplace(session, BreakdownCounter {proc_types_count}); + per_session_statistics.emplace(session, BreakdownCounter{proc_types_count}); } }); } @@ -45,33 +44,32 @@ void StatisticsCompositor::for_each_procedure(std::function<void(const Breakdown procedures_stats.for_each_procedure(on_procedure); - for (size_t procedure = procedures_stats.proc_types_count; procedure < proc_types_count; ++procedure) + for(size_t procedure = procedures_stats.proc_types_count; procedure < proc_types_count; ++procedure) { on_procedure(counter, procedure); } } -void StatisticsCompositor::for_each_procedure_in_session(const Session& session, std::function<void (const BreakdownCounter&, size_t)> on_procedure) const +void StatisticsCompositor::for_each_procedure_in_session(const Session& session, std::function<void(const BreakdownCounter&, size_t)> on_procedure) const { bool has_procedures_in_session = false; - procedures_stats.for_each_procedure_in_session(session, [&](const BreakdownCounter& breakdown, size_t proc) - { + procedures_stats.for_each_procedure_in_session(session, [&](const BreakdownCounter& breakdown, size_t proc) { on_procedure(breakdown, proc); has_procedures_in_session = true; }); - if (!has_procedures_in_session) + if(!has_procedures_in_session) { BreakdownCounter empty(procedures_stats.proc_types_count); - for (size_t procedure = 0; procedure < procedures_stats.proc_types_count; ++procedure) + for(size_t procedure = 0; procedure < procedures_stats.proc_types_count; ++procedure) { on_procedure(empty, procedure); } } const BreakdownCounter& current = per_session_statistics.at(session); - for (size_t procedure = procedures_stats.proc_types_count; procedure < proc_types_count; ++procedure) + for(size_t procedure = procedures_stats.proc_types_count; procedure < proc_types_count; ++procedure) { on_procedure(current, procedure); } diff --git a/analyzers/src/breakdown/statisticscompositor.h b/analyzers/src/breakdown/statisticscompositor.h index 3b73182..908c4d0 100644 --- a/analyzers/src/breakdown/statisticscompositor.h +++ b/analyzers/src/breakdown/statisticscompositor.h @@ -28,7 +28,6 @@ namespace NST { namespace breakdown { - /** * @brief Composes 2 statistics: for procedures and functions * It is useful for NFS v4.* protocols @@ -36,6 +35,7 @@ namespace breakdown class StatisticsCompositor : public Statistics { Statistics& procedures_stats; + public: StatisticsCompositor(Statistics& procedures_stats, Statistics& operations_stats); void for_each_procedure(std::function<void(const BreakdownCounter&, size_t)> on_procedure) const override; @@ -46,5 +46,5 @@ public: } // namespace breakdown } // namespace NST //------------------------------------------------------------------------------ -#endif//STATISTICSCOMPOSITOR_H +#endif //STATISTICSCOMPOSITOR_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/json/abstract_tcp_service.cpp b/analyzers/src/json/abstract_tcp_service.cpp index 15cd7e1..c04d20f 100644 --- a/analyzers/src/json/abstract_tcp_service.cpp +++ b/analyzers/src/json/abstract_tcp_service.cpp @@ -23,32 +23,32 @@ #include <functional> #include <system_error> -#include <sys/types.h> #include <sys/socket.h> +#include <sys/types.h> #include <unistd.h> #include "abstract_tcp_service.h" #include "utils/log.h" //------------------------------------------------------------------------------ -AbstractTcpService::AbstractTcpService(std::size_t workersAmount, int port, const std::string& host, int backlog) : - _port{port}, - _host{host}, - _backlog{backlog}, - _isRunning{true}, - _threadPool{workersAmount}, - _listenerThread{}, - _serverSocket{0}, - _tasksQueue{}, - _tasksQueueMutex{}, - _tasksQueueCond{} +AbstractTcpService::AbstractTcpService(std::size_t workersAmount, int port, const std::string& host, int backlog) + : _port{port} + , _host{host} + , _backlog{backlog} + , _isRunning{true} + , _threadPool{workersAmount} + , _listenerThread{} + , _serverSocket{0} + , _tasksQueue{} + , _tasksQueueMutex{} + , _tasksQueueCond{} { } AbstractTcpService::~AbstractTcpService() { // Disposing tasks which are still in queue - while (!_tasksQueue.empty()) + while(!_tasksQueue.empty()) { delete _tasksQueue.front(); _tasksQueue.pop(); @@ -60,29 +60,29 @@ void AbstractTcpService::start() _isRunning = true; // Setting up server TCP-socket _serverSocket = socket(PF_INET, SOCK_STREAM, 0); - if (_serverSocket < 0) + if(_serverSocket < 0) { throw std::system_error{errno, std::system_category(), "Opening server socket error"}; } // Setting SO_REUSEADDR to true int reuseAddr = 1; - if (setsockopt(_serverSocket, SOL_SOCKET, SO_REUSEADDR, &reuseAddr, sizeof(reuseAddr)) < 0) + if(setsockopt(_serverSocket, SOL_SOCKET, SO_REUSEADDR, &reuseAddr, sizeof(reuseAddr)) < 0) { throw std::system_error{errno, std::system_category(), "Setting SO_REUSEADDR socket option error"}; } // Binding server socket to endpoint IpEndpoint endpoint{_host.c_str(), _port}; - if (bind(_serverSocket, endpoint.addrinfo()->ai_addr, endpoint.addrinfo()->ai_addrlen) != 0) + if(bind(_serverSocket, endpoint.addrinfo()->ai_addr, endpoint.addrinfo()->ai_addrlen) != 0) { throw std::system_error{errno, std::system_category(), "Binding server socket error"}; } // Converting socket to listening state - if (listen(_serverSocket, _backlog) != 0) + if(listen(_serverSocket, _backlog) != 0) { throw std::system_error{errno, std::system_category(), "Converting socket to listening state error"}; } // Creating threads for thread-pool - for (auto & thr : _threadPool) + for(auto& thr : _threadPool) { thr = std::thread{&AbstractTcpService::runWorker, this}; } @@ -98,7 +98,7 @@ void AbstractTcpService::stop() _tasksQueueCond.notify_all(); } // Joining to thread-pool threads and disposing them - for (auto & thr : _threadPool) + for(auto& thr : _threadPool) { thr.join(); } @@ -109,18 +109,18 @@ void AbstractTcpService::stop() void AbstractTcpService::runWorker() { - while (true) + while(true) { std::unique_ptr<AbstractTask> pendingTask; { std::unique_lock<std::mutex> lock{_tasksQueueMutex}; - while (!pendingTask) + while(!pendingTask) { - if (!_isRunning.load()) + if(!_isRunning.load()) { return; } - if (!_tasksQueue.empty()) + if(!_tasksQueue.empty()) { pendingTask.reset(_tasksQueue.front()); _tasksQueue.pop(); @@ -137,7 +137,7 @@ void AbstractTcpService::runWorker() void AbstractTcpService::runListener() { - while (_isRunning.load()) + while(_isRunning.load()) { // Accepting incoming connection on socket struct timespec acceptDuration; @@ -146,19 +146,19 @@ void AbstractTcpService::runListener() FD_ZERO(&readDescriptorsSet); FD_SET(_serverSocket, &readDescriptorsSet); int descriptorsCount = pselect(_serverSocket + 1, &readDescriptorsSet, NULL, NULL, &acceptDuration, NULL); - if (descriptorsCount == 0) + if(descriptorsCount == 0) { // Timeout expired continue; } - else if (descriptorsCount < 0) + else if(descriptorsCount < 0) { std::system_error e{errno, std::system_category(), "Awaiting for incoming connection on server socket error"}; LOG("ERROR: %s", e.what()); #ifdef __gnu_linux__ // Several first pselect(2) calls cause "Interrupted system call" error (errno == EINTR) // if drop privileges option is used on Linux (see https://access.redhat.com/solutions/165483) - if (errno == EINTR) + if(errno == EINTR) { continue; } @@ -167,7 +167,7 @@ void AbstractTcpService::runListener() } // Extracting and returning pending connection int pendingSocketDescriptor = accept(_serverSocket, NULL, NULL); - if (pendingSocketDescriptor < 0) + if(pendingSocketDescriptor < 0) { std::system_error e{errno, std::system_category(), "Accepting incoming connection on server socket error"}; LOG("ERROR: %s", e.what()); @@ -177,7 +177,7 @@ void AbstractTcpService::runListener() std::unique_ptr<AbstractTask> newTask{createTask(pendingSocketDescriptor)}; { std::unique_lock<std::mutex> lock(_tasksQueueMutex); - if (_tasksQueue.size() < MaxTasksQueueSize) + if(_tasksQueue.size() < MaxTasksQueueSize) { _tasksQueue.push(newTask.get()); newTask.release(); @@ -193,9 +193,10 @@ void AbstractTcpService::runListener() //------------------------------------------------------------------------------ -AbstractTcpService::AbstractTask::AbstractTask(int socket) : - _socket{socket} -{} +AbstractTcpService::AbstractTask::AbstractTask(int socket) + : _socket{socket} +{ +} AbstractTcpService::AbstractTask::~AbstractTask() { diff --git a/analyzers/src/json/abstract_tcp_service.h b/analyzers/src/json/abstract_tcp_service.h index 8ef0e00..ef43648 100644 --- a/analyzers/src/json/abstract_tcp_service.h +++ b/analyzers/src/json/abstract_tcp_service.h @@ -23,11 +23,11 @@ #define ABSTRACT_TCP_SERVICE_H //------------------------------------------------------------------------------ #include <atomic> -#include <condition_variable> #include <mutex> #include <queue> #include <thread> #include <vector> +#include <condition_variable> #include "ip_endpoint.h" //------------------------------------------------------------------------------ @@ -64,7 +64,7 @@ public: //! Fills 'struct timespec' value using clock timeout inline static void fillDuration(struct timespec& ts) { - ts.tv_sec = ClockTimeoutMs / 1000; + ts.tv_sec = ClockTimeoutMs / 1000; ts.tv_nsec = ClockTimeoutMs % 1000 * 1000000; } @@ -72,6 +72,7 @@ public: virtual void start(); //! Stops TCP-service virtual void stop(); + protected: //! Asbtract TCP-service task class AbstractTask @@ -94,34 +95,36 @@ protected: //! Task execution pure virtual method to override virtual void execute() = 0; + private: int _socket; }; virtual AbstractTask* createTask(int socket) = 0; + private: using ThreadPool = std::vector<std::thread>; - static constexpr int ClockTimeoutMs = 100; - static constexpr std::size_t ReadBufferSize = 1024; - static constexpr std::size_t WriteBufferSize = 4096; - static constexpr std::size_t HeaderPartSize = 1024; - static constexpr int MaxTasksQueueSize = 128; + static constexpr int ClockTimeoutMs = 100; + static constexpr std::size_t ReadBufferSize = 1024; + static constexpr std::size_t WriteBufferSize = 4096; + static constexpr std::size_t HeaderPartSize = 1024; + static constexpr int MaxTasksQueueSize = 128; void runWorker(); void runListener(); - const int _port; - const std::string _host; - const int _backlog; - std::atomic_bool _isRunning; - ThreadPool _threadPool; - std::thread _listenerThread; - int _serverSocket; + const int _port; + const std::string _host; + const int _backlog; + std::atomic_bool _isRunning; + ThreadPool _threadPool; + std::thread _listenerThread; + int _serverSocket; std::queue<AbstractTask*> _tasksQueue; - std::mutex _tasksQueueMutex; - std::condition_variable _tasksQueueCond; + std::mutex _tasksQueueMutex; + std::condition_variable _tasksQueueCond; }; //------------------------------------------------------------------------------ -#endif//ABSTRACT_TCP_SERVICE_H +#endif //ABSTRACT_TCP_SERVICE_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/json/ip_endpoint.cpp b/analyzers/src/json/ip_endpoint.cpp index 777d16b..85f5d81 100644 --- a/analyzers/src/json/ip_endpoint.cpp +++ b/analyzers/src/json/ip_endpoint.cpp @@ -27,30 +27,30 @@ #include "ip_endpoint.h" //------------------------------------------------------------------------------ -IpEndpoint::IpEndpoint(const std::string& host, int port, bool hostAsAddress) : - _addrinfo{} +IpEndpoint::IpEndpoint(const std::string& host, int port, bool hostAsAddress) + : _addrinfo{} { struct addrinfo hints; memset(&hints, 0, sizeof hints); - hints.ai_family = AF_INET; + hints.ai_family = AF_INET; hints.ai_socktype = SOCK_STREAM; hints.ai_flags |= AI_NUMERICSERV; std::string serviceStr{std::to_string(port)}; - if (host == WildcardAddress) + if(host == WildcardAddress) { hints.ai_flags |= AI_PASSIVE; } - if ((host != WildcardAddress) && (host != LoopbackAddress)) + if((host != WildcardAddress) && (host != LoopbackAddress)) { hints.ai_flags |= AI_CANONNAME; - if (hostAsAddress) + if(hostAsAddress) { hints.ai_flags |= AI_NUMERICHOST; } } int status = getaddrinfo((host == LoopbackAddress) || (host == WildcardAddress) ? nullptr : host.c_str(), serviceStr.c_str(), &hints, &_addrinfo); - if (status != 0) + if(status != 0) { throw std::runtime_error{gai_strerror(status)}; } diff --git a/analyzers/src/json/ip_endpoint.h b/analyzers/src/json/ip_endpoint.h index a45c5f2..a64f114 100644 --- a/analyzers/src/json/ip_endpoint.h +++ b/analyzers/src/json/ip_endpoint.h @@ -51,9 +51,10 @@ public: { return _addrinfo; } + private: struct addrinfo* _addrinfo; }; //------------------------------------------------------------------------------ -#endif//IP_ENDPOINT_H +#endif //IP_ENDPOINT_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/json/json_analyzer.cpp b/analyzers/src/json/json_analyzer.cpp index de6a1ab..657a783 100644 --- a/analyzers/src/json/json_analyzer.cpp +++ b/analyzers/src/json/json_analyzer.cpp @@ -22,11 +22,11 @@ #include "json_analyzer.h" //------------------------------------------------------------------------------ -JsonAnalyzer::JsonAnalyzer(std::size_t workersAmount, int port, const std::string& host, std::size_t maxServingDurationMs, int backlog) : - _jsonTcpService{*this, workersAmount, port, host, maxServingDurationMs, backlog}, - _nfsV3Stat{}, - _nfsV40Stat{}, - _nfsV41Stat{} +JsonAnalyzer::JsonAnalyzer(std::size_t workersAmount, int port, const std::string& host, std::size_t maxServingDurationMs, int backlog) + : _jsonTcpService{*this, workersAmount, port, host, maxServingDurationMs, backlog} + , _nfsV3Stat{} + , _nfsV40Stat{} + , _nfsV41Stat{} { _jsonTcpService.start(); } @@ -37,7 +37,7 @@ JsonAnalyzer::~JsonAnalyzer() } // NFS3 -// Procedures: +// Procedures: void JsonAnalyzer::null(const RPCProcedure* /*proc*/, const struct NFS3::NULL3args* /*args*/, @@ -194,7 +194,7 @@ void JsonAnalyzer::commit3(const RPCProcedure* /*proc*/, } // NFS4.0 -// Procedures: +// Procedures: void JsonAnalyzer::null4(const RPCProcedure* /*proc*/, const struct NFS4::NULL4args* /*args*/, @@ -477,8 +477,8 @@ void JsonAnalyzer::illegal40(const RPCProcedure* /* proc */, } // NFS4.1 -// Procedures: - +// Procedures: + void JsonAnalyzer::compound41(const RPCProcedure* /*proc*/, const struct NFS41::COMPOUND4args* /*args*/, const struct NFS41::COMPOUND4res* /*res*/) @@ -748,7 +748,7 @@ void JsonAnalyzer::backchannel_ctl41(const RPCProcedure* /* proc */, } void JsonAnalyzer::bind_conn_to_session41(const RPCProcedure* /* proc */, - const struct NFS41::BIND_CONN_TO_SESSION4args* /* args */, + const struct NFS41::BIND_CONN_TO_SESSION4args* /* args */, const struct NFS41::BIND_CONN_TO_SESSION4res* res) { if(res) _nfsV41Stat.bind_conn_to_sessionOpsAmount++; diff --git a/analyzers/src/json/json_analyzer.h b/analyzers/src/json/json_analyzer.h index ca7eed3..ea161c0 100644 --- a/analyzers/src/json/json_analyzer.h +++ b/analyzers/src/json/json_analyzer.h @@ -35,140 +35,140 @@ public: struct NfsV3Stat { // Procedures: - std::atomic_int nullProcsAmount = {0}; - std::atomic_int getattrProcsAmount = {0}; - std::atomic_int setattrProcsAmount = {0}; - std::atomic_int lookupProcsAmount = {0}; - std::atomic_int accessProcsAmount = {0}; - std::atomic_int readlinkProcsAmount = {0}; - std::atomic_int readProcsAmount = {0}; - std::atomic_int writeProcsAmount = {0}; - std::atomic_int createProcsAmount = {0}; - std::atomic_int mkdirProcsAmount = {0}; - std::atomic_int symlinkProcsAmount = {0}; - std::atomic_int mknodProcsAmount = {0}; - std::atomic_int removeProcsAmount = {0}; - std::atomic_int rmdirProcsAmount = {0}; - std::atomic_int renameProcsAmount = {0}; - std::atomic_int linkProcsAmount = {0}; - std::atomic_int readdirProcsAmount = {0}; + std::atomic_int nullProcsAmount = {0}; + std::atomic_int getattrProcsAmount = {0}; + std::atomic_int setattrProcsAmount = {0}; + std::atomic_int lookupProcsAmount = {0}; + std::atomic_int accessProcsAmount = {0}; + std::atomic_int readlinkProcsAmount = {0}; + std::atomic_int readProcsAmount = {0}; + std::atomic_int writeProcsAmount = {0}; + std::atomic_int createProcsAmount = {0}; + std::atomic_int mkdirProcsAmount = {0}; + std::atomic_int symlinkProcsAmount = {0}; + std::atomic_int mknodProcsAmount = {0}; + std::atomic_int removeProcsAmount = {0}; + std::atomic_int rmdirProcsAmount = {0}; + std::atomic_int renameProcsAmount = {0}; + std::atomic_int linkProcsAmount = {0}; + std::atomic_int readdirProcsAmount = {0}; std::atomic_int readdirplusProcsAmount = {0}; - std::atomic_int fsstatProcsAmount = {0}; - std::atomic_int fsinfoProcsAmount = {0}; - std::atomic_int pathconfProcsAmount = {0}; - std::atomic_int commitProcsAmount = {0}; + std::atomic_int fsstatProcsAmount = {0}; + std::atomic_int fsinfoProcsAmount = {0}; + std::atomic_int pathconfProcsAmount = {0}; + std::atomic_int commitProcsAmount = {0}; }; struct NfsV40Stat { // Procedures: - std::atomic_int nullProcsAmount = {0}; + std::atomic_int nullProcsAmount = {0}; std::atomic_int compoundProcsAmount = {0}; // Operations: - std::atomic_int accessOpsAmount = {0}; - std::atomic_int closeOpsAmount = {0}; - std::atomic_int commitOpsAmount = {0}; - std::atomic_int createOpsAmount = {0}; - std::atomic_int delegpurgeOpsAmount = {0}; - std::atomic_int delegreturnOpsAmount = {0}; - std::atomic_int getattrOpsAmount = {0}; - std::atomic_int getfhOpsAmount = {0}; - std::atomic_int linkOpsAmount = {0}; - std::atomic_int lockOpsAmount = {0}; - std::atomic_int locktOpsAmount = {0}; - std::atomic_int lockuOpsAmount = {0}; - std::atomic_int lookupOpsAmount = {0}; - std::atomic_int lookuppOpsAmount = {0}; - std::atomic_int nverifyOpsAmount = {0}; - std::atomic_int openOpsAmount = {0}; - std::atomic_int openattrOpsAmount = {0}; - std::atomic_int open_confirmOpsAmount = {0}; - std::atomic_int open_downgradeOpsAmount = {0}; - std::atomic_int putfhOpsAmount = {0}; - std::atomic_int putpubfhOpsAmount = {0}; - std::atomic_int putrootfhOpsAmount = {0}; - std::atomic_int readOpsAmount = {0}; - std::atomic_int readdirOpsAmount = {0}; - std::atomic_int readlinkOpsAmount = {0}; - std::atomic_int removeOpsAmount = {0}; - std::atomic_int renameOpsAmount = {0}; - std::atomic_int renewOpsAmount = {0}; - std::atomic_int restorefhOpsAmount = {0}; - std::atomic_int savefhOpsAmount = {0}; - std::atomic_int secinfoOpsAmount = {0}; - std::atomic_int setattrOpsAmount = {0}; - std::atomic_int setclientidOpsAmount = {0}; + std::atomic_int accessOpsAmount = {0}; + std::atomic_int closeOpsAmount = {0}; + std::atomic_int commitOpsAmount = {0}; + std::atomic_int createOpsAmount = {0}; + std::atomic_int delegpurgeOpsAmount = {0}; + std::atomic_int delegreturnOpsAmount = {0}; + std::atomic_int getattrOpsAmount = {0}; + std::atomic_int getfhOpsAmount = {0}; + std::atomic_int linkOpsAmount = {0}; + std::atomic_int lockOpsAmount = {0}; + std::atomic_int locktOpsAmount = {0}; + std::atomic_int lockuOpsAmount = {0}; + std::atomic_int lookupOpsAmount = {0}; + std::atomic_int lookuppOpsAmount = {0}; + std::atomic_int nverifyOpsAmount = {0}; + std::atomic_int openOpsAmount = {0}; + std::atomic_int openattrOpsAmount = {0}; + std::atomic_int open_confirmOpsAmount = {0}; + std::atomic_int open_downgradeOpsAmount = {0}; + std::atomic_int putfhOpsAmount = {0}; + std::atomic_int putpubfhOpsAmount = {0}; + std::atomic_int putrootfhOpsAmount = {0}; + std::atomic_int readOpsAmount = {0}; + std::atomic_int readdirOpsAmount = {0}; + std::atomic_int readlinkOpsAmount = {0}; + std::atomic_int removeOpsAmount = {0}; + std::atomic_int renameOpsAmount = {0}; + std::atomic_int renewOpsAmount = {0}; + std::atomic_int restorefhOpsAmount = {0}; + std::atomic_int savefhOpsAmount = {0}; + std::atomic_int secinfoOpsAmount = {0}; + std::atomic_int setattrOpsAmount = {0}; + std::atomic_int setclientidOpsAmount = {0}; std::atomic_int setclientid_confirmOpsAmount = {0}; - std::atomic_int verifyOpsAmount = {0}; - std::atomic_int writeOpsAmount = {0}; - std::atomic_int release_lockownerOpsAmount = {0}; - std::atomic_int get_dir_delegationOpsAmount = {0}; - std::atomic_int illegalOpsAmount = {0}; + std::atomic_int verifyOpsAmount = {0}; + std::atomic_int writeOpsAmount = {0}; + std::atomic_int release_lockownerOpsAmount = {0}; + std::atomic_int get_dir_delegationOpsAmount = {0}; + std::atomic_int illegalOpsAmount = {0}; }; struct NfsV41Stat { // Procedures: - std::atomic_int nullProcsAmount = {0}; + std::atomic_int nullProcsAmount = {0}; std::atomic_int compoundProcsAmount = {0}; // Operations: - std::atomic_int accessOpsAmount = {0}; - std::atomic_int closeOpsAmount = {0}; - std::atomic_int commitOpsAmount = {0}; - std::atomic_int createOpsAmount = {0}; - std::atomic_int delegpurgeOpsAmount = {0}; - std::atomic_int delegreturnOpsAmount = {0}; - std::atomic_int getattrOpsAmount = {0}; - std::atomic_int getfhOpsAmount = {0}; - std::atomic_int linkOpsAmount = {0}; - std::atomic_int lockOpsAmount = {0}; - std::atomic_int locktOpsAmount = {0}; - std::atomic_int lockuOpsAmount = {0}; - std::atomic_int lookupOpsAmount = {0}; - std::atomic_int lookuppOpsAmount = {0}; - std::atomic_int nverifyOpsAmount = {0}; - std::atomic_int openOpsAmount = {0}; - std::atomic_int openattrOpsAmount = {0}; - std::atomic_int open_confirmOpsAmount = {0}; - std::atomic_int open_downgradeOpsAmount = {0}; - std::atomic_int putfhOpsAmount = {0}; - std::atomic_int putpubfhOpsAmount = {0}; - std::atomic_int putrootfhOpsAmount = {0}; - std::atomic_int readOpsAmount = {0}; - std::atomic_int readdirOpsAmount = {0}; - std::atomic_int readlinkOpsAmount = {0}; - std::atomic_int removeOpsAmount = {0}; - std::atomic_int renameOpsAmount = {0}; - std::atomic_int renewOpsAmount = {0}; - std::atomic_int restorefhOpsAmount = {0}; - std::atomic_int savefhOpsAmount = {0}; - std::atomic_int secinfoOpsAmount = {0}; - std::atomic_int setattrOpsAmount = {0}; - std::atomic_int setclientidOpsAmount = {0}; - std::atomic_int setclientid_confirmOpsAmount = {0}; - std::atomic_int verifyOpsAmount = {0}; - std::atomic_int writeOpsAmount = {0}; - std::atomic_int release_lockownerOpsAmount = {0}; - std::atomic_int backchannel_ctlOpsAmount = {0}; + std::atomic_int accessOpsAmount = {0}; + std::atomic_int closeOpsAmount = {0}; + std::atomic_int commitOpsAmount = {0}; + std::atomic_int createOpsAmount = {0}; + std::atomic_int delegpurgeOpsAmount = {0}; + std::atomic_int delegreturnOpsAmount = {0}; + std::atomic_int getattrOpsAmount = {0}; + std::atomic_int getfhOpsAmount = {0}; + std::atomic_int linkOpsAmount = {0}; + std::atomic_int lockOpsAmount = {0}; + std::atomic_int locktOpsAmount = {0}; + std::atomic_int lockuOpsAmount = {0}; + std::atomic_int lookupOpsAmount = {0}; + std::atomic_int lookuppOpsAmount = {0}; + std::atomic_int nverifyOpsAmount = {0}; + std::atomic_int openOpsAmount = {0}; + std::atomic_int openattrOpsAmount = {0}; + std::atomic_int open_confirmOpsAmount = {0}; + std::atomic_int open_downgradeOpsAmount = {0}; + std::atomic_int putfhOpsAmount = {0}; + std::atomic_int putpubfhOpsAmount = {0}; + std::atomic_int putrootfhOpsAmount = {0}; + std::atomic_int readOpsAmount = {0}; + std::atomic_int readdirOpsAmount = {0}; + std::atomic_int readlinkOpsAmount = {0}; + std::atomic_int removeOpsAmount = {0}; + std::atomic_int renameOpsAmount = {0}; + std::atomic_int renewOpsAmount = {0}; + std::atomic_int restorefhOpsAmount = {0}; + std::atomic_int savefhOpsAmount = {0}; + std::atomic_int secinfoOpsAmount = {0}; + std::atomic_int setattrOpsAmount = {0}; + std::atomic_int setclientidOpsAmount = {0}; + std::atomic_int setclientid_confirmOpsAmount = {0}; + std::atomic_int verifyOpsAmount = {0}; + std::atomic_int writeOpsAmount = {0}; + std::atomic_int release_lockownerOpsAmount = {0}; + std::atomic_int backchannel_ctlOpsAmount = {0}; std::atomic_int bind_conn_to_sessionOpsAmount = {0}; - std::atomic_int exchange_idOpsAmount = {0}; - std::atomic_int create_sessionOpsAmount = {0}; - std::atomic_int destroy_sessionOpsAmount = {0}; - std::atomic_int free_stateidOpsAmount = {0}; - std::atomic_int get_dir_delegationOpsAmount = {0}; - std::atomic_int getdeviceinfoOpsAmount = {0}; - std::atomic_int getdevicelistOpsAmount = {0}; - std::atomic_int layoutcommitOpsAmount = {0}; - std::atomic_int layoutgetOpsAmount = {0}; - std::atomic_int layoutreturnOpsAmount = {0}; - std::atomic_int secinfo_no_nameOpsAmount = {0}; - std::atomic_int sequenceOpsAmount = {0}; - std::atomic_int set_ssvOpsAmount = {0}; - std::atomic_int test_stateidOpsAmount = {0}; - std::atomic_int want_delegationOpsAmount = {0}; - std::atomic_int destroy_clientidOpsAmount = {0}; - std::atomic_int reclaim_completeOpsAmount = {0}; - std::atomic_int illegalOpsAmount = {0}; + std::atomic_int exchange_idOpsAmount = {0}; + std::atomic_int create_sessionOpsAmount = {0}; + std::atomic_int destroy_sessionOpsAmount = {0}; + std::atomic_int free_stateidOpsAmount = {0}; + std::atomic_int get_dir_delegationOpsAmount = {0}; + std::atomic_int getdeviceinfoOpsAmount = {0}; + std::atomic_int getdevicelistOpsAmount = {0}; + std::atomic_int layoutcommitOpsAmount = {0}; + std::atomic_int layoutgetOpsAmount = {0}; + std::atomic_int layoutreturnOpsAmount = {0}; + std::atomic_int secinfo_no_nameOpsAmount = {0}; + std::atomic_int sequenceOpsAmount = {0}; + std::atomic_int set_ssvOpsAmount = {0}; + std::atomic_int test_stateidOpsAmount = {0}; + std::atomic_int want_delegationOpsAmount = {0}; + std::atomic_int destroy_clientidOpsAmount = {0}; + std::atomic_int reclaim_completeOpsAmount = {0}; + std::atomic_int illegalOpsAmount = {0}; }; JsonAnalyzer(std::size_t workersAmount, int port, const std::string& host, std::size_t maxServingDurationMs, int backlog); @@ -265,7 +265,7 @@ public: const struct NFS3::COMMIT3res* /*res*/) override final; // NFS4.0 procedures - + void null4(const RPCProcedure* /*proc*/, const struct NFS4::NULL4args* /*args*/, const struct NFS4::NULL4res* /*res*/) override final; @@ -280,8 +280,8 @@ public: const struct NFS4::ACCESS4args* /* args */, const struct NFS4::ACCESS4res* res) override final; void close40(const RPCProcedure* /* proc */, - const struct NFS4::CLOSE4args* /* args */, - const struct NFS4::CLOSE4res* res) override final; + const struct NFS4::CLOSE4args* /* args */, + const struct NFS4::CLOSE4res* res) override final; void commit40(const RPCProcedure* /* proc */, const struct NFS4::COMMIT4args* /* args */, const struct NFS4::COMMIT4res* res) override final; @@ -387,7 +387,7 @@ public: const struct NFS4::ILLEGAL4res* res) override final; // NFSv4.1 procedures - + void compound41(const RPCProcedure* /*proc*/, const struct NFS41::COMPOUND4args* /*args*/, const struct NFS41::COMPOUND4res* /*res*/) override final; @@ -398,8 +398,8 @@ public: const struct NFS41::ACCESS4args* /* args */, const struct NFS41::ACCESS4res* res) override final; void close41(const RPCProcedure* /* proc */, - const struct NFS41::CLOSE4args* /* args */, - const struct NFS41::CLOSE4res* res) override final; + const struct NFS41::CLOSE4args* /* args */, + const struct NFS41::CLOSE4res* res) override final; void commit41(const RPCProcedure* /* proc */, const struct NFS41::COMMIT4args* /* args */, const struct NFS41::COMMIT4res* res) override final; @@ -502,7 +502,7 @@ public: const struct NFS41::BACKCHANNEL_CTL4args* /* args */, const struct NFS41::BACKCHANNEL_CTL4res* res) override final; void bind_conn_to_session41(const RPCProcedure* /* proc */, - const struct NFS41::BIND_CONN_TO_SESSION4args* /* args */, + const struct NFS41::BIND_CONN_TO_SESSION4args* /* args */, const struct NFS41::BIND_CONN_TO_SESSION4res* res) override final; void exchange_id41(const RPCProcedure* /* proc */, const struct NFS41::EXCHANGE_ID4args* /* args */, @@ -535,8 +535,8 @@ public: const struct NFS41::LAYOUTRETURN4args* /* args */, const struct NFS41::LAYOUTRETURN4res* res) override final; void secinfo_no_name41(const RPCProcedure* /* proc */, - const NFS41::SECINFO_NO_NAME4args* /* args */, - const NFS41::SECINFO_NO_NAME4res* res) override final; + const NFS41::SECINFO_NO_NAME4args* /* args */, + const NFS41::SECINFO_NO_NAME4res* res) override final; void sequence41(const RPCProcedure* /* proc */, const struct NFS41::SEQUENCE4args* /* args */, const struct NFS41::SEQUENCE4res* res) override final; @@ -577,10 +577,10 @@ public: private: JsonTcpService _jsonTcpService; - NfsV3Stat _nfsV3Stat; - NfsV40Stat _nfsV40Stat; - NfsV41Stat _nfsV41Stat; + NfsV3Stat _nfsV3Stat; + NfsV40Stat _nfsV40Stat; + NfsV41Stat _nfsV41Stat; }; //------------------------------------------------------------------------------ -#endif//JSON_ANALYZER_H +#endif //JSON_ANALYZER_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/json/json_plugin.cpp b/analyzers/src/json/json_plugin.cpp index 8eace3c..b7394c0 100644 --- a/analyzers/src/json/json_plugin.cpp +++ b/analyzers/src/json/json_plugin.cpp @@ -23,100 +23,98 @@ #include "json_analyzer.h" //------------------------------------------------------------------------------ -static constexpr int DefaultPort = 8888; -static constexpr const char * DefaultHost = IpEndpoint::WildcardAddress; -static constexpr std::size_t DefaultWorkersAmount = 10U; -static constexpr int DefaultBacklog = 15; +static constexpr int DefaultPort = 8888; +static constexpr const char* DefaultHost = IpEndpoint::WildcardAddress; +static constexpr std::size_t DefaultWorkersAmount = 10U; +static constexpr int DefaultBacklog = 15; static constexpr std::size_t DefaultMaxServingDurationMs = 500U; -extern "C" -{ +extern "C" { - const char* usage() - { - return "host - Network interface to listen (default is to listen all interfaces)\n" - "port - IP-port to bind to (default is 8888)\n" - "workers - Amount of worker threads (default is 10)\n" - "duration - Max serving duration in milliseconds (default is 500 ms)\n" - "backlog - Listen backlog (default is 15)"; - } +const char* usage() +{ + return "host - Network interface to listen (default is to listen all interfaces)\n" + "port - IP-port to bind to (default is 8888)\n" + "workers - Amount of worker threads (default is 10)\n" + "duration - Max serving duration in milliseconds (default is 500 ms)\n" + "backlog - Listen backlog (default is 15)"; +} - IAnalyzer* create(const char* opts) +IAnalyzer* create(const char* opts) +{ + // Initializing plugin options with default values + int backlog = DefaultBacklog; + std::size_t maxServingDurationMs = DefaultMaxServingDurationMs; + std::string host{DefaultHost}; + int port = DefaultPort; + std::size_t workersAmount = DefaultWorkersAmount; + // Parising plugin options + enum { - // Initializing plugin options with default values - int backlog = DefaultBacklog; - std::size_t maxServingDurationMs = DefaultMaxServingDurationMs; - std::string host{DefaultHost}; - int port = DefaultPort; - std::size_t workersAmount = DefaultWorkersAmount; - // Parising plugin options - enum - { - BACKLOG_SUBOPT_INDEX = 0, - DURATION_SUBOPT_INDEX, - HOST_SUBOPT_INDEX, - PORT_SUBOPT_INDEX, - WORKERS_SUBOPT_INDEX - }; - char backlogSubOptName[] = "backlog"; - char durationSubOptName[] = "duration"; - char hostSubOptName[] = "host"; - char portSubOptName[] = "port"; - char workersSubOptName[] = "workers"; - char* const tokens[] = + BACKLOG_SUBOPT_INDEX = 0, + DURATION_SUBOPT_INDEX, + HOST_SUBOPT_INDEX, + PORT_SUBOPT_INDEX, + WORKERS_SUBOPT_INDEX + }; + char backlogSubOptName[] = "backlog"; + char durationSubOptName[] = "duration"; + char hostSubOptName[] = "host"; + char portSubOptName[] = "port"; + char workersSubOptName[] = "workers"; + char* const tokens[] = { backlogSubOptName, durationSubOptName, hostSubOptName, portSubOptName, workersSubOptName, - NULL - }; - std::size_t optsLen = strlen(opts); - std::vector<char> optsBuf{opts, opts + optsLen + 2}; - char* optionp = &optsBuf[0]; - char* valuep; - int optIndex; - while ((optIndex = getsubopt(&optionp, tokens, &valuep)) >= 0) + NULL}; + std::size_t optsLen = strlen(opts); + std::vector<char> optsBuf{opts, opts + optsLen + 2}; + char* optionp = &optsBuf[0]; + char* valuep; + int optIndex; + while((optIndex = getsubopt(&optionp, tokens, &valuep)) >= 0) + { + try { - try + switch(optIndex) { - switch (optIndex) - { - case BACKLOG_SUBOPT_INDEX: - backlog = std::stoi(valuep); - break; - case DURATION_SUBOPT_INDEX: - maxServingDurationMs = std::stoul(valuep); - break; - case HOST_SUBOPT_INDEX: - host = valuep; - break; - case PORT_SUBOPT_INDEX: - port = std::stoi(valuep); - break; - case WORKERS_SUBOPT_INDEX: - workersAmount = std::stoul(valuep); - break; - default: - throw std::runtime_error{std::string{"Invalid suboption index: "} + std::to_string(optIndex)}; - } - } - catch (std::logic_error& e) - { - throw std::runtime_error{std::string{"Invalid value provided for '"} + tokens[optIndex] + "' suboption"}; + case BACKLOG_SUBOPT_INDEX: + backlog = std::stoi(valuep); + break; + case DURATION_SUBOPT_INDEX: + maxServingDurationMs = std::stoul(valuep); + break; + case HOST_SUBOPT_INDEX: + host = valuep; + break; + case PORT_SUBOPT_INDEX: + port = std::stoi(valuep); + break; + case WORKERS_SUBOPT_INDEX: + workersAmount = std::stoul(valuep); + break; + default: + throw std::runtime_error{std::string{"Invalid suboption index: "} + std::to_string(optIndex)}; } } - // Creating and returning plugin - return new JsonAnalyzer{workersAmount, port, host, maxServingDurationMs, backlog}; + catch(std::logic_error& e) + { + throw std::runtime_error{std::string{"Invalid value provided for '"} + tokens[optIndex] + "' suboption"}; + } } + // Creating and returning plugin + return new JsonAnalyzer{workersAmount, port, host, maxServingDurationMs, backlog}; +} - void destroy(IAnalyzer* instance) - { - delete instance; - } +void destroy(IAnalyzer* instance) +{ + delete instance; +} - NST_PLUGIN_ENTRY_POINTS (&usage, &create, &destroy, nullptr) +NST_PLUGIN_ENTRY_POINTS(&usage, &create, &destroy, nullptr) } //extern "C" diff --git a/analyzers/src/json/json_tcp_service.cpp b/analyzers/src/json/json_tcp_service.cpp index 2e4cc30..b8852bf 100644 --- a/analyzers/src/json/json_tcp_service.cpp +++ b/analyzers/src/json/json_tcp_service.cpp @@ -29,11 +29,12 @@ //------------------------------------------------------------------------------ JsonTcpService::JsonTcpService(JsonAnalyzer& analyzer, std::size_t workersAmount, int port, const std::string& host, - std::size_t maxServingDurationMs, int backlog) : - AbstractTcpService{workersAmount, port, host, backlog}, - _analyzer(analyzer), - _maxServingDurationMs{maxServingDurationMs} -{} + std::size_t maxServingDurationMs, int backlog) + : AbstractTcpService{workersAmount, port, host, backlog} + , _analyzer(analyzer) + , _maxServingDurationMs{maxServingDurationMs} +{ +} AbstractTcpService::AbstractTask* JsonTcpService::createTask(int socket) { @@ -42,16 +43,17 @@ AbstractTcpService::AbstractTask* JsonTcpService::createTask(int socket) //------------------------------------------------------------------------------ -JsonTcpService::Task::Task(JsonTcpService& service, int socket) : - AbstractTask{socket}, - _service(service) -{} +JsonTcpService::Task::Task(JsonTcpService& service, int socket) + : AbstractTask{socket} + , _service(service) +{ +} void JsonTcpService::Task::execute() { std::chrono::system_clock::time_point servingStarted = std::chrono::system_clock::now(); // Composing JSON with statistics - struct json_object* root = json_object_new_object(); + struct json_object* root = json_object_new_object(); struct json_object* nfsV3Stat = json_object_new_object(); // NFS3 procedures: json_object_object_add(nfsV3Stat, "null", json_object_new_int64(_service._analyzer.getNfsV3Stat().nullProcsAmount.load())); @@ -190,15 +192,15 @@ void JsonTcpService::Task::execute() // Sending JSON to the client std::size_t totalBytesSent = 0U; - while (totalBytesSent < json.length()) + while(totalBytesSent < json.length()) { - if (!_service.isRunning()) + if(!_service.isRunning()) { LOG("WARNING: Service shutdown detected - terminating task execution"); return; } - if (std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now() - servingStarted).count() > - static_cast<std::chrono::milliseconds::rep>(_service._maxServingDurationMs)) + if(std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now() - servingStarted).count() > + static_cast<std::chrono::milliseconds::rep>(_service._maxServingDurationMs)) { // TODO: Use general logging LOG("WARNING: A client is too slow - terminating task execution"); @@ -210,23 +212,23 @@ void JsonTcpService::Task::execute() FD_ZERO(&writeDescriptorsSet); FD_SET(socket(), &writeDescriptorsSet); int descriptorsCount = pselect(socket() + 1, NULL, &writeDescriptorsSet, NULL, &writeDuration, NULL); - if (descriptorsCount < 0) + if(descriptorsCount < 0) { throw std::system_error{errno, std::system_category(), "Error awaiting for sending data availability on socket"}; } - else if (descriptorsCount == 0) + else if(descriptorsCount == 0) { // Timeout expired continue; } ssize_t bytesSent = send(socket(), json.data() + totalBytesSent, json.length() - totalBytesSent, MSG_NOSIGNAL); - if (bytesSent < 0) + if(bytesSent < 0) { std::system_error e{errno, std::system_category(), "Sending data to client error"}; LOG("WARNING: %s", e.what()); return; } - else if (bytesSent == 0) + else if(bytesSent == 0) { LOG("WARNING: Connection has been aborted by client while sending data"); return; diff --git a/analyzers/src/json/json_tcp_service.h b/analyzers/src/json/json_tcp_service.h index 1403a6f..d631d9b 100644 --- a/analyzers/src/json/json_tcp_service.h +++ b/analyzers/src/json/json_tcp_service.h @@ -30,6 +30,7 @@ public: JsonTcpService() = delete; JsonTcpService(class JsonAnalyzer& analyzer, std::size_t workersAmount, int port, const std::string& host, std::size_t maxServingDurationMs, int backlog); + private: class Task : public AbstractTask { @@ -38,6 +39,7 @@ private: Task() = delete; void execute() override final; + private: JsonTcpService& _service; }; @@ -45,8 +47,8 @@ private: AbstractTask* createTask(int socket) override final; JsonAnalyzer& _analyzer; - std::size_t _maxServingDurationMs; + std::size_t _maxServingDurationMs; }; //------------------------------------------------------------------------------ -#endif//JSON_TCP_SERVICE_H +#endif //JSON_TCP_SERVICE_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/test/test_analyzer.cpp b/analyzers/src/test/test_analyzer.cpp index 7d7bb06..e6cea6e 100644 --- a/analyzers/src/test/test_analyzer.cpp +++ b/analyzers/src/test/test_analyzer.cpp @@ -27,7 +27,8 @@ class TestAnalyzer : public IAnalyzer { public: - TestAnalyzer(const char* opts):options(opts) + TestAnalyzer(const char* opts) + : options(opts) { std::cout << "TestAnalyzer::TestAnalyzer(" << options << ')' << std::endl; } @@ -40,155 +41,155 @@ public: // NFSv3 procedures void null(const RPCProcedure* /*proc*/, - const struct NFS3::NULL3args* /*args*/, - const struct NFS3::NULL3res* /*res*/) override final + const struct NFS3::NULL3args* /*args*/, + const struct NFS3::NULL3res* /*res*/) override final { std::cout << "TestAnalyzer::null()" << std::endl; } void getattr3(const RPCProcedure* /*proc*/, - const struct NFS3::GETATTR3args* /*args*/, - const struct NFS3::GETATTR3res* /*res*/) override final + const struct NFS3::GETATTR3args* /*args*/, + const struct NFS3::GETATTR3res* /*res*/) override final { std::cout << "TestAnalyzer::getattr3()" << std::endl; } void setattr3(const RPCProcedure* /*proc*/, - const struct NFS3::SETATTR3args* /*args*/, - const struct NFS3::SETATTR3res* /*res*/) override final + const struct NFS3::SETATTR3args* /*args*/, + const struct NFS3::SETATTR3res* /*res*/) override final { std::cout << "TestAnalyzer::setattr3()" << std::endl; } void lookup3(const RPCProcedure* /*proc*/, - const struct NFS3::LOOKUP3args* /*args*/, - const struct NFS3::LOOKUP3res* /*res*/) override final + const struct NFS3::LOOKUP3args* /*args*/, + const struct NFS3::LOOKUP3res* /*res*/) override final { std::cout << "TestAnalyzer::lookup3()" << std::endl; } void access3(const RPCProcedure* /*proc*/, - const struct NFS3::ACCESS3args* /*args*/, - const struct NFS3::ACCESS3res* /*res*/) override final + const struct NFS3::ACCESS3args* /*args*/, + const struct NFS3::ACCESS3res* /*res*/) override final { std::cout << "TestAnalyzer::access3()" << std::endl; } void readlink3(const RPCProcedure* /*proc*/, - const struct NFS3::READLINK3args* /*args*/, - const struct NFS3::READLINK3res* /*res*/) override final + const struct NFS3::READLINK3args* /*args*/, + const struct NFS3::READLINK3res* /*res*/) override final { std::cout << "TestAnalyzer::readlink3()" << std::endl; } void read3(const RPCProcedure* /*proc*/, - const struct NFS3::READ3args* /*args*/, - const struct NFS3::READ3res* /*res*/) override final + const struct NFS3::READ3args* /*args*/, + const struct NFS3::READ3res* /*res*/) override final { std::cout << "TestAnalyzer::read3()" << std::endl; } void write3(const RPCProcedure* /*proc*/, - const struct NFS3::WRITE3args* /*args*/, - const struct NFS3::WRITE3res* /*res*/) override final + const struct NFS3::WRITE3args* /*args*/, + const struct NFS3::WRITE3res* /*res*/) override final { std::cout << "TestAnalyzer::write3()" << std::endl; } void create3(const RPCProcedure* /*proc*/, - const struct NFS3::CREATE3args* /*args*/, - const struct NFS3::CREATE3res* /*res*/) override final + const struct NFS3::CREATE3args* /*args*/, + const struct NFS3::CREATE3res* /*res*/) override final { std::cout << "TestAnalyzer::create3()" << std::endl; } void mkdir3(const RPCProcedure* /*proc*/, - const struct NFS3::MKDIR3args* /*args*/, - const struct NFS3::MKDIR3res* /*res*/) override final + const struct NFS3::MKDIR3args* /*args*/, + const struct NFS3::MKDIR3res* /*res*/) override final { std::cout << "TestAnalyzer::mkdir3()" << std::endl; } void symlink3(const RPCProcedure* /*proc*/, - const struct NFS3::SYMLINK3args* /*args*/, - const struct NFS3::SYMLINK3res* /*res*/) override final + const struct NFS3::SYMLINK3args* /*args*/, + const struct NFS3::SYMLINK3res* /*res*/) override final { std::cout << "TestAnalyzer::symlink3()" << std::endl; } void mknod3(const RPCProcedure* /*proc*/, - const struct NFS3::MKNOD3args* /*args*/, - const struct NFS3::MKNOD3res* /*res*/) override final + const struct NFS3::MKNOD3args* /*args*/, + const struct NFS3::MKNOD3res* /*res*/) override final { std::cout << "TestAnalyzer::mknod3()" << std::endl; } void remove3(const RPCProcedure* /*proc*/, - const struct NFS3::REMOVE3args* /*args*/, - const struct NFS3::REMOVE3res* /*res*/) override final + const struct NFS3::REMOVE3args* /*args*/, + const struct NFS3::REMOVE3res* /*res*/) override final { std::cout << "TestAnalyzer::remove3()" << std::endl; } void rmdir3(const RPCProcedure* /*proc*/, - const struct NFS3::RMDIR3args* /*args*/, - const struct NFS3::RMDIR3res* /*res*/) override final + const struct NFS3::RMDIR3args* /*args*/, + const struct NFS3::RMDIR3res* /*res*/) override final { std::cout << "TestAnalyzer::rmdir3()" << std::endl; } void rename3(const RPCProcedure* /*proc*/, - const struct NFS3::RENAME3args* /*args*/, - const struct NFS3::RENAME3res* /*res*/) override final + const struct NFS3::RENAME3args* /*args*/, + const struct NFS3::RENAME3res* /*res*/) override final { std::cout << "TestAnalyzer::rename3()" << std::endl; } void link3(const RPCProcedure* /*proc*/, - const struct NFS3::LINK3args* /*args*/, - const struct NFS3::LINK3res* /*res*/) override final + const struct NFS3::LINK3args* /*args*/, + const struct NFS3::LINK3res* /*res*/) override final { std::cout << "TestAnalyzer::link3()" << std::endl; } void readdir3(const RPCProcedure* /*proc*/, - const struct NFS3::READDIR3args* /*args*/, - const struct NFS3::READDIR3res* /*res*/) override final + const struct NFS3::READDIR3args* /*args*/, + const struct NFS3::READDIR3res* /*res*/) override final { std::cout << "TestAnalyzer::readdir3()" << std::endl; } void readdirplus3(const RPCProcedure* /*proc*/, - const struct NFS3::READDIRPLUS3args* /*args*/, - const struct NFS3::READDIRPLUS3res* /*res*/) override final + const struct NFS3::READDIRPLUS3args* /*args*/, + const struct NFS3::READDIRPLUS3res* /*res*/) override final { std::cout << "TestAnalyzer::readdirplus3()" << std::endl; } void fsstat3(const RPCProcedure* /*proc*/, - const struct NFS3::FSSTAT3args* /*args*/, - const struct NFS3::FSSTAT3res* /*res*/) override final + const struct NFS3::FSSTAT3args* /*args*/, + const struct NFS3::FSSTAT3res* /*res*/) override final { std::cout << "TestAnalyzer::fsstat3()" << std::endl; } void fsinfo3(const RPCProcedure* /*proc*/, - const struct NFS3::FSINFO3args* /*args*/, - const struct NFS3::FSINFO3res* /*res*/) override final + const struct NFS3::FSINFO3args* /*args*/, + const struct NFS3::FSINFO3res* /*res*/) override final { std::cout << "TestAnalyzer::fsinfo3()" << std::endl; } void pathconf3(const RPCProcedure* /*proc*/, - const struct NFS3::PATHCONF3args* /*args*/, - const struct NFS3::PATHCONF3res* /*res*/) override final + const struct NFS3::PATHCONF3args* /*args*/, + const struct NFS3::PATHCONF3res* /*res*/) override final { std::cout << "TestAnalyzer::pathconf3()" << std::endl; } void commit3(const RPCProcedure* /*proc*/, - const struct NFS3::COMMIT3args* /*args*/, - const struct NFS3::COMMIT3res* /*res*/) override final + const struct NFS3::COMMIT3args* /*args*/, + const struct NFS3::COMMIT3res* /*res*/) override final { std::cout << "TestAnalyzer::commit3()" << std::endl; } @@ -202,8 +203,8 @@ public: std::cout << "TestAnalyzer::null4()" << std::endl; } void compound4(const RPCProcedure* /*proc*/, - const struct NFS4::COMPOUND4args* /*args*/, - const struct NFS4::COMPOUND4res* /*res*/) override final + const struct NFS4::COMPOUND4args* /*args*/, + const struct NFS4::COMPOUND4res* /*res*/) override final { std::cout << "TestAnalyzer::compound4()" << std::endl; } @@ -217,8 +218,8 @@ public: std::cout << "TestAnalyzer" << std::endl; } void close40(const RPCProcedure* /* proc */, - const struct NFS4::CLOSE4args* /* args */, - const struct NFS4::CLOSE4res* /* res */) override final + const struct NFS4::CLOSE4args* /* args */, + const struct NFS4::CLOSE4res* /* res */) override final { std::cout << "TestAnalyzer" << std::endl; } @@ -440,8 +441,8 @@ public: // NFSv4.1 procedures void compound41(const RPCProcedure* /*proc*/, - const struct NFS41::COMPOUND4args* /*args*/, - const struct NFS41::COMPOUND4res* /*res*/) override final + const struct NFS41::COMPOUND4args* /*args*/, + const struct NFS41::COMPOUND4res* /*res*/) override final { std::cout << "TestAnalyzer::compound4()" << std::endl; } @@ -455,8 +456,8 @@ public: std::cout << "TestAnalyzer" << std::endl; } void close41(const RPCProcedure* /* proc */, - const struct NFS41::CLOSE4args* /* args */, - const struct NFS41::CLOSE4res* /* res */) override final + const struct NFS41::CLOSE4args* /* args */, + const struct NFS41::CLOSE4res* /* res */) override final { std::cout << "TestAnalyzer" << std::endl; } @@ -670,7 +671,7 @@ public: std::cout << "TestAnalyzer" << std::endl; } void bind_conn_to_session41(const RPCProcedure* /* proc */, - const struct NFS41::BIND_CONN_TO_SESSION4args* /* args */, + const struct NFS41::BIND_CONN_TO_SESSION4args* /* args */, const struct NFS41::BIND_CONN_TO_SESSION4res* /* res */) override final { std::cout << "TestAnalyzer" << std::endl; @@ -736,8 +737,8 @@ public: std::cout << "TestAnalyzer" << std::endl; } void secinfo_no_name41(const RPCProcedure* /* proc */, - const NFS41::SECINFO_NO_NAME4args* /* args */, - const NFS41::SECINFO_NO_NAME4res* /* res */) override final + const NFS41::SECINFO_NO_NAME4args* /* args */, + const NFS41::SECINFO_NO_NAME4res* /* res */) override final { std::cout << "TestAnalyzer" << std::endl; } @@ -783,16 +784,16 @@ public: std::cout << "TestAnalyzer" << std::endl; } - virtual void flush_statistics() + virtual void flush_statistics() override { std::cout << "TestAnalyzer::flush_statistics()" << std::endl; } + private: std::string options; }; -extern "C" -{ +extern "C" { const char* usage() { @@ -815,7 +816,7 @@ const AnalyzerRequirements* requirements() return &requirements; } -NST_PLUGIN_ENTRY_POINTS (&usage, &create, &destroy, nullptr) +NST_PLUGIN_ENTRY_POINTS(&usage, &create, &destroy, nullptr) -}//extern "C" +} //extern "C" //------------------------------------------------------------------------------ diff --git a/analyzers/src/watch/nc_windows/header_window.cpp b/analyzers/src/watch/nc_windows/header_window.cpp index 368d6cd..8e04818 100644 --- a/analyzers/src/watch/nc_windows/header_window.cpp +++ b/analyzers/src/watch/nc_windows/header_window.cpp @@ -30,16 +30,16 @@ //------------------------------------------------------------------------------ namespace HEADER { -const int MEMO_LINE = 1; -const int HOST_LINE = 2; -const int DATE_LINE = 3; +const int MEMO_LINE = 1; +const int HOST_LINE = 2; +const int DATE_LINE = 3; const int ELAPSED_LINE = 4; -const int HOST_SIZE = 128; +const int HOST_SIZE = 128; } void HeaderWindow::destroy() { - if (_window == nullptr) + if(_window == nullptr) { return; } @@ -50,9 +50,9 @@ void HeaderWindow::destroy() } HeaderWindow::HeaderWindow(MainWindow& w) -: _start_time {time(NULL)} + : _start_time{time(NULL)} { - if (w._window == nullptr) + if(w._window == nullptr) { throw std::runtime_error("Initialization of Header window failed."); } @@ -65,34 +65,34 @@ HeaderWindow::~HeaderWindow() void HeaderWindow::update() { - if (_window == nullptr) + if(_window == nullptr) { return; } time_t actual_time = time(nullptr); - tm* t = localtime(&actual_time); - time_t shift_time = actual_time - _start_time; + tm* t = localtime(&actual_time); + time_t shift_time = actual_time - _start_time; /* tm starts with 0 month and 1900 year*/ mvwprintw(_window, HEADER::DATE_LINE, FIRST_CHAR_POS, "Date: \t %d.%d.%d \t Time: %d:%d:%d ", t->tm_mday, t->tm_mon + 1, t->tm_year + 1900, t->tm_hour, t->tm_min, t->tm_sec); mvwprintw(_window, HEADER::ELAPSED_LINE, FIRST_CHAR_POS, "Elapsed time: \t %d days; %d:%d:%d times", shift_time / SECINDAY, shift_time % SECINDAY / SECINHOUR, shift_time % SECINHOUR / SECINMIN, shift_time % SECINMIN); - wrefresh (_window); + wrefresh(_window); } void HeaderWindow::resize(MainWindow& m) { - if (_window != nullptr) + if(_window != nullptr) { destroy(); } - if (m._window != nullptr) + if(m._window != nullptr) { _window = subwin(m._window, std::min(static_cast<int>(m._window->_maxy), GUI_HEADER_HEIGHT), std::min(static_cast<int>(m._window->_maxx), GUI_LENGTH), 0, 0); } - if (_window != nullptr) + if(_window != nullptr) { werase(_window); - wborder(_window, ACS_VLINE, ACS_VLINE, ACS_HLINE, ACS_HLINE, ACS_ULCORNER, ACS_URCORNER , ACS_LLCORNER, ACS_LRCORNER); + wborder(_window, ACS_VLINE, ACS_VLINE, ACS_HLINE, ACS_HLINE, ACS_ULCORNER, ACS_URCORNER, ACS_LLCORNER, ACS_LRCORNER); char HOST_NAME[HEADER::HOST_SIZE]; gethostname(HOST_NAME, HEADER::HOST_SIZE); mvwprintw(_window, HEADER::MEMO_LINE, FIRST_CHAR_POS, "%s", "Nfstrace watch plugin. To scroll press up or down keys. Ctrl + c to exit."); diff --git a/analyzers/src/watch/nc_windows/header_window.h b/analyzers/src/watch/nc_windows/header_window.h index 5ced588..5a72b62 100644 --- a/analyzers/src/watch/nc_windows/header_window.h +++ b/analyzers/src/watch/nc_windows/header_window.h @@ -29,8 +29,8 @@ class HeaderWindow { WINDOW* _window; - time_t _start_time; - void destroy(); + time_t _start_time; + void destroy(); public: HeaderWindow() = delete; @@ -46,5 +46,5 @@ public: void resize(MainWindow&); }; //------------------------------------------------------------------------------ -#endif//HEADER_WINDOWS_H +#endif //HEADER_WINDOWS_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/watch/nc_windows/main_window.cpp b/analyzers/src/watch/nc_windows/main_window.cpp index 3c992c3..1e0bba6 100644 --- a/analyzers/src/watch/nc_windows/main_window.cpp +++ b/analyzers/src/watch/nc_windows/main_window.cpp @@ -27,25 +27,23 @@ //------------------------------------------------------------------------------ void MainWindow::init() { - if (_window != nullptr) + if(_window != nullptr) { destroy(); } _window = initscr(); - if (_window == nullptr) + if(_window == nullptr) { throw std::runtime_error("Initialization of Main window failed."); } noecho(); cbreak(); - intrflush(stdscr, false); // flush main window - curs_set(0); // disable blinking cursore - - keypad(_window, true); // init keyboard - timeout(200); // set keyboard timeout - - start_color(); // set background color - if (_window != nullptr) + intrflush(stdscr, false); // flush main window + curs_set(0); // disable blinking cursore + keypad(_window, true); // init keyboard + timeout(200); // set keyboard timeout + start_color(); // set background color + if(_window != nullptr) { werase(_window); } @@ -63,14 +61,14 @@ void MainWindow::destroy() void MainWindow::cleanStdin(int key) { - while ((key != EOF) && (key != '\n') && (key != ' ')) + while((key != EOF) && (key != '\n') && (key != ' ')) { key = getch(); } } MainWindow::MainWindow() -: _window {nullptr} + : _window{nullptr} { init(); } @@ -84,7 +82,7 @@ int MainWindow::inputKeys() { int key = wgetch(_window); - if (key != KEY_UP && key != KEY_DOWN && key != KEY_LEFT && key != KEY_RIGHT) + if(key != KEY_UP && key != KEY_DOWN && key != KEY_LEFT && key != KEY_RIGHT) { key = 0; } @@ -94,7 +92,7 @@ int MainWindow::inputKeys() void MainWindow::resize() { - if (_window != nullptr) + if(_window != nullptr) { destroy(); } @@ -103,9 +101,9 @@ void MainWindow::resize() void MainWindow::update() const { - if (_window != nullptr) + if(_window != nullptr) { refresh(); } } -//------------------------------------------------------------------------------
\ No newline at end of file +//------------------------------------------------------------------------------ diff --git a/analyzers/src/watch/nc_windows/main_window.h b/analyzers/src/watch/nc_windows/main_window.h index 4c1afc5..6fed7b3 100644 --- a/analyzers/src/watch/nc_windows/main_window.h +++ b/analyzers/src/watch/nc_windows/main_window.h @@ -32,10 +32,10 @@ class MainWindow void init(); void destroy(); + static void cleanStdin(int); public: - MainWindow(); ~MainWindow(); @@ -52,5 +52,5 @@ public: void update() const; }; //------------------------------------------------------------------------------ -#endif//MAIN_WINDOW_H +#endif //MAIN_WINDOW_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/watch/nc_windows/nc_window_const.h b/analyzers/src/watch/nc_windows/nc_window_const.h index 124436d..bacbb0b 100644 --- a/analyzers/src/watch/nc_windows/nc_window_const.h +++ b/analyzers/src/watch/nc_windows/nc_window_const.h @@ -24,7 +24,6 @@ //------------------------------------------------------------------------------ namespace { - const unsigned int SECINMIN = 60; const unsigned int SECINHOUR = 60 * 60; const unsigned int SECINDAY = 60 * 60 * 24; @@ -41,8 +40,7 @@ const int COUNTERS_POS = 22; const int FIRST_CHAR_POS = 1; const int EMPTY_LINE = 1; - } //------------------------------------------------------------------------------ -#endif//NC_WINDOW_CONST_H +#endif //NC_WINDOW_CONST_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/watch/nc_windows/statistics_window.cpp b/analyzers/src/watch/nc_windows/statistics_window.cpp index d4496c2..e9ec65b 100644 --- a/analyzers/src/watch/nc_windows/statistics_window.cpp +++ b/analyzers/src/watch/nc_windows/statistics_window.cpp @@ -29,15 +29,15 @@ //------------------------------------------------------------------------------ namespace STATISTICS { -const int PROTOCOLS_LINE = 1; +const int PROTOCOLS_LINE = 1; const int FIRST_OPERATION_LINE = 3; -const int DEFAULT_LINES = 10; -const int DEFAULT_GROUP = 1; +const int DEFAULT_LINES = 10; +const int DEFAULT_GROUP = 1; } void StatisticsWindow::destroy() { - if (_window == nullptr) + if(_window == nullptr) { return; } @@ -49,24 +49,24 @@ void StatisticsWindow::destroy() bool StatisticsWindow::canWrite(unsigned int i) { - return (i >= _scrollOffset.at(_activeProtocol) + STATISTICS::FIRST_OPERATION_LINE && i - _scrollOffset.at(_activeProtocol) + BORDER_SIZE < static_cast<unsigned int>(_window->_maxy)); + return (i >= _scrollOffset.at(_activeProtocol) + STATISTICS::FIRST_OPERATION_LINE && i - _scrollOffset.at(_activeProtocol) + BORDER_SIZE < static_cast<unsigned int>(_window->_maxy)); } StatisticsWindow::StatisticsWindow(MainWindow& w, StatisticsContainers& c) -: _window {nullptr} -, _activeProtocol {nullptr} + : _window{nullptr} + , _activeProtocol{nullptr} { - if (w._window == nullptr) + if(w._window == nullptr) { throw std::runtime_error("Initialization of Header window failed."); } - for (auto i : c) + for(auto i : c) { _allProtocols.push_back((i.first)->getProtocolName()); _scrollOffset.insert(std::make_pair<AbstractProtocol*, std::size_t>(reinterpret_cast<AbstractProtocol*>(i.first), 0)); }; _activeProtocol = (c.begin())->first; - _statistic = c.at(_activeProtocol); + _statistic = c.at(_activeProtocol); resize(w); } @@ -76,12 +76,12 @@ StatisticsWindow::~StatisticsWindow() void StatisticsWindow::scrollContent(int i) { - if (i > 0 && _scrollOffset.at(_activeProtocol) <= MAXSHIFT - SHIFTCU) + if(i > 0 && _scrollOffset.at(_activeProtocol) <= MAXSHIFT - SHIFTCU) { _scrollOffset.at(_activeProtocol) += SHIFTCU; updateProtocol(_activeProtocol); } - else if (i < 0 && _scrollOffset.at(_activeProtocol) >= SHIFTCU) + else if(i < 0 && _scrollOffset.at(_activeProtocol) >= SHIFTCU) { _scrollOffset.at(_activeProtocol) -= SHIFTCU; updateProtocol(_activeProtocol); @@ -92,17 +92,16 @@ void StatisticsWindow::updateProtocol(AbstractProtocol* p) { if(p != nullptr) _activeProtocol = p; - if (_window == nullptr) + if(_window == nullptr) { return; } werase(_window); - wborder(_window, ACS_VLINE, ACS_VLINE, ACS_HLINE, ACS_HLINE, ACS_ULCORNER, ACS_URCORNER , ACS_LLCORNER, ACS_LRCORNER); + wborder(_window, ACS_VLINE, ACS_VLINE, ACS_HLINE, ACS_HLINE, ACS_ULCORNER, ACS_URCORNER, ACS_LLCORNER, ACS_LRCORNER); std::string tmp(" "); - for_each (_allProtocols.begin(), _allProtocols.end(), [&](std::string& s) - { - if (!s.compare(_activeProtocol->getProtocolName())) + for_each(_allProtocols.begin(), _allProtocols.end(), [&](std::string& s) { + if(!s.compare(_activeProtocol->getProtocolName())) { tmp += std::string(" < ") + s + std::string(" > "); } @@ -112,19 +111,19 @@ void StatisticsWindow::updateProtocol(AbstractProtocol* p) } }); - mvwprintw(_window, STATISTICS::PROTOCOLS_LINE , FIRST_CHAR_POS, "%s", tmp.c_str()); + mvwprintw(_window, STATISTICS::PROTOCOLS_LINE, FIRST_CHAR_POS, "%s", tmp.c_str()); unsigned int line = STATISTICS::FIRST_OPERATION_LINE; for(unsigned int i = STATISTICS::DEFAULT_GROUP; i <= _activeProtocol->getGroups(); i++) { - if ( canWrite(line)) + if(canWrite(line)) { mvwprintw(_window, line - (_scrollOffset.at(p)), FIRST_CHAR_POS, "%s", "Total:"); } line++; - for (unsigned int j = _activeProtocol->getGroupBegin(i); j < _activeProtocol->getGroupBegin(i + 1); j++) + for(unsigned int j = _activeProtocol->getGroupBegin(i); j < _activeProtocol->getGroupBegin(i + 1); j++) { - if ( canWrite(line)) + if(canWrite(line)) { mvwprintw(_window, line - (_scrollOffset.at(p)), FIRST_CHAR_POS, "%s", p->printProcedure(j)); } @@ -132,13 +131,12 @@ void StatisticsWindow::updateProtocol(AbstractProtocol* p) } line++; } - } void StatisticsWindow::update(const ProtocolStatistic& d) { _statistic = d; - if (_statistic.empty() || _window == nullptr) + if(_statistic.empty() || _window == nullptr) { return; } @@ -152,14 +150,14 @@ void StatisticsWindow::update(const ProtocolStatistic& d) { m += _statistic[tmp]; } - if ( canWrite(line)) + if(canWrite(line)) { mvwprintw(_window, line - (_scrollOffset.at(_activeProtocol)), FIRST_CHAR_POS + 25, "%d", m); } line++; - for (unsigned int j = _activeProtocol->getGroupBegin(i); j < _activeProtocol->getGroupBegin(i + 1); j++) + for(unsigned int j = _activeProtocol->getGroupBegin(i); j < _activeProtocol->getGroupBegin(i + 1); j++) { - if ( canWrite(line)) + if(canWrite(line)) { mvwprintw(_window, line - _scrollOffset.at(_activeProtocol), COUNTERS_POS, "%lu ", _statistic[j]); mvwprintw(_window, line - _scrollOffset.at(_activeProtocol), PERSENT_POS, "%-3.2f%% ", @@ -174,16 +172,16 @@ void StatisticsWindow::update(const ProtocolStatistic& d) void StatisticsWindow::resize(MainWindow& m) { - if (_window != nullptr) + if(_window != nullptr) { destroy(); } int tmp_size = STATISTICS::DEFAULT_LINES; - if (_activeProtocol != nullptr) + if(_activeProtocol != nullptr) { tmp_size = _activeProtocol->getAmount() + 2 * BORDER_SIZE + 2 * EMPTY_LINE + STATISTICS::PROTOCOLS_LINE + _activeProtocol->getGroups() * EMPTY_LINE * _activeProtocol->getGroups(); } - if (m._window != nullptr && m._window->_maxy > GUI_HEADER_HEIGHT) + if(m._window != nullptr && m._window->_maxy > GUI_HEADER_HEIGHT) { _window = subwin(m._window, std::min(static_cast<int>(m._window->_maxy - GUI_HEADER_HEIGHT), tmp_size), std::min(static_cast<int>(m._window->_maxx), GUI_LENGTH), GUI_HEADER_HEIGHT - BORDER_SIZE, 0); diff --git a/analyzers/src/watch/nc_windows/statistics_window.h b/analyzers/src/watch/nc_windows/statistics_window.h index e95bd85..15002f1 100644 --- a/analyzers/src/watch/nc_windows/statistics_window.h +++ b/analyzers/src/watch/nc_windows/statistics_window.h @@ -22,28 +22,18 @@ #ifndef STATISTICS_WINDOW_H #define STATISTICS_WINDOW_H //------------------------------------------------------------------------------ -#include <unordered_map> #include <vector> +#include <unordered_map> #include "../protocols/abstract_protocol.h" #include "main_window.h" //------------------------------------------------------------------------------ class StatisticsWindow { - using ProtocolStatistic = std::vector<std::size_t>; + using ProtocolStatistic = std::vector<std::size_t>; using StatisticsContainers = std::unordered_map<AbstractProtocol*, ProtocolStatistic>; -private: - WINDOW* _window; - AbstractProtocol* _activeProtocol; - std::vector<std::string> _allProtocols; - std::unordered_map<AbstractProtocol*, unsigned int> _scrollOffset; - ProtocolStatistic _statistic; - void destroy(); - bool canWrite(unsigned int); - public: - StatisticsWindow() = delete; StatisticsWindow(MainWindow&, StatisticsContainers&); ~StatisticsWindow(); @@ -66,7 +56,17 @@ public: /*! Only set active protocol, do not update new protocol's commands. */ void setProtocol(AbstractProtocol*); + +private: + void destroy(); + bool canWrite(unsigned int); + + WINDOW* _window; + AbstractProtocol* _activeProtocol; + std::vector<std::string> _allProtocols; + std::unordered_map<AbstractProtocol*, unsigned int> _scrollOffset; + ProtocolStatistic _statistic; }; //------------------------------------------------------------------------------ -#endif//STATISTICS_WINDOWS_H +#endif //STATISTICS_WINDOWS_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/watch/protocols/abstract_protocol.cpp b/analyzers/src/watch/protocols/abstract_protocol.cpp index 48a4cd8..c52945a 100644 --- a/analyzers/src/watch/protocols/abstract_protocol.cpp +++ b/analyzers/src/watch/protocols/abstract_protocol.cpp @@ -24,12 +24,12 @@ //------------------------------------------------------------------------------ namespace { - const int EMPTY_GROUP = 1; +const int EMPTY_GROUP = 1; } AbstractProtocol::AbstractProtocol(const char* n, std::size_t i) -: name {n} -, amount {i} + : name{n} + , amount{i} { } @@ -59,7 +59,7 @@ std::size_t AbstractProtocol::getGroups() std::size_t AbstractProtocol::getGroupBegin(std::size_t i) { - if( i == EMPTY_GROUP) + if(i == EMPTY_GROUP) return 0; else return amount; diff --git a/analyzers/src/watch/protocols/abstract_protocol.h b/analyzers/src/watch/protocols/abstract_protocol.h index 4e0649b..a194864 100644 --- a/analyzers/src/watch/protocols/abstract_protocol.h +++ b/analyzers/src/watch/protocols/abstract_protocol.h @@ -62,5 +62,5 @@ private: std::size_t amount; }; //------------------------------------------------------------------------------ -#endif//ABSTRACT_PROTOCOL_H +#endif //ABSTRACT_PROTOCOL_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/watch/protocols/cifsv1_protocol.cpp b/analyzers/src/watch/protocols/cifsv1_protocol.cpp index ac456ee..fb130e1 100644 --- a/analyzers/src/watch/protocols/cifsv1_protocol.cpp +++ b/analyzers/src/watch/protocols/cifsv1_protocol.cpp @@ -20,11 +20,12 @@ */ //------------------------------------------------------------------------------ #include <api/plugin_api.h> // include plugin development definitions + #include "cifsv1_protocol.h" //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ CIFSv1Protocol::CIFSv1Protocol() -: AbstractProtocol {"CIFS v1", static_cast<std::size_t>(SMBv1::SMBv1Commands::CMD_COUNT)} + : AbstractProtocol{"CIFS v1", static_cast<std::size_t>(SMBv1::SMBv1Commands::CMD_COUNT)} { } @@ -34,7 +35,10 @@ CIFSv1Protocol::~CIFSv1Protocol() const char* CIFSv1Protocol::printProcedure(std::size_t i) { - if ( i >= static_cast<std::size_t>(SMBv1::SMBv1Commands::CMD_COUNT)) { return nullptr; } + if(i >= static_cast<std::size_t>(SMBv1::SMBv1Commands::CMD_COUNT)) + { + return nullptr; + } return print_cifs1_procedures(static_cast<SMBv1::SMBv1Commands>(i)); } //------------------------------------------------------------------------------ diff --git a/analyzers/src/watch/protocols/cifsv1_protocol.h b/analyzers/src/watch/protocols/cifsv1_protocol.h index 6176318..6fd6248 100644 --- a/analyzers/src/watch/protocols/cifsv1_protocol.h +++ b/analyzers/src/watch/protocols/cifsv1_protocol.h @@ -32,5 +32,5 @@ public: virtual const char* printProcedure(std::size_t); }; //------------------------------------------------------------------------------ -#endif//CIFSV1_PROTOCOL_H +#endif //CIFSV1_PROTOCOL_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/watch/protocols/cifsv2_protocol.cpp b/analyzers/src/watch/protocols/cifsv2_protocol.cpp index 39a3f6a..dbe24dc 100644 --- a/analyzers/src/watch/protocols/cifsv2_protocol.cpp +++ b/analyzers/src/watch/protocols/cifsv2_protocol.cpp @@ -20,10 +20,11 @@ */ //------------------------------------------------------------------------------ #include <api/plugin_api.h> // include plugin development definitions + #include "cifsv2_protocol.h" //------------------------------------------------------------------------------ CIFSv2Protocol::CIFSv2Protocol() -: AbstractProtocol {"CIFS v2", static_cast<std::size_t>(SMBv2::SMBv2Commands::CMD_COUNT)} + : AbstractProtocol{"CIFS v2", static_cast<std::size_t>(SMBv2::SMBv2Commands::CMD_COUNT)} { } @@ -33,7 +34,10 @@ CIFSv2Protocol::~CIFSv2Protocol() const char* CIFSv2Protocol::printProcedure(std::size_t i) { - if ( i >= static_cast<std::size_t>(SMBv2::SMBv2Commands::CMD_COUNT)) { return nullptr; } + if(i >= static_cast<std::size_t>(SMBv2::SMBv2Commands::CMD_COUNT)) + { + return nullptr; + } return print_cifs2_procedures(static_cast<SMBv2::SMBv2Commands>(i)); } //------------------------------------------------------------------------------ diff --git a/analyzers/src/watch/protocols/cifsv2_protocol.h b/analyzers/src/watch/protocols/cifsv2_protocol.h index b95a740..a90aa21 100644 --- a/analyzers/src/watch/protocols/cifsv2_protocol.h +++ b/analyzers/src/watch/protocols/cifsv2_protocol.h @@ -32,5 +32,5 @@ public: virtual const char* printProcedure(std::size_t); }; //------------------------------------------------------------------------------ -#endif//CIFSV2_PROTOCOL_H +#endif //CIFSV2_PROTOCOL_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/watch/protocols/nfsv3_protocol.cpp b/analyzers/src/watch/protocols/nfsv3_protocol.cpp index 39de02b..a5c4324 100644 --- a/analyzers/src/watch/protocols/nfsv3_protocol.cpp +++ b/analyzers/src/watch/protocols/nfsv3_protocol.cpp @@ -20,10 +20,11 @@ */ //------------------------------------------------------------------------------ #include <api/plugin_api.h> // include plugin development definitions + #include "nfsv3_protocol.h" //------------------------------------------------------------------------------ NFSv3Protocol::NFSv3Protocol() -: AbstractProtocol {"NFS v3", ProcEnumNFS3::count} + : AbstractProtocol{"NFS v3", ProcEnumNFS3::count} { } @@ -33,7 +34,10 @@ NFSv3Protocol::~NFSv3Protocol() const char* NFSv3Protocol::printProcedure(std::size_t i) { - if ( i > ProcEnumNFS3::count) { return nullptr; } - return print_nfs3_procedures(static_cast<ProcEnumNFS3::NFSProcedure>(i)); + if(i > ProcEnumNFS3::count) + { + return nullptr; + } + return print_nfs3_procedures(static_cast<ProcEnumNFS3::NFSProcedure>(i)); } //------------------------------------------------------------------------------ diff --git a/analyzers/src/watch/protocols/nfsv3_protocol.h b/analyzers/src/watch/protocols/nfsv3_protocol.h index d4e5119..e94f4a5 100644 --- a/analyzers/src/watch/protocols/nfsv3_protocol.h +++ b/analyzers/src/watch/protocols/nfsv3_protocol.h @@ -32,5 +32,5 @@ public: virtual const char* printProcedure(std::size_t); }; //------------------------------------------------------------------------------ -#endif//NFSV3_PROTOCOL_H +#endif //NFSV3_PROTOCOL_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/watch/protocols/nfsv41_protocol.cpp b/analyzers/src/watch/protocols/nfsv41_protocol.cpp index fbc7251..f48b03e 100644 --- a/analyzers/src/watch/protocols/nfsv41_protocol.cpp +++ b/analyzers/src/watch/protocols/nfsv41_protocol.cpp @@ -20,17 +20,18 @@ */ //------------------------------------------------------------------------------ #include <api/plugin_api.h> // include plugin development definitions + #include "nfsv41_protocol.h" //------------------------------------------------------------------------------ namespace { const int NFSV41_NUMBEROFGROUPS = 2; -const int PROCEDURES_GROUP = 1; -const int OPERATIONS_GROUP = 2; +const int PROCEDURES_GROUP = 1; +const int OPERATIONS_GROUP = 2; } NFSv41Protocol::NFSv41Protocol() -: AbstractProtocol {"NFS v41", ProcEnumNFS41::count} + : AbstractProtocol{"NFS v41", ProcEnumNFS41::count} { } @@ -40,8 +41,11 @@ NFSv41Protocol::~NFSv41Protocol() const char* NFSv41Protocol::printProcedure(std::size_t i) { - if ( i > ProcEnumNFS41::count) { return nullptr; } - return print_nfs41_procedures(static_cast<ProcEnumNFS41::NFSProcedure>(i)); + if(i > ProcEnumNFS41::count) + { + return nullptr; + } + return print_nfs41_procedures(static_cast<ProcEnumNFS41::NFSProcedure>(i)); } std::size_t NFSv41Protocol::getGroups() diff --git a/analyzers/src/watch/protocols/nfsv41_protocol.h b/analyzers/src/watch/protocols/nfsv41_protocol.h index 8b74ab4..218247e 100644 --- a/analyzers/src/watch/protocols/nfsv41_protocol.h +++ b/analyzers/src/watch/protocols/nfsv41_protocol.h @@ -34,5 +34,5 @@ public: virtual std::size_t getGroupBegin(std::size_t); }; //------------------------------------------------------------------------------ -#endif//NFSV41_PROTOCOL_H +#endif //NFSV41_PROTOCOL_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/watch/protocols/nfsv4_protocol.cpp b/analyzers/src/watch/protocols/nfsv4_protocol.cpp index d22bcfc..dfe7ce8 100644 --- a/analyzers/src/watch/protocols/nfsv4_protocol.cpp +++ b/analyzers/src/watch/protocols/nfsv4_protocol.cpp @@ -20,17 +20,18 @@ */ //------------------------------------------------------------------------------ #include <api/plugin_api.h> // include plugin development definitions + #include "nfsv4_protocol.h" //------------------------------------------------------------------------------ namespace { const int NFSV4_NUMBER_OF_GROUPS = 2; -const int PROCEDURES_GROUP = 1; -const int OPERATIONS_GROUP = 2; +const int PROCEDURES_GROUP = 1; +const int OPERATIONS_GROUP = 2; } NFSv4Protocol::NFSv4Protocol() -: AbstractProtocol {"NFS v4", ProcEnumNFS4::count} + : AbstractProtocol{"NFS v4", ProcEnumNFS4::count} { } @@ -40,8 +41,11 @@ NFSv4Protocol::~NFSv4Protocol() const char* NFSv4Protocol::printProcedure(std::size_t i) { - if ( i > ProcEnumNFS4::count) { return nullptr; } - return print_nfs4_procedures(static_cast<ProcEnumNFS4::NFSProcedure>(i)); + if(i > ProcEnumNFS4::count) + { + return nullptr; + } + return print_nfs4_procedures(static_cast<ProcEnumNFS4::NFSProcedure>(i)); } std::size_t NFSv4Protocol::getGroups() diff --git a/analyzers/src/watch/protocols/nfsv4_protocol.h b/analyzers/src/watch/protocols/nfsv4_protocol.h index bc39391..cbd6093 100644 --- a/analyzers/src/watch/protocols/nfsv4_protocol.h +++ b/analyzers/src/watch/protocols/nfsv4_protocol.h @@ -34,5 +34,5 @@ public: virtual std::size_t getGroupBegin(std::size_t); }; //------------------------------------------------------------------------------ -#endif//PROTOCOLS_H +#endif //PROTOCOLS_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/watch/user_gui.cpp b/analyzers/src/watch/user_gui.cpp index 6e7d6de..9f8e9da 100644 --- a/analyzers/src/watch/user_gui.cpp +++ b/analyzers/src/watch/user_gui.cpp @@ -46,7 +46,7 @@ void UserGUI::run() // prepare for select fd_set rfds; - MainWindow mainWindow; + MainWindow mainWindow; HeaderWindow headerWindow(mainWindow); StatisticsWindow statisticsWindow(mainWindow, _statisticsContainers); @@ -63,9 +63,9 @@ void UserGUI::run() statisticsWindow.updateProtocol(_activeProtocol); - while (_running.test_and_set()) + while(_running.test_and_set()) { - if (_shouldResize) + if(_shouldResize) { mainWindow.resize(); headerWindow.resize(mainWindow); @@ -74,67 +74,65 @@ void UserGUI::run() _shouldResize = false; } - if (_running.test_and_set()) + if(_running.test_and_set()) { - std::unique_lock<std::mutex>lck(_statisticsDeltaMutex); + std::unique_lock<std::mutex> lck(_statisticsDeltaMutex); tmp = _statisticsContainers.at(_activeProtocol); } headerWindow.update(); statisticsWindow.update(tmp); mainWindow.update(); - if( select(STDIN_FILENO + 1, &rfds, nullptr, nullptr, &tv) == -1) + if(select(STDIN_FILENO + 1, &rfds, nullptr, nullptr, &tv) == -1) { break; } else { key = mainWindow.inputKeys(); - if (key == KEY_LEFT || key == KEY_RIGHT) + if(key == KEY_LEFT || key == KEY_RIGHT) { - auto it = find_if (_allProtocols.begin(), _allProtocols.end(), [&](std::string s) - { + auto it = find_if(_allProtocols.begin(), _allProtocols.end(), [&](std::string s) { return !(s.compare(_activeProtocol->getProtocolName())); }); - if (it != _allProtocols.end()) + if(it != _allProtocols.end()) { - if (key == KEY_LEFT) + if(key == KEY_LEFT) { - if (it + 1 == _allProtocols.end()) + if(it + 1 == _allProtocols.end()) it = _allProtocols.begin(); else ++it; } - else if (key == KEY_RIGHT) + else if(key == KEY_RIGHT) { - if (it == _allProtocols.begin()) + if(it == _allProtocols.begin()) it = _allProtocols.end() - 1; else --it; } - auto a = find_if ( _statisticsContainers.begin(), _statisticsContainers.end(),[&](std::pair<AbstractProtocol*, std::vector<std::size_t> > p) - { + auto a = find_if(_statisticsContainers.begin(), _statisticsContainers.end(), [&](std::pair<AbstractProtocol*, std::vector<std::size_t>> p) { return !(p.first->getProtocolName().compare(*it)); }); - if (a != _statisticsContainers.end()) + if(a != _statisticsContainers.end()) { _activeProtocol = a->first; statisticsWindow.setProtocol(_activeProtocol); statisticsWindow.resize(mainWindow); { - std::unique_lock<std::mutex>lck(_statisticsDeltaMutex); + std::unique_lock<std::mutex> lck(_statisticsDeltaMutex); tmp = a->second; } statisticsWindow.update(tmp); } } } - else if (key == KEY_UP) + else if(key == KEY_UP) { statisticsWindow.scrollContent(SCROLL_UP); statisticsWindow.update(tmp); } - else if (key == KEY_DOWN) + else if(key == KEY_DOWN) { statisticsWindow.scrollContent(SCROLL_DOWN); statisticsWindow.update(tmp); @@ -143,7 +141,7 @@ void UserGUI::run() tv = getTimeval(); } } - catch (std::runtime_error& e) + catch(std::runtime_error& e) { std::cerr << "Watch plugin error: " << e.what(); } @@ -152,36 +150,36 @@ void UserGUI::run() timeval UserGUI::getTimeval() const { struct timeval tv; - tv.tv_sec = _refresh_delta / MSEC; + tv.tv_sec = _refresh_delta / MSEC; tv.tv_usec = _refresh_delta % MSEC; return tv; } -UserGUI::UserGUI(const char* opts, std::vector<AbstractProtocol* >& data) -: _refresh_delta {900000} -, _shouldResize {false} -, _running {ATOMIC_FLAG_INIT} -, _activeProtocol(nullptr) +UserGUI::UserGUI(const char* opts, std::vector<AbstractProtocol*>& data) + : _refresh_delta{900000} + , _shouldResize{false} + , _running{ATOMIC_FLAG_INIT} + , _activeProtocol(nullptr) { try { - if (opts != nullptr && *opts != '\0' ) + if(opts != nullptr && *opts != '\0') { _refresh_delta = std::stoul(opts); } - for (auto it = data.begin(); it != data.end(); ++it) + for(auto it = data.begin(); it != data.end(); ++it) { _allProtocols.push_back((*it)->getProtocolName()); - _statisticsContainers.insert(std::make_pair<AbstractProtocol*, std::vector<std::size_t> >((AbstractProtocol*&&)(*it), std::vector<std::size_t>((*it)->getAmount(), 0))); + _statisticsContainers.insert(std::make_pair<AbstractProtocol*, std::vector<std::size_t>>((AbstractProtocol * &&)(*it), std::vector<std::size_t>((*it)->getAmount(), 0))); } - if (_activeProtocol == nullptr && ! data.empty()) + if(_activeProtocol == nullptr && !data.empty()) { _activeProtocol = data.back(); } } - catch (std::exception& e) + catch(std::exception& e) { - throw std::runtime_error {std::string{"Error in plugin options processing. OPTS: "} + opts + std::string(" Error: ") + e.what()}; + throw std::runtime_error{std::string{"Error in plugin options processing. OPTS: "} + opts + std::string(" Error: ") + e.what()}; } _running.test_and_set(); _guiThread = std::thread(&UserGUI::run, this); @@ -197,8 +195,8 @@ void UserGUI::update(AbstractProtocol* p, std::vector<std::size_t>& d) { std::vector<std::size_t>::iterator it; std::vector<std::size_t>::iterator st; - std::unique_lock<std::mutex>lck(_statisticsDeltaMutex); - for (it = (_statisticsContainers.at(p)).begin(), st = d.begin(); it != (_statisticsContainers.at(p)).end() && st != d.end(); ++it, ++st) + std::unique_lock<std::mutex> lck(_statisticsDeltaMutex); + for(it = (_statisticsContainers.at(p)).begin(), st = d.begin(); it != (_statisticsContainers.at(p)).end() && st != d.end(); ++it, ++st) { (*it) += (*st); } diff --git a/analyzers/src/watch/user_gui.h b/analyzers/src/watch/user_gui.h index b40dd52..20e881c 100644 --- a/analyzers/src/watch/user_gui.h +++ b/analyzers/src/watch/user_gui.h @@ -29,32 +29,17 @@ #include <vector> #include <ncurses.h> + #include "protocols/abstract_protocol.h" //------------------------------------------------------------------------------ class UserGUI { public: - using ProtocolStatistic = std::vector<std::size_t>; + using ProtocolStatistic = std::vector<std::size_t>; using StatisticsContainers = std::unordered_map<AbstractProtocol*, ProtocolStatistic>; -private: - unsigned long _refresh_delta; // in microseconds - - std::atomic<bool> _shouldResize; - std::mutex _statisticsDeltaMutex; - std::atomic_flag _running; - - StatisticsContainers _statisticsContainers; - - AbstractProtocol* _activeProtocol; - std::thread _guiThread; - std::vector<std::string> _allProtocols; - void run(); - timeval getTimeval() const; -public: - UserGUI() = delete; - UserGUI(const char*, std::vector<AbstractProtocol* >&); + UserGUI(const char*, std::vector<AbstractProtocol*>&); ~UserGUI(); /*! Update Protocol's data. @@ -64,7 +49,20 @@ public: /*! Enable screen full update. Use for resize main window. */ void enableUpdate(); + +private: + void run(); + timeval getTimeval() const; + + unsigned long _refresh_delta; // in microseconds + std::atomic<bool> _shouldResize; + std::mutex _statisticsDeltaMutex; + std::atomic_flag _running; + StatisticsContainers _statisticsContainers; + AbstractProtocol* _activeProtocol; + std::thread _guiThread; + std::vector<std::string> _allProtocols; }; //------------------------------------------------------------------------------ -#endif//USERGUI_H +#endif //USERGUI_H //------------------------------------------------------------------------------ diff --git a/analyzers/src/watch/watch_analyzer.cpp b/analyzers/src/watch/watch_analyzer.cpp index 26dd4f9..5bb4b35 100644 --- a/analyzers/src/watch/watch_analyzer.cpp +++ b/analyzers/src/watch/watch_analyzer.cpp @@ -24,21 +24,21 @@ #include <string> #include <unordered_map> -#include <unistd.h> #include <signal.h> #include <sys/time.h> #include <sys/types.h> +#include <unistd.h> #include "watch_analyzer.h" //------------------------------------------------------------------------------ WatchAnalyzer::WatchAnalyzer(const char* opts) -: _cifsv2 {} -, _cifsv1 {} -, _nfsv41 {} -, _nfsv4 {} -, _nfsv3 {} -, protocols {&_cifsv2, &_cifsv1, &_nfsv41, &_nfsv4, &_nfsv3} -, gui {opts, protocols} + : _cifsv2{} + , _cifsv1{} + , _nfsv41{} + , _nfsv4{} + , _nfsv3{} + , protocols{&_cifsv2, &_cifsv1, &_nfsv41, &_nfsv4, &_nfsv3} + , gui{opts, protocols} { } @@ -46,6 +46,7 @@ WatchAnalyzer::~WatchAnalyzer() { } +// clang-format off void WatchAnalyzer::null(const RPCProcedure* proc, const struct NFS3::NULL3args*, const struct NFS3::NULL3res*) { nfs_account(proc); } @@ -878,6 +879,7 @@ void WatchAnalyzer::breakOplockSMBv2(const SMBv2::BreakOpLockCommand* /*cmd*/, c { cifs_account(_cifsv2, static_cast<int>(SMBv2::SMBv2Commands::OPLOCK_BREAK)); } +// clang-format on void WatchAnalyzer::flush_statistics() { @@ -885,15 +887,15 @@ void WatchAnalyzer::flush_statistics() void WatchAnalyzer::on_unix_signal(int signo) { - if (signo == SIGWINCH) + if(signo == SIGWINCH) { gui.enableUpdate(); } } -void WatchAnalyzer::cifs_account(AbstractProtocol &protocol, int cmd_code) +void WatchAnalyzer::cifs_account(AbstractProtocol& protocol, int cmd_code) { - std::vector<std::size_t> cifs_proc_count (static_cast<std::size_t>(protocol.getAmount()), 0); + std::vector<std::size_t> cifs_proc_count(static_cast<std::size_t>(protocol.getAmount()), 0); ++cifs_proc_count[cmd_code]; gui.update(&protocol, cifs_proc_count); } @@ -903,25 +905,25 @@ void WatchAnalyzer::nfs_account(const RPCProcedure* proc, const unsigned int nfs const u_int nfs_proc = proc->call.ru.RM_cmb.cb_proc; const u_int nfs_vers = proc->call.ru.RM_cmb.cb_vers; - if (nfs_vers == NFS_V4) + if(nfs_vers == NFS_V4) { - if (nfs_minor_vers == NFS_V40) + if(nfs_minor_vers == NFS_V40) { - std::vector<std::size_t> nfs4_proc_count (ProcEnumNFS4::count, 0); + std::vector<std::size_t> nfs4_proc_count(ProcEnumNFS4::count, 0); ++nfs4_proc_count[nfs_proc]; gui.update(&_nfsv4, nfs4_proc_count); } - if (nfs_minor_vers == NFS_V41 || nfs_proc == ProcEnumNFS4::NFS_NULL) + if(nfs_minor_vers == NFS_V41 || nfs_proc == ProcEnumNFS4::NFS_NULL) { - std::vector<std::size_t> nfs41_proc_count (ProcEnumNFS41::count, 0); + std::vector<std::size_t> nfs41_proc_count(ProcEnumNFS41::count, 0); ++nfs41_proc_count[nfs_proc]; gui.update(&_nfsv41, nfs41_proc_count); } } - else if (nfs_vers == NFS_V3) + else if(nfs_vers == NFS_V3) { - std::vector<std::size_t> nfs3_proc_count (ProcEnumNFS3::count, 0); + std::vector<std::size_t> nfs3_proc_count(ProcEnumNFS3::count, 0); ++nfs3_proc_count[nfs_proc]; gui.update(&_nfsv3, nfs3_proc_count); } @@ -929,51 +931,50 @@ void WatchAnalyzer::nfs_account(const RPCProcedure* proc, const unsigned int nfs void WatchAnalyzer::account40_op(const RPCProcedure* /*proc*/, const ProcEnumNFS4::NFSProcedure operation) { - std::vector<std::size_t> nfs4_proc_count (ProcEnumNFS4::count, 0); + std::vector<std::size_t> nfs4_proc_count(ProcEnumNFS4::count, 0); ++nfs4_proc_count[operation]; gui.update(&_nfsv4, nfs4_proc_count); } void WatchAnalyzer::account41_op(const RPCProcedure* /*proc*/, const ProcEnumNFS41::NFSProcedure operation) { - std::vector<std::size_t> nfs41_proc_count (ProcEnumNFS41::count, 0); + std::vector<std::size_t> nfs41_proc_count(ProcEnumNFS41::count, 0); ++nfs41_proc_count[operation]; gui.update(&_nfsv41, nfs41_proc_count); } //------------------------------------------------------------------------------ -extern "C" +extern "C" { + +const char* usage() { + return "User can set chrono output timeout in msec.\n" + "You have to run nfstrace with verbosity level set to 0 (nfstrace -v 0 ...)"; +} - const char* usage() +IAnalyzer* create(const char* opts) +{ + try { - return "User can set chrono output timeout in msec.\n" - "You have to run nfstrace with verbosity level set to 0 (nfstrace -v 0 ...)"; + return new WatchAnalyzer(opts); } - - IAnalyzer* create(const char* opts) + catch(std::exception& e) { - try - { - return new WatchAnalyzer(opts); - } - catch (std::exception& e) - { - std::cerr << "Can't initalize plugin: " << e.what() << std::endl; - return nullptr; - } + std::cerr << "Can't initalize plugin: " << e.what() << std::endl; + return nullptr; } +} - void destroy(IAnalyzer* instance) - { - delete instance; - } +void destroy(IAnalyzer* instance) +{ + delete instance; +} - const AnalyzerRequirements* requirements() - { - static const AnalyzerRequirements requirements{true}; - return &requirements; - } +const AnalyzerRequirements* requirements() +{ + static const AnalyzerRequirements requirements{true}; + return &requirements; +} - NST_PLUGIN_ENTRY_POINTS (&usage, &create, &destroy, &requirements) +NST_PLUGIN_ENTRY_POINTS(&usage, &create, &destroy, &requirements) } //------------------------------------------------------------------------------ diff --git a/analyzers/src/watch/watch_analyzer.h b/analyzers/src/watch/watch_analyzer.h index 9635f7c..cb8a4a4 100644 --- a/analyzers/src/watch/watch_analyzer.h +++ b/analyzers/src/watch/watch_analyzer.h @@ -26,11 +26,12 @@ #include <condition_variable> #include <api/plugin_api.h> // include plugin development definitions -#include "protocols/nfsv3_protocol.h" -#include "protocols/nfsv4_protocol.h" -#include "protocols/nfsv41_protocol.h" + #include "protocols/cifsv1_protocol.h" #include "protocols/cifsv2_protocol.h" +#include "protocols/nfsv3_protocol.h" +#include "protocols/nfsv41_protocol.h" +#include "protocols/nfsv4_protocol.h" #include "user_gui.h" //------------------------------------------------------------------------------ class WatchAnalyzer : public IAnalyzer @@ -110,8 +111,8 @@ public: const struct NFS3::COMMIT3res*) override final; // NFS v4 virtual void null4(const RPCProcedure*, - const struct NFS4::NULL4args*, - const struct NFS4::NULL4res*) override final; + const struct NFS4::NULL4args*, + const struct NFS4::NULL4res*) override final; virtual void compound4(const RPCProcedure*, const struct NFS4::COMPOUND4args*, const struct NFS4::COMPOUND4res*) override final; @@ -492,9 +493,8 @@ public: virtual void breakOplockSMBv2(const SMBv2::BreakOpLockCommand*, const SMBv2::OplockAcknowledgment*, const SMBv2::OplockResponse*) override final; private: - void count_proc(const RPCProcedure* proc); - void cifs_account(AbstractProtocol &protocol, int cmd_code); + void cifs_account(AbstractProtocol& protocol, int cmd_code); void nfs_account(const RPCProcedure*, const unsigned int nfs_minor_vers = NFS_V41); void account40_op(const RPCProcedure*, const ProcEnumNFS4::NFSProcedure); @@ -506,9 +506,9 @@ private: NFSv4Protocol _nfsv4; NFSv3Protocol _nfsv3; - std::vector<AbstractProtocol* > protocols; - UserGUI gui; + std::vector<AbstractProtocol*> protocols; + UserGUI gui; }; //------------------------------------------------------------------------------ -#endif//WATCH_ANALYZER_H +#endif //WATCH_ANALYZER_H //------------------------------------------------------------------------------ |