analyzers/src/breakdown/analyzer.cpp (34 lines of code) (raw):

///------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Operation CIFS analyzer. Identify clients that are busier than others. // Copyright (c) 2015 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see <http://www.gnu.org/licenses/>. */ //------------------------------------------------------------------------------ #include <api/plugin_api.h> #include "cifsv1breakdownanalyzer.h" #include "cifsv2breakdownanalyzer.h" #include "nfsv3breakdownanalyzer.h" #include "nfsv41breakdownanalyzer.h" #include "nfsv4breakdownanalyzer.h" //------------------------------------------------------------------------------ using namespace NST::breakdown; //------------------------------------------------------------------------------ /*! Compositor of analyzers of differents protocols * Class inherits implementation, each child has only "final overrriden" protocol events callbacks */ class Analyzer : public CIFSBreakdownAnalyzer, public CIFSv2BreakdownAnalyzer, public NFSv3BreakdownAnalyzer, public NFSv4BreakdownAnalyzer, public NFSv41BreakdownAnalyzer { public: void flush_statistics() override final { CIFSBreakdownAnalyzer::flush_statistics(); CIFSv2BreakdownAnalyzer::flush_statistics(); NFSv3BreakdownAnalyzer::flush_statistics(); NFSv4BreakdownAnalyzer::flush_statistics(); NFSv41BreakdownAnalyzer::flush_statistics(); } }; extern "C" { const char* usage() { return "No options"; } IAnalyzer* create(const char*) { return new Analyzer(); } void destroy(IAnalyzer* instance) { delete instance; } NST_PLUGIN_ENTRY_POINTS(&usage, &create, &destroy, nullptr) } //extern "C" //------------------------------------------------------------------------------