SNAP Library 2.0, User Reference  2013-05-13 16:33:57
SNAP, a general purpose, high performance system for analysis and manipulation of large networks
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
TPpVal Class Reference

#include <pp.h>

List of all members.

Public Member Functions

 TPpVal ()
 TPpVal (const TPpVal &PpVal)
 TPpVal (const bool &b)
 TPpVal (const TBool &b)
 TPpVal (const int &_Int)
 TPpVal (const TInt &_Int)
 TPpVal (const double &_Flt)
 TPpVal (const TFlt &_Flt)
 TPpVal (const TStr &_Str)
 TPpVal (const char *CStr)
 TPpVal (const TVec< TPpVal > &_ValV)
 TPpVal (TSIn &SIn)
void Save (TSOut &SOut)
TPpValoperator= (const TPpVal &PpVal)
bool operator== (const TPpVal &PpVal) const
bool operator< (const TPpVal &PpVal) const
int GetTag () const
TBool GetBool () const
TInt GetInt () const
TFlt GetFlt () const
TStr GetStr () const
TVec< TPpValGetValV () const
TStr GetValStr (const bool &DoAddTag=false) const
void SaveTxt (TOLx &Lx) const

Static Public Member Functions

static TPpVal LoadTxt (TILx &Lx)

Private Attributes

TInt Tag
TBool Bool
TInt Int
TFlt Flt
TStr Str
TVec< TPpValValV

Detailed Description

Definition at line 19 of file pp.h.


Constructor & Destructor Documentation

TPpVal::TPpVal ( ) [inline]

Definition at line 24 of file pp.h.

: Tag(ptUndef){}
TPpVal::TPpVal ( const TPpVal PpVal) [inline]

Definition at line 25 of file pp.h.

                             : Tag(PpVal.Tag), Bool(PpVal.Bool),
    Int(PpVal.Int), Flt(PpVal.Flt), Str(PpVal.Str), ValV(PpVal.ValV){}
TPpVal::TPpVal ( const bool &  b) [inline]

Definition at line 27 of file pp.h.

: Tag(ptBool), Bool(b){}
TPpVal::TPpVal ( const TBool b) [inline]

Definition at line 28 of file pp.h.

: Tag(ptBool), Bool(b){}
TPpVal::TPpVal ( const int &  _Int) [inline]

Definition at line 29 of file pp.h.

: Tag(ptInt), Int(_Int){}
TPpVal::TPpVal ( const TInt _Int) [inline]

Definition at line 30 of file pp.h.

: Tag(ptInt), Int(_Int){}
TPpVal::TPpVal ( const double &  _Flt) [inline]

Definition at line 31 of file pp.h.

: Tag(ptFlt), Flt(_Flt){}
TPpVal::TPpVal ( const TFlt _Flt) [inline]

Definition at line 32 of file pp.h.

: Tag(ptFlt), Flt(_Flt){}
TPpVal::TPpVal ( const TStr _Str) [inline]

Definition at line 33 of file pp.h.

: Tag(ptStr), Str(_Str){}
TPpVal::TPpVal ( const char *  CStr) [inline]

Definition at line 34 of file pp.h.

: Tag(ptStr), Str(TStr(CStr)){}
TPpVal::TPpVal ( const TVec< TPpVal > &  _ValV) [inline]

Definition at line 35 of file pp.h.

: Tag(ptValV), ValV(_ValV){}
TPpVal::TPpVal ( TSIn SIn) [inline]

Definition at line 36 of file pp.h.

                   :
    Tag(SIn), Bool(SIn), Int(SIn), Flt(SIn), Str(SIn), ValV(SIn){}

Member Function Documentation

TBool TPpVal::GetBool ( ) const [inline]

Definition at line 52 of file pp.h.

{IAssert(int(Tag)==ptBool); return Bool;}
TFlt TPpVal::GetFlt ( ) const [inline]

Definition at line 54 of file pp.h.

{IAssert(int(Tag)==ptFlt); return Flt;}
TInt TPpVal::GetInt ( ) const [inline]

Definition at line 53 of file pp.h.

{IAssert(int(Tag)==ptInt); return Int;}
TStr TPpVal::GetStr ( ) const [inline]

Definition at line 55 of file pp.h.

{IAssert(int(Tag)==ptStr); return Str;}
int TPpVal::GetTag ( ) const [inline]

Definition at line 51 of file pp.h.

{return (int)Tag;}
TStr TPpVal::GetValStr ( const bool &  DoAddTag = false) const

