39 ClassImp(RooStringVar);
47 RooStringVar::RooStringVar(
const char *name,
const char *title,
const char* value, Int_t size) :
48 RooAbsString(name, title, size)
50 if(!isValidString(value)) {
51 coutW(InputArguments) <<
"RooStringVar::RooStringVar(" << GetName()
52 <<
"): initial contents too long and ignored" << endl ;
54 strlcpy(_value,value,_len) ;
66 RooStringVar::RooStringVar(
const RooStringVar& other,
const char* name) :
67 RooAbsString(other, name)
76 RooStringVar::~RooStringVar()
84 RooStringVar::operator TString()
87 return TString(_value) ;
95 void RooStringVar::setVal(
const char* value)
97 if (!isValidString(value)) {
98 coutW(InputArguments) <<
"RooStringVar::setVal(" << GetName() <<
"): new string too long and ignored" << endl ;
101 strlcpy(_value,value,_len) ;
113 RooAbsArg& RooStringVar::operator=(
const char* newValue)
115 if (!isValidString(newValue)) {
116 coutW(InputArguments) <<
"RooStringVar::operator=(" << GetName() <<
"): new string too long and ignored" << endl ;
119 strlcpy(_value,newValue,_len) ;
133 Bool_t RooStringVar::readFromStream(istream& is, Bool_t compact, Bool_t verbose)
135 TString token,errorPrefix(
"RooStringVar::readFromStream(") ;
136 errorPrefix.Append(GetName()) ;
137 errorPrefix.Append(
")") ;
138 RooStreamParser parser(is,errorPrefix) ;
144 parser.readString(newValue,kTRUE) ;
146 newValue = parser.readLine() ;
149 if (!isValidString(newValue)) {
151 coutW(InputArguments) <<
"RooStringVar::readFromStream(" << GetName()
152 <<
"): new string too long and ignored" << endl ;
154 strlcpy(_value,newValue,_len) ;
164 void RooStringVar::writeToStream(ostream& os, Bool_t )
const