| 
    SNAP Library 2.0, Developer Reference
    2013-05-13 16:33:57
    
   SNAP, a general purpose, high performance system for analysis and manipulation of large networks 
   | 
  
  
  
 
#include <url.h>

Public Member Functions | |
| TUrlEnv () | |
| TUrlEnv (const TUrlEnv &UrlEnv) | |
| ~TUrlEnv () | |
| TUrlEnv (TSIn &SIn) | |
| void | Save (TSOut &SOut) | 
| TUrlEnv & | operator= (const TUrlEnv &Env) | 
| void | PutBaseUrlStr (const TStr &_BaseUrlStr) | 
| TStr | GetBaseUrlStr () const | 
| void | AddKeyVal (const TStr &KeyNm, const TStr &ValStr) | 
| void | AddToKeyVal (const TStr &KeyNm, const TStr &ValStr) | 
| bool | Empty () const | 
| int | GetKeys () const | 
| bool | IsKey (const TStr &KeyNm) const | 
| int | GetKeyN (const TStr &KeyNm) const | 
| TStr | GetKeyNm (const int &KeyN) const | 
| int | GetVals (const int &KeyN) const | 
| int | GetVals (const TStr &KeyNm) const | 
| TStr | GetVal (const int &KeyN, const int &ValN=0) const | 
| TStr | GetVal (const TStr &KeyNm, const int &ValN=0, const TStr &DfVal="") const | 
| TStr | GetFullUrlStr () const | 
Static Public Member Functions | |
| static PUrlEnv | New () | 
| static PUrlEnv | New (const TStr &BaseUrlStr, const TStr &KeyNm1=TStr(), const TStr &ValStr1=TStr(), const TStr &KeyNm2=TStr(), const TStr &ValStr2=TStr(), const TStr &KeyNm3=TStr(), const TStr &ValStr3=TStr(), const TStr &KeyNm4=TStr(), const TStr &ValStr4=TStr()) | 
| static PUrlEnv | Load (TSIn &SIn) | 
| static PUrlEnv | MkClone (const PUrlEnv &UrlEnv) | 
Private Attributes | |
| TCRef | CRef | 
| TStr | BaseUrlStr | 
| TStrV | KeyNmV | 
| TStrStrVH | KeyNmToValH | 
Friends | |
| class | TPt< TUrlEnv > | 
| TUrlEnv::TUrlEnv | ( | ) |  [inline] | 
        
Definition at line 109 of file url.h.
Referenced by MkClone().
           :
    KeyNmV(), KeyNmToValH(10){}

| TUrlEnv::TUrlEnv | ( | const TUrlEnv & | UrlEnv | ) |  [inline] | 
        
Definition at line 111 of file url.h.
                                :
    KeyNmV(UrlEnv.KeyNmV), KeyNmToValH(UrlEnv.KeyNmToValH){}
| TUrlEnv::~TUrlEnv | ( | ) |  [inline] | 
        
| TUrlEnv::TUrlEnv | ( | TSIn & | SIn | ) |  [inline] | 
        
Definition at line 127 of file url.h.
: KeyNmV(SIn), KeyNmToValH(SIn){}
| void TUrlEnv::AddKeyVal | ( | const TStr & | KeyNm, | 
| const TStr & | ValStr | ||
| ) |  [inline] | 
        
Definition at line 140 of file url.h.
Referenced by New().
                                                       {
    if (!IsKey(KeyNm)){KeyNmV.Add(KeyNm); KeyNmToValH.AddKey(KeyNm);}
    KeyNmToValH.GetDat(KeyNm).Clr();
    KeyNmToValH.GetDat(KeyNm).Add(ValStr);}

| void TUrlEnv::AddToKeyVal | ( | const TStr & | KeyNm, | 
| const TStr & | ValStr | ||
| ) |  [inline] | 
        
Definition at line 144 of file url.h.
Referenced by THttpRq::ParseSearch().
                                                         {
    if (!IsKey(KeyNm)){KeyNmV.Add(KeyNm); KeyNmToValH.AddKey(KeyNm);}
    KeyNmToValH.GetDat(KeyNm).Add(ValStr);}

| bool TUrlEnv::Empty | ( | ) |  const [inline] | 
        
| TStr TUrlEnv::GetBaseUrlStr | ( | ) |  const [inline] | 
        
Definition at line 137 of file url.h.
{return BaseUrlStr;}
| TStr TUrlEnv::GetFullUrlStr | ( | ) | const | 
Definition at line 445 of file url.cpp.
References BaseUrlStr, THash< TKey, TDat, THashFunc >::GetDat(), GetKeyNm(), GetKeys(), TUrl::GetUrlSearchStr(), KeyNmToValH, and TVec< TVal, TSizeTy >::Len().
Referenced by THtmlDoc::_IsTagRedir().
                                  {
  if (GetKeys()==0){return TStr();}
  TChA SearchChA;
  SearchChA+=BaseUrlStr;
  SearchChA+="?";
  int KeyVals=0;
  for (int KeyN=0; KeyN<GetKeys(); KeyN++){
    TStr KeyNm=GetKeyNm(KeyN);
    TStrV ValStrV=KeyNmToValH.GetDat(KeyNm);
    for (int ValStrN=0; ValStrN<ValStrV.Len(); ValStrN++){
      if (KeyVals>0){SearchChA+="&";}
      SearchChA+=TUrl::GetUrlSearchStr(KeyNm);
      SearchChA+='=';
      SearchChA+=TUrl::GetUrlSearchStr(ValStrV[ValStrN]);
      KeyVals++;
    }
  }
  return SearchChA;
}


