Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ClassSelectionRule.h
Go to the documentation of this file.
1
2// @(#)root/core/utils:$Id: ClassSelectionRule.h 28529 2009-05-11 16:43:35Z pcanal $
3// Author: Velislava Spasova September 2010
4
5/*************************************************************************
6 * Copyright (C) 1995-2011, Rene Brun, Fons Rademakers and al. *
7 * All rights reserved. *
8 * *
9 * For the licensing terms see $ROOTSYS/LICENSE. *
10 * For the list of contributors see $ROOTSYS/README/CREDITS. *
11 *************************************************************************/
12
13#ifndef R__CLASSSELECTIONRULE_H
14#define R__CLASSSELECTIONRULE_H
15
16//////////////////////////////////////////////////////////////////////////
17// //
18// ClassSelection //
19// //
20//////////////////////////////////////////////////////////////////////////
21
22#include "BaseSelectionRule.h"
24
25#include <list>
26#include <iosfwd>
27#include <string>
28
29namespace cling {
30 class Interpreter;
31}
32
34{
35private:
36 std::list<VariableSelectionRule> fFieldSelectionRules;
37 std::list<FunctionSelectionRule> fMethodSelectionRules;
39
40 // clang-format off
41 bool fRequestStreamerInfo; // for linkdef.h: true if we had '+' at the end of a class name
42 bool fRequestNoStreamer; // for linkdef.h: true if we had '-' or "-!" at the end of a class name
43 bool fRequestNoInputOperator; // for linkdef.h: true if we had '!' at the end of a class name
44 bool fRequestOnlyTClass; // True if the user want the TClass intiliazer but *not* the interpreter meta data
45 bool fRequestProtected; // Explicit request to be able to access protected member from the interpreter.
46 bool fRequestPrivate; // Explicit request to be able to access private member from the interpreter.
47 int fRequestedVersionNumber; // Explicit request for a specific version number (default to no request with -1).
48 int fRequestedRNTupleSplitMode = 0; // Explicit request for unsplit (-1) or split (=1), defaults to unset (=0)
49 // clang-format on
50
51public:
52
55
56 ClassSelectionRule(long index, cling::Interpreter &interp, const char* selFileName = "", long lineno = -1):
58
59 ClassSelectionRule(long index, bool inherit, ESelect sel, std::string attributeName, std::string attributeValue, cling::Interpreter &interp, const char* selFileName = "", long lineno = -1):
60 BaseSelectionRule(index, sel, attributeName, attributeValue, interp, selFileName, lineno), fIsInheritable(inherit), fRequestStreamerInfo(false), fRequestNoStreamer(false), fRequestNoInputOperator(false), fRequestOnlyTClass(false), fRequestProtected(false), fRequestPrivate(false), fRequestedVersionNumber(-1) {}
61
62 void Print(std::ostream &out) const final;
63
64 void AddFieldSelectionRule(const VariableSelectionRule& field); //adds entry to the filed selections list
65 bool HasFieldSelectionRules() const;
66 //const std::list<VariableSelectionRule>& getFieldSelectionRules(); //gets the field selections list
67 const std::list<VariableSelectionRule>& GetFieldSelectionRules() const; //gets the field selections list
68
69 void AddMethodSelectionRule(const FunctionSelectionRule& method); //adds entry to the method selections list
70 bool HasMethodSelectionRules() const;
71 //const std::list<FunctionSelectionRule>& getMethodSelectionRules(); //gets the method selections list
72 const std::list<FunctionSelectionRule>& GetMethodSelectionRules() const; //gets the method selections list
73
74 bool IsInheritable() const; //checks if the class selection rule is inheritable
75 void SetInheritable(bool inherit); //sets the inheritance rule for the class
76
77 void SetRequestStreamerInfo(bool needStreamerInfo);
78 void SetRequestNoStreamer(bool noStreamer);
79 void SetRequestNoInputOperator(bool excl);
80 void SetRequestOnlyTClass(bool val);
81 void SetRequestProtected(bool val);
82 void SetRequestPrivate(bool val);
83 void SetRequestedVersionNumber(int version);
84 void SetRequestedRNTupleSplitMode(int splitMode);
85
86 bool RequestOnlyTClass() const; // True if the user want the TClass intiliazer but *not* the interpreter meta data
87 bool RequestNoStreamer() const; // Request no Streamer function in the dictionary
88 bool RequestNoInputOperator() const; // Request no generation on a default input operator by rootcint or the compiler.
89 bool RequestStreamerInfo() const; // Request the ROOT 4+ I/O streamer
90 bool RequestProtected() const;
91 bool RequestPrivate() const;
92 int RequestedVersionNumber() const;
93 int RequestedRNTupleSplitMode() const;
94};
95
96#endif
97
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 sel
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
void SetInheritable(bool inherit)
void SetRequestNoInputOperator(bool excl)
ClassSelectionRule(long index, bool inherit, ESelect sel, std::string attributeName, std::string attributeValue, cling::Interpreter &interp, const char *selFileName="", long lineno=-1)
bool HasFieldSelectionRules() const
const std::list< FunctionSelectionRule > & GetMethodSelectionRules() const
bool RequestNoInputOperator() const
void SetRequestProtected(bool val)
void AddFieldSelectionRule(const VariableSelectionRule &field)
std::list< FunctionSelectionRule > fMethodSelectionRules
void SetRequestedRNTupleSplitMode(int splitMode)
int RequestedRNTupleSplitMode() const
void SetRequestedVersionNumber(int version)
ClassSelectionRule(ESelect sel=kYes)
const std::list< VariableSelectionRule > & GetFieldSelectionRules() const
void SetRequestPrivate(bool val)
void Print(std::ostream &out) const final
bool HasMethodSelectionRules() const
void AddMethodSelectionRule(const FunctionSelectionRule &method)
void SetRequestNoStreamer(bool noStreamer)
void SetRequestOnlyTClass(bool val)
ClassSelectionRule(long index, cling::Interpreter &interp, const char *selFileName="", long lineno=-1)
std::list< VariableSelectionRule > fFieldSelectionRules
void SetRequestStreamerInfo(bool needStreamerInfo)