Definition at line 46 of file pp.cpp.

                                                 {
  TChA ChA;
  if (DoAddTag){ChA+='<'; ChA+=TPpTag::GetStr(Tag); ChA+='>';}
  switch (Tag){
    case ptUndef: break;
    case ptBool: ChA+=TBool::GetStr(Bool); break;
    case ptInt: ChA+=TInt::GetStr(Int); break;
    case ptFlt: ChA+=TFlt::GetStr(Flt); break;
    case ptStr: ChA+='"'; ChA+=Str; ChA+='"'; break;
    case ptValV:{
      ChA+='[';
      for (int ValN=0; ValN<ValV.Len(); ValN++){
        if (ValN>0){ChA+=' ';}
        ChA+=ValV[ValN].GetValStr(DoAddTag);
      }
      ChA+=']'; break;}
    default: Fail;
  }
  return ChA;
}
TVec<TPpVal> TPpVal::GetValV ( ) const [inline]

Definition at line 56 of file pp.h.

{IAssert(int(Tag)==ptValV); return ValV;}
TPpVal TPpVal::LoadTxt ( TILx Lx) [static]

Definition at line 67 of file pp.cpp.

                              {
  TPpTagVal Tag=TPpTag::LoadTxt(Lx);
  if (Tag==ptUndef){
    return TPpVal();
  } else {
    Lx.GetSym(syColon);
    switch (Tag){
      case ptBool: return TPpVal(Lx.GetBool());
      case ptInt: return TPpVal(Lx.GetInt());
      case ptFlt: return TPpVal(Lx.GetFlt());
      case ptStr: return TPpVal(Lx.GetQStr());
      case ptValV:{
        TPpValV ValV;
        Lx.GetSym(syLBracket);
        while (Lx.PeekSym()==syIdStr){ValV.Add(LoadTxt(Lx));}
        Lx.GetSym(syRBracket);
        return TPpVal(ValV);}
      default: Fail; return TPpVal();
    }
  }
}
bool TPpVal::operator< ( const TPpVal PpVal) const [inline]

Definition at line 46 of file pp.h.

                                            {
    if ((Tag==PpVal.Tag)&&(int(Tag)==ptInt)){return Int<PpVal.Int;}
    else if ((Tag==PpVal.Tag)&&(int(Tag)==ptFlt)){return Flt<PpVal.Flt;}
    else {Fail; return false;}}
TPpVal& TPpVal::operator= ( const TPpVal PpVal) [inline]

Definition at line 42 of file pp.h.

                                        {
    Tag=PpVal.Tag; Bool=PpVal.Bool; Int=PpVal.Int;
    Flt=PpVal.Flt; Str=PpVal.Str; ValV=PpVal.ValV; return *this;}
bool TPpVal::operator== ( const TPpVal PpVal) const

Definition at line 31 of file pp.cpp.

                                                 {
  if (Tag!=PpVal.Tag){return false;}
  switch (Tag){
    case ptUndef: return true;
    case ptBool: return Bool==PpVal.Bool;
    case ptInt: return Int==PpVal.Int;
    case ptFlt: return Flt==PpVal.Flt;
    case ptStr: return Str==PpVal.Str;
    case ptValV: return ValV==PpVal.ValV;
    case ptSel:
    case ptSet:
    default: Fail; return false;
  }
}
void TPpVal::Save ( TSOut SOut) [inline]

Definition at line 38 of file pp.h.

                        {
    Tag.Save(SOut); Bool.Save(SOut); Int.Save(SOut);
    Flt.Save(SOut); Str.Save(SOut); ValV.Save(SOut);}
void TPpVal::SaveTxt ( TOLx Lx) const

Definition at line 89 of file pp.cpp.

                                   {
  Lx.PutIdStr(TPpTag::GetStr(Tag));
  if (int(Tag)!=ptUndef){
    Lx.PutSym(syColon);
    switch (Tag){
      case ptBool: Lx.PutBool(Bool); break;
      case ptInt: Lx.PutInt(Int); break;
      case ptFlt: Lx.PutFlt(Flt); break;
      case ptStr: Lx.PutQStr(Str); break;
      case ptValV:{
        Lx.PutSym(syLBracket);
        for (int ValN=0; ValN<ValV.Len(); ValN++){ValV[ValN].SaveTxt(Lx);}
        Lx.PutSym(syRBracket); break;}
      default: Fail;
    }
  }
}

Member Data Documentation

TBool TPpVal::Bool [private]

Definition at line 22 of file pp.h.

TFlt TPpVal::Flt [private]

Definition at line 22 of file pp.h.

TInt TPpVal::Int [private]

Definition at line 22 of file pp.h.

TStr TPpVal::Str [private]

Definition at line 22 of file pp.h.

TInt TPpVal::Tag [private]

Definition at line 21 of file pp.h.

TVec<TPpVal> TPpVal::ValV [private]

Definition at line 22 of file pp.h.


The documentation for this class was generated from the following files: