|
SNAP Library 2.2, User Reference
2014-03-11 19:15:55
SNAP, a general purpose, high performance system for analysis and manipulation of large networks
|
#include <exp.h>
Public Member Functions | |
| TExpVal (const TExpValType &_ValType=evtUndef) | |
| TExpVal (const TFlt &_Flt) | |
| TExpVal (const double &_Flt) | |
| TExpVal (const TStr &_Str) | |
| ~TExpVal () | |
| TExpVal (TSIn &SIn) | |
| void | Save (TSOut &SOut) const |
| TExpVal & | operator= (const TExpVal &) |
| bool | operator== (const TExpVal &ExpVal) const |
| bool | operator< (const TExpVal &ExpVal) const |
| void | AddToVec (const PExpVal &ExpVal) |
| void | AddToLst (const PExpVal &ExpVal) |
| TExpValType | GetValType () const |
| bool | IsFltVal (TFlt &_Flt) const |
| bool | IsFltVal (double &_Flt) const |
| double | GetFltVal () const |
| int | GetFltValAsInt (const bool &ThrowExceptP=true) const |
| TStr | GetStrVal () const |
| void | SaveTxt (TOLx &Lx) const |
| void | SaveTxt (const PSOut &SOut) const |
| TStr | GetStr () const |
Static Public Member Functions | |
| static PExpVal | New (const TExpValType &ValType=evtUndef) |
| static PExpVal | New (const TFlt &Flt) |
| static PExpVal | New (const double &Flt) |
| static PExpVal | New (const TStr &Str) |
| static PExpVal | Load (TSIn &SIn) |
| static PExpVal | MkClone (const PExpVal &ExpVal) |
| static PExpVal | GetUndefExpVal () |
| static PExpVal | GetZeroExpVal () |
Private Attributes | |
| TCRef | CRef |
| TInt | ValType |
| TAscFlt | Flt |
| TStr | Str |
| TExpValV | ValV |
| TExpValL | ValL |
Static Private Attributes | |
| static PExpVal | UndefExpVal = NULL |
| static PExpVal | ZeroExpVal = NULL |
Friends | |
| class | TPt< TExpVal > |
| TExpVal::TExpVal | ( | const TExpValType & | _ValType = evtUndef | ) | [inline] |
| TExpVal::TExpVal | ( | const TFlt & | _Flt | ) | [inline] |
| TExpVal::TExpVal | ( | const double & | _Flt | ) | [inline] |
| TExpVal::TExpVal | ( | const TStr & | _Str | ) | [inline] |
| TExpVal::~TExpVal | ( | ) | [inline] |
| TExpVal::TExpVal | ( | TSIn & | SIn | ) | [inline] |
| void TExpVal::AddToLst | ( | const PExpVal & | ExpVal | ) | [inline] |
| void TExpVal::AddToVec | ( | const PExpVal & | ExpVal | ) | [inline] |
| double TExpVal::GetFltVal | ( | ) | const [inline] |
Definition at line 50 of file exp.h.
{
if (GetValType()==evtFlt){return Flt;} else {return 0;}}
| int TExpVal::GetFltValAsInt | ( | const bool & | ThrowExceptP = true | ) | const |
| TStr TExpVal::GetStr | ( | ) | const |
Definition at line 99 of file exp.cpp.
{
PSOut SOut=TMOut::New(); TMOut& MOut=*(TMOut*)SOut();
SaveTxt(SOut);
TStr ExpValStr=TStr::LoadTxt(MOut.GetSIn());
return ExpValStr;
}
| TStr TExpVal::GetStrVal | ( | ) | const [inline] |
| PExpVal TExpVal::GetUndefExpVal | ( | ) | [static] |
Definition at line 123 of file exp.cpp.
{
if (UndefExpVal.Empty()){
UndefExpVal=TExpVal::New();}
return UndefExpVal;
}
| TExpValType TExpVal::GetValType | ( | ) | const [inline] |
Definition at line 45 of file exp.h.
{return TExpValType(int(ValType));}
| PExpVal TExpVal::GetZeroExpVal | ( | ) | [static] |
Definition at line 129 of file exp.cpp.
{
if (ZeroExpVal.Empty()){
ZeroExpVal=TExpVal::New(double(0));}
return ZeroExpVal;
}
| bool TExpVal::IsFltVal | ( | TFlt & | _Flt | ) | const [inline] |
Definition at line 46 of file exp.h.
{
if (GetValType()==evtFlt){_Flt=Flt; return true;} else {return false;}}
| bool TExpVal::IsFltVal | ( | double & | _Flt | ) | const [inline] |
Definition at line 48 of file exp.h.
{
if (GetValType()==evtFlt){_Flt=Flt; return true;} else {return false;}}
| static PExpVal TExpVal::Load | ( | TSIn & | SIn | ) | [inline, static] |
| PExpVal TExpVal::MkClone | ( | const PExpVal & | ExpVal | ) | [static] |
Definition at line 106 of file exp.cpp.
{
PExpVal CloneExpVal=TExpVal::New();
CloneExpVal->ValType=ExpVal->ValType;
CloneExpVal->Flt=ExpVal->Flt;
CloneExpVal->Str=ExpVal->Str;
CloneExpVal->ValV.Gen(ExpVal->ValV.Len(), 0);
for (int VecValN=0; VecValN<ExpVal->ValV.Len(); VecValN++){
CloneExpVal->ValV.Add(MkClone(ExpVal->ValV[VecValN]));
}
TExpValLN ExpValLN=ExpVal->ValL.First();
while (ExpValLN!=NULL){
CloneExpVal->ValL.AddBack(MkClone(ExpValLN->GetVal()));
ExpValLN=ExpValLN->Next();
}
return CloneExpVal;
}
| static PExpVal TExpVal::New | ( | const TExpValType & | ValType = evtUndef | ) | [inline, static] |
| static PExpVal TExpVal::New | ( | const TFlt & | Flt | ) | [inline, static] |
| static PExpVal TExpVal::New | ( | const double & | Flt | ) | [inline, static] |
| static PExpVal TExpVal::New | ( | const TStr & | Str | ) | [inline, static] |
| bool TExpVal::operator< | ( | const TExpVal & | ExpVal | ) | const |
Definition at line 31 of file exp.cpp.
{
if (ValType!=ExpVal.ValType){
return ValType<ExpVal.ValType;}
switch (ValType){
case evtUndef: return false;
case evtFlt: return Flt<ExpVal.Flt;
case evtStr: return Str<ExpVal.Str;
case evtVec:{
int VecValN=0;
while ((VecValN<ValV.Len())&&(VecValN<ExpVal.ValV.Len())){
if (*ValV[VecValN]<*ExpVal.ValV[VecValN]){return true;}
else if (*ValV[VecValN]==*ExpVal.ValV[VecValN]){VecValN++;}
else {return false;}
}
return ValV.Len()<ExpVal.ValV.Len();}
case evtLst:{
if (ValL.Len()!=ExpVal.ValL.Len()){return false;}
TExpValLN ValLN=ValL.First();
TExpValLN ExpValLN=ExpVal.ValL.First();
while ((ValLN!=NULL)&&(ExpValLN!=NULL)){
if (*ValLN->GetVal()<*ExpValLN->GetVal()){
return true;}
else if (*ValLN->GetVal()==*ExpValLN->GetVal()){
ValLN=ValLN->Next(); ExpValLN=ExpValLN->Next();}
else {return false;}
}
return ValLN==NULL;}
default: Fail; return false;
}
}
| bool TExpVal::operator== | ( | const TExpVal & | ExpVal | ) | const |
Definition at line 6 of file exp.cpp.
{
if (ValType!=ExpVal.ValType){return false;}
switch (ValType){
case evtUndef: return true;
case evtFlt: return Flt==ExpVal.Flt;
case evtStr: return Str==ExpVal.Str;
case evtVec:{
if (ValV.Len()!=ExpVal.ValV.Len()){return false;}
for (int VecValN=0; VecValN<ExpVal.ValV.Len(); VecValN++){
if (*ValV[VecValN]!=*ExpVal.ValV[VecValN]){return false;}}
return true;}
case evtLst:{
if (ValL.Len()!=ExpVal.ValL.Len()){return false;}
TExpValLN ValLN=ValL.First();
TExpValLN ExpValLN=ExpVal.ValL.First();
while (ValLN!=NULL){
if (*ValLN->GetVal()!=*ExpValLN->GetVal()){return false;}
ValLN=ValLN->Next();
ExpValLN=ExpValLN->Next();
}
return true;}
default: Fail; return false;
}
}
| void TExpVal::Save | ( | TSOut & | SOut | ) | const [inline] |
| void TExpVal::SaveTxt | ( | TOLx & | Lx | ) | const |
Definition at line 71 of file exp.cpp.
{
TExpValType _ValType=TExpValType(int(ValType));
switch (_ValType){
case evtUndef: Lx.PutIdStr("Undef"); break;
case evtFlt: Lx.PutFlt(Flt); break;
case evtStr: Lx.PutQStr(Str); break;
case evtVec:{
Lx.PutSym(syLBrace);
for (int ValN=0; ValN<ValV.Len(); ValN++){
ValV[ValN]->SaveTxt(Lx);}
Lx.PutSym(syRBrace);
break;}
case evtLst:{
Lx.PutSym(syLBracket);
TExpValLN ValLN=ValL.First();
for (int ValN=0; ValN<ValL.Len(); ValN++){
ValLN->GetVal()->SaveTxt(Lx); ValLN=ValLN->Next();}
Lx.PutSym(syRBracket);
break;}
default: Fail;
}
}
| void TExpVal::SaveTxt | ( | const PSOut & | SOut | ) | const |
TCRef TExpVal::CRef [private] |
TAscFlt TExpVal::Flt [private] |
TStr TExpVal::Str [private] |
PExpVal TExpVal::UndefExpVal = NULL [static, private] |
TExpValL TExpVal::ValL [private] |
TInt TExpVal::ValType [private] |
TExpValV TExpVal::ValV [private] |
PExpVal TExpVal::ZeroExpVal = NULL [static, private] |