diff --git a/net/http/inc/TRootSnifferStore.h b/net/http/inc/TRootSnifferStore.h index 7582d2f3c4a08f04becb7b1b0eba919598f5aec1..36f9f166f12e32ec9367dc542538af9a36c1be48 100644 --- a/net/http/inc/TRootSnifferStore.h +++ b/net/http/inc/TRootSnifferStore.h @@ -23,14 +23,13 @@ class TFolder; class TRootSnifferStore : public TObject { protected: - void *fResPtr; ///<! pointer on found item - TClass *fResClass; ///<! class of found item - TDataMember *fResMember; ///<! datamember pointer of found item - Int_t fResNumChilds; ///<! count of found childs, -1 by default - Int_t fResRestrict; ///<! restriction for result, 0-default, 1-readonly, 2-full + void *fResPtr{nullptr}; ///<! pointer on found item + TClass *fResClass{nullptr}; ///<! class of found item + TDataMember *fResMember{nullptr}; ///<! datamember pointer of found item + Int_t fResNumChilds{-1}; ///<! count of found childs, -1 by default + Int_t fResRestrict{0}; ///<! restriction for result, 0-default, 1-readonly, 2-full public: - TRootSnifferStore(); - virtual ~TRootSnifferStore(); + virtual ~TRootSnifferStore() = default; virtual void CreateNode(Int_t, const char *) {} virtual void SetField(Int_t, const char *, const char *, Bool_t) {} @@ -55,24 +54,22 @@ public: class TRootSnifferStoreXml : public TRootSnifferStore { protected: - TString *fBuf; ///<! output buffer - Bool_t fCompact; ///<! produce compact xml code + TString &fBuf; ///<! output buffer + Bool_t fCompact{kFALSE}; ///<! produce compact xml code public: - TRootSnifferStoreXml(TString &_buf, Bool_t _compact = kFALSE) : TRootSnifferStore(), fBuf(&_buf), fCompact(_compact) + explicit TRootSnifferStoreXml(TString &_buf, Bool_t _compact = kFALSE) : TRootSnifferStore(), fBuf(_buf), fCompact(_compact) { } - virtual ~TRootSnifferStoreXml() {} + void CreateNode(Int_t lvl, const char *nodename) final; + void SetField(Int_t lvl, const char *field, const char *value, Bool_t) final; + void BeforeNextChild(Int_t lvl, Int_t nchld, Int_t) final; + void CloseNode(Int_t lvl, Int_t numchilds) final; - virtual void CreateNode(Int_t lvl, const char *nodename); - virtual void SetField(Int_t lvl, const char *field, const char *value, Bool_t); - virtual void BeforeNextChild(Int_t lvl, Int_t nchld, Int_t); - virtual void CloseNode(Int_t lvl, Int_t numchilds); + Bool_t IsXml() const final { return kTRUE; } - virtual Bool_t IsXml() const { return kTRUE; } - - ClassDef(TRootSnifferStoreXml, 0) // xml results store of objects sniffer + ClassDefOverride(TRootSnifferStoreXml, 0) // xml results store of objects sniffer }; // ======================================================================== @@ -81,20 +78,19 @@ public: class TRootSnifferStoreJson : public TRootSnifferStore { protected: - TString *fBuf; ///<! output buffer - Bool_t fCompact; ///<! produce compact json code + TString &fBuf; ///<! output buffer + Bool_t fCompact{kFALSE}; ///<! produce compact json code public: - TRootSnifferStoreJson(TString &_buf, Bool_t _compact = kFALSE) : TRootSnifferStore(), fBuf(&_buf), fCompact(_compact) + explicit TRootSnifferStoreJson(TString &_buf, Bool_t _compact = kFALSE) : TRootSnifferStore(), fBuf(_buf), fCompact(_compact) { } - virtual ~TRootSnifferStoreJson() {} - virtual void CreateNode(Int_t lvl, const char *nodename); - virtual void SetField(Int_t lvl, const char *field, const char *value, Bool_t with_quotes); - virtual void BeforeNextChild(Int_t lvl, Int_t nchld, Int_t nfld); - virtual void CloseNode(Int_t lvl, Int_t numchilds); + void CreateNode(Int_t lvl, const char *nodename) final; + void SetField(Int_t lvl, const char *field, const char *value, Bool_t with_quotes) final; + void BeforeNextChild(Int_t lvl, Int_t nchld, Int_t nfld) final; + void CloseNode(Int_t lvl, Int_t numchilds) final; - ClassDef(TRootSnifferStoreJson, 0) // json results store of objects sniffer + ClassDefOverride(TRootSnifferStoreJson, 0) // json results store of objects sniffer }; #endif diff --git a/net/http/src/TRootSnifferStore.cxx b/net/http/src/TRootSnifferStore.cxx index 9d7a6485a7156ba627dce948926a87710b3859d7..ebc5562c89cca90e1dc7c8f4dbf4775397286f48 100644 --- a/net/http/src/TRootSnifferStore.cxx +++ b/net/http/src/TRootSnifferStore.cxx @@ -21,21 +21,6 @@ ClassImp(TRootSnifferStore); - //////////////////////////////////////////////////////////////////////////////// - /// normal constructor - - TRootSnifferStore::TRootSnifferStore() - : TObject(), fResPtr(0), fResClass(0), fResMember(0), fResNumChilds(-1), fResRestrict(0) -{ -} - -//////////////////////////////////////////////////////////////////////////////// -/// destructor - -TRootSnifferStore::~TRootSnifferStore() -{ -} - //////////////////////////////////////////////////////////////////////////////// /// set pointer on found element, class and number of childs @@ -60,12 +45,12 @@ void TRootSnifferStore::SetResult(void *_res, TClass *_rescl, TDataMember *_resm ClassImp(TRootSnifferStoreXml); - //////////////////////////////////////////////////////////////////////////////// - /// starts new xml node, will be closed by CloseNode +//////////////////////////////////////////////////////////////////////////////// +/// starts new xml node, will be closed by CloseNode void TRootSnifferStoreXml::CreateNode(Int_t lvl, const char *nodename) { - fBuf->Append(TString::Format("%*s<item _name=\"%s\"", fCompact ? 0 : (lvl + 1) * 2, "", nodename)); + fBuf.Append(TString::Format("%*s<item _name=\"%s\"", fCompact ? 0 : (lvl + 1) * 2, "", nodename)); } //////////////////////////////////////////////////////////////////////////////// @@ -74,23 +59,23 @@ ClassImp(TRootSnifferStoreXml); void TRootSnifferStoreXml::SetField(Int_t, const char *field, const char *value, Bool_t) { if (strpbrk(value, "<>&\'\"") == 0) { - fBuf->Append(TString::Format(" %s=\"%s\"", field, value)); + fBuf.Append(TString::Format(" %s=\"%s\"", field, value)); } else { - fBuf->Append(TString::Format(" %s=\"", field)); + fBuf.Append(TString::Format(" %s=\"", field)); const char *v = value; while (*v != 0) { switch (*v) { - case '<': fBuf->Append("<"); break; - case '>': fBuf->Append(">"); break; - case '&': fBuf->Append("&"); break; - case '\'': fBuf->Append("'"); break; - case '\"': fBuf->Append("""); break; - default: fBuf->Append(*v); break; + case '<': fBuf.Append("<"); break; + case '>': fBuf.Append(">"); break; + case '&': fBuf.Append("&"); break; + case '\'': fBuf.Append("'"); break; + case '\"': fBuf.Append("""); break; + default: fBuf.Append(*v); break; } v++; } - fBuf->Append("\""); + fBuf.Append("\""); } } @@ -99,7 +84,7 @@ void TRootSnifferStoreXml::SetField(Int_t, const char *field, const char *value, void TRootSnifferStoreXml::BeforeNextChild(Int_t, Int_t nchld, Int_t) { - if (nchld == 0) fBuf->Append(TString::Format(">%s", (fCompact ? "" : "\n"))); + if (nchld == 0) fBuf.Append(TString::Format(">%s", (fCompact ? "" : "\n"))); } //////////////////////////////////////////////////////////////////////////////// @@ -109,9 +94,9 @@ void TRootSnifferStoreXml::BeforeNextChild(Int_t, Int_t nchld, Int_t) void TRootSnifferStoreXml::CloseNode(Int_t lvl, Int_t numchilds) { if (numchilds > 0) - fBuf->Append(TString::Format("%*s</item>%s", fCompact ? 0 : (lvl + 1) * 2, "", (fCompact ? "" : "\n"))); + fBuf.Append(TString::Format("%*s</item>%s", fCompact ? 0 : (lvl + 1) * 2, "", (fCompact ? "" : "\n"))); else - fBuf->Append(TString::Format("/>%s", (fCompact ? "" : "\n"))); + fBuf.Append(TString::Format("/>%s", (fCompact ? "" : "\n"))); } // ============================================================================ @@ -126,14 +111,14 @@ void TRootSnifferStoreXml::CloseNode(Int_t lvl, Int_t numchilds) ClassImp(TRootSnifferStoreJson); - //////////////////////////////////////////////////////////////////////////////// - /// starts new json object, will be closed by CloseNode +//////////////////////////////////////////////////////////////////////////////// +/// starts new json object, will be closed by CloseNode - void TRootSnifferStoreJson::CreateNode(Int_t lvl, const char *nodename) +void TRootSnifferStoreJson::CreateNode(Int_t lvl, const char *nodename) { - fBuf->Append(TString::Format("%*s{", fCompact ? 0 : lvl * 4, "")); - if (!fCompact) fBuf->Append("\n"); - fBuf->Append( + fBuf.Append(TString::Format("%*s{", fCompact ? 0 : lvl * 4, "")); + if (!fCompact) fBuf.Append("\n"); + fBuf.Append( TString::Format("%*s\"_name\"%s\"%s\"", fCompact ? 0 : lvl * 4 + 2, "", (fCompact ? ":" : " : "), nodename)); } @@ -142,29 +127,29 @@ ClassImp(TRootSnifferStoreJson); void TRootSnifferStoreJson::SetField(Int_t lvl, const char *field, const char *value, Bool_t with_quotes) { - fBuf->Append(","); - if (!fCompact) fBuf->Append("\n"); - fBuf->Append(TString::Format("%*s\"%s\"%s", fCompact ? 0 : lvl * 4 + 2, "", field, (fCompact ? ":" : " : "))); + fBuf.Append(","); + if (!fCompact) fBuf.Append("\n"); + fBuf.Append(TString::Format("%*s\"%s\"%s", fCompact ? 0 : lvl * 4 + 2, "", field, (fCompact ? ":" : " : "))); if (!with_quotes) { - fBuf->Append(value); + fBuf.Append(value); } else { - fBuf->Append("\""); + fBuf.Append("\""); for (const char *v = value; *v != 0; v++) switch (*v) { - case '\n': fBuf->Append("\\n"); break; - case '\t': fBuf->Append("\\t"); break; - case '\"': fBuf->Append("\\\""); break; - case '\\': fBuf->Append("\\\\"); break; - case '\b': fBuf->Append("\\b"); break; - case '\f': fBuf->Append("\\f"); break; - case '\r': fBuf->Append("\\r"); break; - case '/': fBuf->Append("\\/"); break; + case '\n': fBuf.Append("\\n"); break; + case '\t': fBuf.Append("\\t"); break; + case '\"': fBuf.Append("\\\""); break; + case '\\': fBuf.Append("\\\\"); break; + case '\b': fBuf.Append("\\b"); break; + case '\f': fBuf.Append("\\f"); break; + case '\r': fBuf.Append("\\r"); break; + case '/': fBuf.Append("\\/"); break; default: if ((*v > 31) && (*v < 127)) - fBuf->Append(*v); + fBuf.Append(*v); else - fBuf->Append(TString::Format("\\u%04x", (unsigned)*v)); + fBuf.Append(TString::Format("\\u%04x", (unsigned)*v)); } - fBuf->Append("\""); + fBuf.Append("\""); } } @@ -173,10 +158,10 @@ void TRootSnifferStoreJson::SetField(Int_t lvl, const char *field, const char *v void TRootSnifferStoreJson::BeforeNextChild(Int_t lvl, Int_t nchld, Int_t) { - fBuf->Append(","); - if (!fCompact) fBuf->Append("\n"); + fBuf.Append(","); + if (!fCompact) fBuf.Append("\n"); if (nchld == 0) - fBuf->Append(TString::Format("%*s\"_childs\"%s", (fCompact ? 0 : lvl * 4 + 2), "", (fCompact ? ":[" : " : [\n"))); + fBuf.Append(TString::Format("%*s\"_childs\"%s", (fCompact ? 0 : lvl * 4 + 2), "", (fCompact ? ":[" : " : [\n"))); } //////////////////////////////////////////////////////////////////////////////// @@ -185,6 +170,7 @@ void TRootSnifferStoreJson::BeforeNextChild(Int_t lvl, Int_t nchld, Int_t) void TRootSnifferStoreJson::CloseNode(Int_t lvl, Int_t numchilds) { - if (numchilds > 0) fBuf->Append(TString::Format("%s%*s]", (fCompact ? "" : "\n"), fCompact ? 0 : lvl * 4 + 2, "")); - fBuf->Append(TString::Format("%s%*s}", (fCompact ? "" : "\n"), fCompact ? 0 : lvl * 4, "")); + if (numchilds > 0) + fBuf.Append(TString::Format("%s%*s]", (fCompact ? "" : "\n"), fCompact ? 0 : lvl * 4 + 2, "")); + fBuf.Append(TString::Format("%s%*s}", (fCompact ? "" : "\n"), fCompact ? 0 : lvl * 4, "")); }