4#include "KVSeqCollection.h"
107 TClass* cl = TClass::GetClass(class_name);
109 Error(
"SetCollection(const Char_t*)",
"Called for unknown class: %s",
113 if (!cl->InheritsFrom(
"TSeqCollection")) {
114 Error(
"SetCollection(const Char_t*)",
115 "Called for class %s which does not inherit from TSeqCollection",
123 if (strcmp(
GetName(),
"KVSeqCollection"))
218 while ((
b = next())) {
220 copy.
Add(
b->Clone());
396 printf(
"Collection name='%s', embedded list class='%s', size=%d\n",
GetName(),
415 while ((obj = next())) {
435 while ((obj = next())) {
436 if (!strcmp(obj->
GetTitle(), title))
453 while ((obj = next())) {
454 if (obj->
IsA() == cl)
return obj;
486 while ((obj = next())) {
488 if (!strcmp(((
KVBase*)obj)->GetLabel(), label))
return obj;
510 while ((obj = next())) {
512 if (((
KVBase*)obj)->GetNumber() == num)
return obj;
533 while ((obj = next())) {
562 if (retvalue && method) {
568 while ((obj = next())) {
575 if (ret !=
nullptr) {
591 if (ret == RV.
Atoi()) {
598 if (ret == RV.
Atof()) {
602 else Error(
"FindObjectWithMethod",
"Return type %d is not supported", (
int)mt.
ReturnType());
625 while ((obj = next())) {
626 obj->
Execute(method, params, error);
646 while ((obj = next())) {
647 obj->
Execute(method, params, error);
687 if (!strcmp(att,
"name")) char_test =
kName;
688 else if (!strcmp(att,
"title")) char_test =
kTitle;
689 else if (!strcmp(att,
"type")) char_test = kType;
690 else if (!strcmp(att,
"label")) char_test = kLabel;
691 else if (!strcmp(att,
"class")) char_test =
kClass;
694 TString::ECaseCompare casecmp;
695 if (case_sensitive) casecmp = TString::kExact;
696 else casecmp = TString::kIgnoreCase;
699 unique_ptr<TObjArray> keywords(_keys.
Tokenize(
' '));
700 if (!keywords.get())
return nullptr;
702 if (!(nkeys = keywords->GetEntries())) {
710 while ((obj = next())) {
734 for (
int i = 0; i < nkeys; i++) {
737 if ((nmatches && !contains_all) || ((nmatches == nkeys) && contains_all)) {
780 while ((ob = next())) {
781 if (_class == ob->
IsA()) outputList->
Add(ob);
862 if (retvalue && method) {
868 while ((ob = next())) {
882 if (RV == ret) outputList->
Add(ob);
891 if (ret == RV.
Atoi()) outputList->
Add(ob);
896 if (ret == RV.
Atof()) outputList->
Add(ob);
898 else std::cout <<
"this type is not supported " << (int)mt.
ReturnType() << std::endl;
1122 Info(
"SetCleanup",
"A list with same name (%s) is already in cleanups list. Changed to %s.",
1161#if ROOT_VERSION_CODE >= ROOT_VERSION(6,0,0)
1167 fQObject.Streamer(R__b);
1180 fQObject.Streamer(R__b);
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t b
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
char * Form(const char *fmt,...)
Base class for KaliVeda framework.
const Char_t * GetLabel() const
virtual const Char_t * GetType() const
KaliVeda extensions to ROOT collection classes.
virtual TObject * FindObjectByLabel(const Char_t *) const
static Long64_t fSCCounter
counter used to give unique names to all lists
virtual ~KVSeqCollection()
virtual void Copy(TObject &obj) const
KVSeqCollection * GetSubListWithName(const Char_t *retvalue) const
KVSeqCollection * GetSubListWithMethod(const Char_t *retvalue, const Char_t *method) const
KVSeqCollection & operator=(const KVSeqCollection &)
virtual TObject ** GetObjectRef(const TObject *obj) const
Return reference to object.
static TSeqCollection * fgCleanups
regroup all lists which are to be cleaned up
virtual void SendModifiedSignals(Bool_t yes=kTRUE)
virtual KVSeqCollection * NewCollectionLikeThisOne() const
virtual Bool_t IsCleanup() const
virtual void SetCollection(const Char_t *)
KVSeqCollection * GetSubListWithClass(const TClass *_class) const
TSeqCollection * fCollection
Pointer to embedded ROOT collection.
virtual void SetOwner(Bool_t enable=kTRUE)
virtual void Clear(Option_t *option="")
virtual Int_t GetSize() const
virtual TObject * FindObjectAny(const Char_t *att, const Char_t *keys, Bool_t contains_all=kFALSE, Bool_t case_sensitive=kTRUE) const
TObject * FindObjectByClass(const Char_t *) const
Return (first) object in embedded list with given class.
KVSeqCollection * GetSubListWithType(const Char_t *retvalue) const
virtual void _GetSubListWithMethod(KVSeqCollection *, TCollection *, const Char_t *, const Char_t *) const
virtual void Execute(const char *method, const char *params, Int_t *error=0)
KVSeqCollection()
Default constructor.
virtual Bool_t IsSendingModifiedSignals() const
static void RehashCleanupList()
static Int_t fgCounter
counts instances
virtual void PrintCollectionHeader(Option_t *option) const
Overrides TCollection::PrintCollectionHeader to show the class name of the embedded list.
virtual void SetCleanup(Bool_t enable=kTRUE)
static KVSeqCollection * MakeListFromFileWithClass(TFile *file, const TClass *_class)
virtual TObject * FindObjectByNumber(UInt_t num) const
virtual TObject * FindObjectWithMethod(const Char_t *retvalue, const Char_t *method) const
static KVSeqCollection * MakeListFromFile(TFile *file)
virtual TObject * FindObjectByType(const Char_t *) const
virtual TObject * FindObjectByTitle(const Char_t *) const
Will return object with given title (value of TObject::GetTitle() method).
virtual void Add(TObject *obj)
virtual TObject * FindObjectWithNameAndType(const Char_t *name, const Char_t *type) const
virtual TIterator * MakeIterator(Bool_t dir=kIterForward) const
Make and return iterator for the list.
KVSeqCollection * GetSubListWithLabel(const Char_t *retvalue) const
virtual TObject * Remove(TObject *obj)
Remove object from list.
virtual void Delete(Option_t *option="")
static KVSeqCollection * MakeListFromFileWithMethod(TFile *file, const Char_t *retvalue, const Char_t *method)
@ kCleanup
in ROOT v6 BIT(16) is used by TCollection - without changing the class version
void _GetSubListWithClass(KVSeqCollection *, TCollection *, const TClass *) const
virtual void RecursiveRemove(TObject *obj)
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....
virtual Version_t ReadVersion(UInt_t *start=nullptr, UInt_t *bcnt=nullptr, const TClass *cl=nullptr)=0
virtual void SetByteCount(UInt_t cntpos, Bool_t packInVersion=kFALSE)=0
virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const char *classname)=0
virtual UInt_t WriteVersion(const TClass *cl, Bool_t useBcnt=kFALSE)=0
void * New(ENewType defConstructor=kClassNew, Bool_t quiet=kFALSE) const
virtual TObject ** GetObjectRef(const TObject *obj) const=0
virtual TObject * Remove(TObject *obj)=0
virtual TIterator * MakeIterator(Bool_t dir=kIterForward) const=0
void RecursiveRemove(TObject *obj) override
void SetName(const char *name)
void Streamer(TBuffer &) override
const char * GetName() const override
TClass * IsA() const override
virtual void SetOwner(Bool_t enable=kTRUE)
TObject * FindObject(const char *name) const override
void Delete(Option_t *option="") override=0
void Clear(Option_t *option="") override=0
virtual Int_t GetSize() const
virtual TObject * ReadObj()
static const EReturnType kLong
void InitWithPrototype(const char *function, const char *proto, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch)
static const EReturnType kString
static const EReturnType kDouble
virtual const char * GetName() const
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
virtual const char * ClassName() const
virtual void Execute(const char *method, const char *params, Int_t *error=nullptr)
virtual Bool_t InheritsFrom(const char *classname) const
virtual void Copy(TObject &object) const
virtual void Error(const char *method, const char *msgfmt,...) const
virtual const char * GetTitle() const
virtual TClass * IsA() const
virtual void Info(const char *method, const char *msgfmt,...) const
static void IndentLevel()
TClass * IsA() const override
void Streamer(TBuffer &) override
void Add(TObject *obj) override
const char * Data() const
TObjArray * Tokenize(const TString &delim) const
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
Type GetType(const std::string &Name)