//------------------------------------------------------------------------------ // Author: Ilya Storozhilov // Description: JSON analyzer class declaration // Copyright (c) 2013-2014 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 . */ //------------------------------------------------------------------------------ #ifndef JSON_ANALYZER_H #define JSON_ANALYZER_H //------------------------------------------------------------------------------ #include #include "api/ianalyzer.h" #include "json_tcp_service.h" //------------------------------------------------------------------------------ using namespace NST::API; class JsonAnalyzer : public IAnalyzer { 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 readdirplusProcsAmount = {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 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 get_dir_delegationOpsAmount = {0}; std::atomic_int illegalOpsAmount = {0}; }; struct NfsV41Stat { // Procedures: 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 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}; }; JsonAnalyzer(std::size_t workersAmount, int port, const std::string& host, std::size_t maxServingDurationMs, int backlog); ~JsonAnalyzer(); // NFSv3 procedures void null(const RPCProcedure* /*proc*/, const struct NFS3::NULL3args* /*args*/, const struct NFS3::NULL3res* /*res*/) override final; void getattr3(const RPCProcedure* /*proc*/, const struct NFS3::GETATTR3args* /*args*/, const struct NFS3::GETATTR3res* /*res*/) override final; void setattr3(const RPCProcedure* /*proc*/, const struct NFS3::SETATTR3args* /*args*/, const struct NFS3::SETATTR3res* /*res*/) override final; void lookup3(const RPCProcedure* /*proc*/, const struct NFS3::LOOKUP3args* /*args*/, const struct NFS3::LOOKUP3res* /*res*/) override final; void access3(const RPCProcedure* /*proc*/, const struct NFS3::ACCESS3args* /*args*/, const struct NFS3::ACCESS3res* /*res*/) override final; void readlink3(const RPCProcedure* /*proc*/, const struct NFS3::READLINK3args* /*args*/, const struct NFS3::READLINK3res* /*res*/) override final; void read3(const RPCProcedure* /*proc*/, const struct NFS3::READ3args* /*args*/, const struct NFS3::READ3res* /*res*/) override final; void write3(const RPCProcedure* /*proc*/, const struct NFS3::WRITE3args* /*args*/, const struct NFS3::WRITE3res* /*res*/) override final; void create3(const RPCProcedure* /*proc*/, const struct NFS3::CREATE3args* /*args*/, const struct NFS3::CREATE3res* /*res*/) override final; void mkdir3(const RPCProcedure* /*proc*/, const struct NFS3::MKDIR3args* /*args*/, const struct NFS3::MKDIR3res* /*res*/) override final; void symlink3(const RPCProcedure* /*proc*/, const struct NFS3::SYMLINK3args* /*args*/, const struct NFS3::SYMLINK3res* /*res*/) override final; void mknod3(const RPCProcedure* /*proc*/, const struct NFS3::MKNOD3args* /*args*/, const struct NFS3::MKNOD3res* /*res*/) override final; void remove3(const RPCProcedure* /*proc*/, const struct NFS3::REMOVE3args* /*args*/, const struct NFS3::REMOVE3res* /*res*/) override final; void rmdir3(const RPCProcedure* /*proc*/, const struct NFS3::RMDIR3args* /*args*/, const struct NFS3::RMDIR3res* /*res*/) override final; void rename3(const RPCProcedure* /*proc*/, const struct NFS3::RENAME3args* /*args*/, const struct NFS3::RENAME3res* /*res*/) override final; void link3(const RPCProcedure* /*proc*/, const struct NFS3::LINK3args* /*args*/, const struct NFS3::LINK3res* /*res*/) override final; void readdir3(const RPCProcedure* /*proc*/, const struct NFS3::READDIR3args* /*args*/, const struct NFS3::READDIR3res* /*res*/) override final; void readdirplus3(const RPCProcedure* /*proc*/, const struct NFS3::READDIRPLUS3args* /*args*/, const struct NFS3::READDIRPLUS3res* /*res*/) override final; void fsstat3(const RPCProcedure* /*proc*/, const struct NFS3::FSSTAT3args* /*args*/, const struct NFS3::FSSTAT3res* /*res*/) override final; void fsinfo3(const RPCProcedure* /*proc*/, const struct NFS3::FSINFO3args* /*args*/, const struct NFS3::FSINFO3res* /*res*/) override final; void pathconf3(const RPCProcedure* /*proc*/, const struct NFS3::PATHCONF3args* /*args*/, const struct NFS3::PATHCONF3res* /*res*/) override final; void commit3(const RPCProcedure* /*proc*/, const struct NFS3::COMMIT3args* /*args*/, 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; void compound4(const RPCProcedure* /*proc*/, const struct NFS4::COMPOUND4args* /*args*/, const struct NFS4::COMPOUND4res* /*res*/) override final; // NFS4.0 operations void access40(const RPCProcedure* /* proc */, 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; void commit40(const RPCProcedure* /* proc */, const struct NFS4::COMMIT4args* /* args */, const struct NFS4::COMMIT4res* res) override final; void create40(const RPCProcedure* /* proc */, const struct NFS4::CREATE4args* /* args */, const struct NFS4::CREATE4res* res) override final; void delegpurge40(const RPCProcedure* /* proc */, const struct NFS4::DELEGPURGE4args* /* args */, const struct NFS4::DELEGPURGE4res* res) override final; void delegreturn40(const RPCProcedure* /* proc */, const struct NFS4::DELEGRETURN4args* /* args */, const struct NFS4::DELEGRETURN4res* res) override final; void getattr40(const RPCProcedure* /* proc */, const struct NFS4::GETATTR4args* /* args */, const struct NFS4::GETATTR4res* res) override final; void getfh40(const RPCProcedure* /* proc */, const struct NFS4::GETFH4res* res) override final; void link40(const RPCProcedure* /* proc */, const struct NFS4::LINK4args* /* args */, const struct NFS4::LINK4res* res) override final; void lock40(const RPCProcedure* /* proc */, const struct NFS4::LOCK4args* /* args */, const struct NFS4::LOCK4res* res) override final; void lockt40(const RPCProcedure* /* proc */, const struct NFS4::LOCKT4args* /* args */, const struct NFS4::LOCKT4res* res) override final; void locku40(const RPCProcedure* /* proc */, const struct NFS4::LOCKU4args* /* args */, const struct NFS4::LOCKU4res* res) override final; void lookup40(const RPCProcedure* /* proc */, const struct NFS4::LOOKUP4args* /* args */, const struct NFS4::LOOKUP4res* res) override final; void lookupp40(const RPCProcedure* /* proc */, const struct NFS4::LOOKUPP4res* res) override final; void nverify40(const RPCProcedure* /* proc */, const struct NFS4::NVERIFY4args* /* args */, const struct NFS4::NVERIFY4res* res) override final; void open40(const RPCProcedure* /* proc */, const struct NFS4::OPEN4args* /* args */, const struct NFS4::OPEN4res* res) override final; void openattr40(const RPCProcedure* /* proc */, const struct NFS4::OPENATTR4args* /* args */, const struct NFS4::OPENATTR4res* res) override final; void open_confirm40(const RPCProcedure* /* proc */, const struct NFS4::OPEN_CONFIRM4args* /* args */, const struct NFS4::OPEN_CONFIRM4res* res) override final; void open_downgrade40(const RPCProcedure* /* proc */, const struct NFS4::OPEN_DOWNGRADE4args* /* args */, const struct NFS4::OPEN_DOWNGRADE4res* res) override final; void putfh40(const RPCProcedure* /* proc */, const struct NFS4::PUTFH4args* /* args */, const struct NFS4::PUTFH4res* res) override final; void putpubfh40(const RPCProcedure* /* proc */, const struct NFS4::PUTPUBFH4res* res) override final; void putrootfh40(const RPCProcedure* /* proc */, const struct NFS4::PUTROOTFH4res* res) override final; void read40(const RPCProcedure* /* proc */, const struct NFS4::READ4args* /* args */, const struct NFS4::READ4res* res) override final; void readdir40(const RPCProcedure* /* proc */, const struct NFS4::READDIR4args* /* args */, const struct NFS4::READDIR4res* res) override final; void readlink40(const RPCProcedure* /* proc */, const struct NFS4::READLINK4res* res) override final; void remove40(const RPCProcedure* /* proc */, const struct NFS4::REMOVE4args* /* args */, const struct NFS4::REMOVE4res* res) override final; void rename40(const RPCProcedure* /* proc */, const struct NFS4::RENAME4args* /* args */, const struct NFS4::RENAME4res* res) override final; void renew40(const RPCProcedure* /* proc */, const struct NFS4::RENEW4args* /* args */, const struct NFS4::RENEW4res* res) override final; void restorefh40(const RPCProcedure* /* proc */, const struct NFS4::RESTOREFH4res* res) override final; void savefh40(const RPCProcedure* /* proc */, const struct NFS4::SAVEFH4res* res) override final; void secinfo40(const RPCProcedure* /* proc */, const struct NFS4::SECINFO4args* /* args */, const struct NFS4::SECINFO4res* res) override final; void setattr40(const RPCProcedure* /* proc */, const struct NFS4::SETATTR4args* /* args */, const struct NFS4::SETATTR4res* res) override final; void setclientid40(const RPCProcedure* /* proc */, const struct NFS4::SETCLIENTID4args* /* args */, const struct NFS4::SETCLIENTID4res* res) override final; void setclientid_confirm40(const RPCProcedure* /* proc */, const struct NFS4::SETCLIENTID_CONFIRM4args* /* args */, const struct NFS4::SETCLIENTID_CONFIRM4res* res) override final; void verify40(const RPCProcedure* /* proc */, const struct NFS4::VERIFY4args* /* args */, const struct NFS4::VERIFY4res* res) override final; void write40(const RPCProcedure* /* proc */, const struct NFS4::WRITE4args* /* args */, const struct NFS4::WRITE4res* res) override final; void release_lockowner40(const RPCProcedure* /* proc */, const struct NFS4::RELEASE_LOCKOWNER4args* /* args */, const struct NFS4::RELEASE_LOCKOWNER4res* res) override final; void get_dir_delegation40(const RPCProcedure* /* proc */, const struct NFS4::GET_DIR_DELEGATION4args* /* args */, const struct NFS4::GET_DIR_DELEGATION4res* res) override final; void illegal40(const RPCProcedure* /* proc */, 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; // NFSv4.1 operations void access41(const RPCProcedure* /* proc */, 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; void commit41(const RPCProcedure* /* proc */, const struct NFS41::COMMIT4args* /* args */, const struct NFS41::COMMIT4res* res) override final; void create41(const RPCProcedure* /* proc */, const struct NFS41::CREATE4args* /* args */, const struct NFS41::CREATE4res* res) override final; void delegpurge41(const RPCProcedure* /* proc */, const struct NFS41::DELEGPURGE4args* /* args */, const struct NFS41::DELEGPURGE4res* res) override final; void delegreturn41(const RPCProcedure* /* proc */, const struct NFS41::DELEGRETURN4args* /* args */, const struct NFS41::DELEGRETURN4res* res) override final; void getattr41(const RPCProcedure* /* proc */, const struct NFS41::GETATTR4args* /* args */, const struct NFS41::GETATTR4res* res) override final; void getfh41(const RPCProcedure* /* proc */, const struct NFS41::GETFH4res* res) override final; void link41(const RPCProcedure* /* proc */, const struct NFS41::LINK4args* /* args */, const struct NFS41::LINK4res* res) override final; void lock41(const RPCProcedure* /* proc */, const struct NFS41::LOCK4args* /* args */, const struct NFS41::LOCK4res* res) override final; void lockt41(const RPCProcedure* /* proc */, const struct NFS41::LOCKT4args* /* args */, const struct NFS41::LOCKT4res* res) override final; void locku41(const RPCProcedure* /* proc */, const struct NFS41::LOCKU4args* /* args */, const struct NFS41::LOCKU4res* res) override final; void lookup41(const RPCProcedure* /* proc */, const struct NFS41::LOOKUP4args* /* args */, const struct NFS41::LOOKUP4res* res) override final; void lookupp41(const RPCProcedure* /* proc */, const struct NFS41::LOOKUPP4res* res) override final; void nverify41(const RPCProcedure* /* proc */, const struct NFS41::NVERIFY4args* /* args */, const struct NFS41::NVERIFY4res* res) override final; void open41(const RPCProcedure* /* proc */, const struct NFS41::OPEN4args* /* args */, const struct NFS41::OPEN4res* res) override final; void openattr41(const RPCProcedure* /* proc */, const struct NFS41::OPENATTR4args* /* args */, const struct NFS41::OPENATTR4res* res) override final; void open_confirm41(const RPCProcedure* /* proc */, const struct NFS41::OPEN_CONFIRM4args* /* args */, const struct NFS41::OPEN_CONFIRM4res* res) override final; void open_downgrade41(const RPCProcedure* /* proc */, const struct NFS41::OPEN_DOWNGRADE4args* /* args */, const struct NFS41::OPEN_DOWNGRADE4res* res) override final; void putfh41(const RPCProcedure* /* proc */, const struct NFS41::PUTFH4args* /* args */, const struct NFS41::PUTFH4res* res) override final; void putpubfh41(const RPCProcedure* /* proc */, const struct NFS41::PUTPUBFH4res* res) override final; void putrootfh41(const RPCProcedure* /* proc */, const struct NFS41::PUTROOTFH4res* res) override final; void read41(const RPCProcedure* /* proc */, const struct NFS41::READ4args* /* args */, const struct NFS41::READ4res* res) override final; void readdir41(const RPCProcedure* /* proc */, const struct NFS41::READDIR4args* /* args */, const struct NFS41::READDIR4res* res) override final; void readlink41(const RPCProcedure* /* proc */, const struct NFS41::READLINK4res* res) override final; void remove41(const RPCProcedure* /* proc */, const struct NFS41::REMOVE4args* /* args */, const struct NFS41::REMOVE4res* res) override final; void rename41(const RPCProcedure* /* proc */, const struct NFS41::RENAME4args* /* args */, const struct NFS41::RENAME4res* res) override final; void renew41(const RPCProcedure* /* proc */, const struct NFS41::RENEW4args* /* args */, const struct NFS41::RENEW4res* res) override final; void restorefh41(const RPCProcedure* /* proc */, const struct NFS41::RESTOREFH4res* res) override final; void savefh41(const RPCProcedure* /* proc */, const struct NFS41::SAVEFH4res* res) override final; void secinfo41(const RPCProcedure* /* proc */, const struct NFS41::SECINFO4args* /* args */, const struct NFS41::SECINFO4res* res) override final; void setattr41(const RPCProcedure* /* proc */, const struct NFS41::SETATTR4args* /* args */, const struct NFS41::SETATTR4res* res) override final; void setclientid41(const RPCProcedure* /* proc */, const struct NFS41::SETCLIENTID4args* /* args */, const struct NFS41::SETCLIENTID4res* res) override final; void setclientid_confirm41(const RPCProcedure* /* proc */, const struct NFS41::SETCLIENTID_CONFIRM4args* /* args */, const struct NFS41::SETCLIENTID_CONFIRM4res* res) override final; void verify41(const RPCProcedure* /* proc */, const struct NFS41::VERIFY4args* /* args */, const struct NFS41::VERIFY4res* res) override final; void write41(const RPCProcedure* /* proc */, const struct NFS41::WRITE4args* /* args */, const struct NFS41::WRITE4res* res) override final; void release_lockowner41(const RPCProcedure* /* proc */, const struct NFS41::RELEASE_LOCKOWNER4args* /* args */, const struct NFS41::RELEASE_LOCKOWNER4res* res) override final; void backchannel_ctl41(const RPCProcedure* /* proc */, 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_SESSION4res* res) override final; void exchange_id41(const RPCProcedure* /* proc */, const struct NFS41::EXCHANGE_ID4args* /* args */, const struct NFS41::EXCHANGE_ID4res* res) override final; void create_session41(const RPCProcedure* /* proc */, const struct NFS41::CREATE_SESSION4args* /* args */, const struct NFS41::CREATE_SESSION4res* res) override final; void destroy_session41(const RPCProcedure* /* proc */, const struct NFS41::DESTROY_SESSION4args* /* args */, const struct NFS41::DESTROY_SESSION4res* res) override final; void free_stateid41(const RPCProcedure* /* proc */, const struct NFS41::FREE_STATEID4args* /* args */, const struct NFS41::FREE_STATEID4res* res) override final; void get_dir_delegation41(const RPCProcedure* /* proc */, const struct NFS41::GET_DIR_DELEGATION4args* /* args */, const struct NFS41::GET_DIR_DELEGATION4res* res) override final; void getdeviceinfo41(const RPCProcedure* /* proc */, const struct NFS41::GETDEVICEINFO4args* /* args */, const struct NFS41::GETDEVICEINFO4res* res) override final; void getdevicelist41(const RPCProcedure* /* proc */, const struct NFS41::GETDEVICELIST4args* /* args */, const struct NFS41::GETDEVICELIST4res* res) override final; void layoutcommit41(const RPCProcedure* /* proc */, const struct NFS41::LAYOUTCOMMIT4args* /* args */, const struct NFS41::LAYOUTCOMMIT4res* res) override final; void layoutget41(const RPCProcedure* /* proc */, const struct NFS41::LAYOUTGET4args* /* args */, const struct NFS41::LAYOUTGET4res* res) override final; void layoutreturn41(const RPCProcedure* /* proc */, 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; void sequence41(const RPCProcedure* /* proc */, const struct NFS41::SEQUENCE4args* /* args */, const struct NFS41::SEQUENCE4res* res) override final; void set_ssv41(const RPCProcedure* /* proc */, const struct NFS41::SET_SSV4args* /* args */, const struct NFS41::SET_SSV4res* res) override final; void test_stateid41(const RPCProcedure* /* proc */, const struct NFS41::TEST_STATEID4args* /* args */, const struct NFS41::TEST_STATEID4res* res) override final; void want_delegation41(const RPCProcedure* /* proc */, const struct NFS41::WANT_DELEGATION4args* /* args */, const struct NFS41::WANT_DELEGATION4res* res) override final; void destroy_clientid41(const RPCProcedure* /* proc */, const struct NFS41::DESTROY_CLIENTID4args* /* args */, const struct NFS41::DESTROY_CLIENTID4res* res) override final; void reclaim_complete41(const RPCProcedure* /* proc */, const struct NFS41::RECLAIM_COMPLETE4args* /* args */, const struct NFS41::RECLAIM_COMPLETE4res* res) override final; void illegal41(const RPCProcedure* /* proc */, const struct NFS41::ILLEGAL4res* res) override final; void flush_statistics() override final; inline const NfsV3Stat& getNfsV3Stat() const { return _nfsV3Stat; } inline const NfsV40Stat& getNfsV40Stat() const { return _nfsV40Stat; } inline const NfsV41Stat& getNfsV41Stat() const { return _nfsV41Stat; } private: JsonTcpService _jsonTcpService; NfsV3Stat _nfsV3Stat; NfsV40Stat _nfsV40Stat; NfsV41Stat _nfsV41Stat; }; //------------------------------------------------------------------------------ #endif //JSON_ANALYZER_H //------------------------------------------------------------------------------