| int TUrlEnv::GetKeyN | ( | const TStr & | KeyNm | ) |  const [inline] | 
        
Definition at line 152 of file url.h.
{return KeyNmV.SearchForw(KeyNm);}
| TStr TUrlEnv::GetKeyNm | ( | const int & | KeyN | ) |  const [inline] | 
        
Definition at line 153 of file url.h.
Referenced by GetFullUrlStr().
{return KeyNmV[KeyN];}

| int TUrlEnv::GetKeys | ( | ) |  const [inline] | 
        
Definition at line 150 of file url.h.
Referenced by GetFullUrlStr().

| TStr TUrlEnv::GetVal | ( | const int & | KeyN, | 
| const int & | ValN = 0  | 
        ||
| ) |  const [inline] | 
        
Definition at line 160 of file url.h.
                                                        {
    return KeyNmToValH.GetDat(KeyNmV[KeyN])[ValN];}
| TStr TUrlEnv::GetVal | ( | const TStr & | KeyNm, | 
| const int & | ValN = 0,  | 
        ||
| const TStr & | DfVal = ""  | 
        ||
| ) |  const [inline] | 
        
Definition at line 162 of file url.h.
                                                                                {
    if (KeyNmToValH.IsKey(KeyNm)){
      return KeyNmToValH.GetDat(KeyNm)[ValN];}
    else {return DfVal;}}
| int TUrlEnv::GetVals | ( | const int & | KeyN | ) |  const [inline] | 
        
| int TUrlEnv::GetVals | ( | const TStr & | KeyNm | ) |  const [inline] | 
        
Definition at line 158 of file url.h.
                                       {
    return KeyNmToValH.GetDat(KeyNm).Len();}
| bool TUrlEnv::IsKey | ( | const TStr & | KeyNm | ) |  const [inline] | 
        
Definition at line 151 of file url.h.
{return KeyNmV.SearchForw(KeyNm)!=-1;}
| static PUrlEnv TUrlEnv::Load | ( | TSIn & | SIn | ) |  [inline, static] | 
        
| PUrlEnv TUrlEnv::MkClone | ( | const PUrlEnv & | UrlEnv | ) |  [static] | 
        
| static PUrlEnv TUrlEnv::New | ( | ) |  [inline, static] | 
        
| static PUrlEnv TUrlEnv::New | ( | const TStr & | BaseUrlStr, | 
| const TStr & | KeyNm1 = TStr(),  | 
        ||
| const TStr & | ValStr1 = TStr(),  | 
        ||
| const TStr & | KeyNm2 = TStr(),  | 
        ||
| const TStr & | ValStr2 = TStr(),  | 
        ||
| const TStr & | KeyNm3 = TStr(),  | 
        ||
| const TStr & | ValStr3 = TStr(),  | 
        ||
| const TStr & | KeyNm4 = TStr(),  | 
        ||
| const TStr & | ValStr4 = TStr()  | 
        ||
| ) |  [inline, static] | 
        
Definition at line 114 of file url.h.
References AddKeyVal(), and PutBaseUrlStr().
                                                         {
    PUrlEnv UrlEnv=New();
    UrlEnv->PutBaseUrlStr(BaseUrlStr);
    if (!KeyNm1.Empty()){UrlEnv->AddKeyVal(KeyNm1, ValStr1);}
    if (!KeyNm2.Empty()){UrlEnv->AddKeyVal(KeyNm2, ValStr2);}
    if (!KeyNm3.Empty()){UrlEnv->AddKeyVal(KeyNm3, ValStr3);}
    if (!KeyNm4.Empty()){UrlEnv->AddKeyVal(KeyNm4, ValStr4);}
    return UrlEnv;}

Definition at line 131 of file url.h.
References KeyNmToValH, and KeyNmV.
                                        {
    if (this!=&Env){KeyNmV=Env.KeyNmV; KeyNmToValH=Env.KeyNmToValH;}
    return *this;}
| void TUrlEnv::PutBaseUrlStr | ( | const TStr & | _BaseUrlStr | ) |  [inline] | 
        
Definition at line 136 of file url.h.
Referenced by New().
{BaseUrlStr=_BaseUrlStr;}

| void TUrlEnv::Save | ( | TSOut & | SOut | ) |  [inline] | 
        
TStr TUrlEnv::BaseUrlStr [private] | 
        
Definition at line 105 of file url.h.
Referenced by GetFullUrlStr().
TCRef TUrlEnv::CRef [private] | 
        
TStrStrVH TUrlEnv::KeyNmToValH [private] | 
        
Definition at line 107 of file url.h.
Referenced by GetFullUrlStr(), and operator=().
TStrV TUrlEnv::KeyNmV [private] | 
        
Definition at line 106 of file url.h.
Referenced by operator=().