| 
    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 <fl.h>


Public Member Functions | |
| TMOut (const int &_MxBfL=1024) | |
| TMOut (char *_Bf, const int &_MxBfL) | |
| ~TMOut () | |
| int | PutCh (const char &Ch) | 
| int | PutBf (const void *LBf, const TSize &LBfL) | 
| void | AppendBf (const void *LBf, const TSize &LBfL) | 
| void | Flush () | 
| int | Len () const | 
| void | Clr () | 
| char | GetCh (const int &ChN) const | 
| TStr | GetAsStr () const | 
| void | CutBf (const int &CutBfL) | 
| PSIn | GetSIn (const bool &IsCut=true, const int &CutBfL=-1) | 
| char * | GetBfAddr () const | 
| bool | IsCrLfLn () const | 
| TStr | GetCrLfLn () | 
| bool | IsEolnLn () const | 
| TStr | GetEolnLn (const bool &DoAddEoln, const bool &DoCutBf) | 
| void | MkEolnLn () | 
Static Public Member Functions | |
| static PSOut | New (const int &MxBfL=1024) | 
Private Member Functions | |
| void | Resize (const int &ReqLen=-1) | 
| TMOut (const TMOut &) | |
| TMOut & | operator= (const TMOut &) | 
Private Attributes | |
| char * | Bf | 
| int | BfL | 
| int | MxBfL | 
| bool | OwnBf | 
| TMOut::TMOut | ( | const TMOut & | ) |  [private] | 
        
| TMOut::TMOut | ( | const int & | _MxBfL = 1024 | ) | 
| TMOut::TMOut | ( | char * | _Bf, | 
| const int & | _MxBfL | ||
| ) | 
| TMOut::~TMOut | ( | ) |  [inline] | 
        
| void TMOut::AppendBf | ( | const void * | LBf, | 
| const TSize & | LBfL | ||
| ) | 
| void TMOut::Clr | ( | ) |  [inline] | 
        
| void TMOut::CutBf | ( | const int & | CutBfL | ) | 
| void TMOut::Flush | ( | ) |  [inline, virtual] | 
        
| TStr TMOut::GetAsStr | ( | ) | const | 
Definition at line 647 of file fl.cpp.
Referenced by THtmlDoc::GetRedirHtmlDocStr(), and TXmlDoc::SaveStr().

| char* TMOut::GetBfAddr | ( | ) |  const [inline] | 
        
| char TMOut::GetCh | ( | const int & | ChN | ) |  const [inline] | 
        
| TStr TMOut::GetCrLfLn | ( | ) | 
Definition at line 679 of file fl.cpp.
References Bf, BfL, TCh::CrCh, CutBf(), IAssert, IsCrLfLn(), and TCh::LfCh.
                     {
  IAssert(IsCrLfLn());
  TChA Ln;
  for (int BfC=0; BfC<BfL; BfC++){
    char Ch=Bf[BfC];
    if ((Ch==TCh::CrCh)&&((BfC+1<BfL)&&(Bf[BfC+1]==TCh::LfCh))){
      Ln+=TCh::CrCh; Ln+=TCh::LfCh; CutBf(BfC+1+1); break;
    } else {
      Ln+=Ch;
    }
  }
  return Ln;
}

| TStr TMOut::GetEolnLn | ( | const bool & | DoAddEoln, | 
| const bool & | DoCutBf | ||
| ) | 
Definition at line 700 of file fl.cpp.
References Bf, BfL, TCh::CrCh, CutBf(), IAssert, IsEolnLn(), and TCh::LfCh.
                                                               {
  IAssert(IsEolnLn());
  int LnChs=0; TChA Ln;
  for (int BfC=0; BfC<BfL; BfC++){
    char Ch=Bf[BfC];
    if ((Ch==TCh::CrCh)||(Ch==TCh::LfCh)){
      LnChs++; if (DoAddEoln){Ln+=Ch;}
      if (BfC+1<BfL){
        char NextCh=Bf[BfC+1];
        if (((Ch==TCh::CrCh)&&(NextCh==TCh::LfCh))||
         ((Ch==TCh::LfCh)&&(NextCh==TCh::CrCh))){
          LnChs++; if (DoAddEoln){Ln+=NextCh;}
        }
      }
      break;
    } else {
      LnChs++; Ln+=Ch;
    }
  }
  if (DoCutBf){
    CutBf(LnChs);
  }
  return Ln;
}

| PSIn TMOut::GetSIn | ( | const bool & | IsCut = true,  | 
        
| const int & | CutBfL = -1  | 
        ||
| ) | 
Definition at line 659 of file fl.cpp.
References Bf, BfL, CutBf(), TInt::GetMn(), IAssert, MxBfL, and OwnBf.
Referenced by TFHash< TKey, TFDat, TVDat >::AddDat(), TFHash< TKey, TFDat, TVDat >::AddKey(), TMem::GetSIn(), TExpVal::GetStr(), TExp::GetStr(), TFHashKey< TKey, TFDat, TVDat >::OnDelFromCache(), TFHash< TKey, TFDat, TVDat >::TFHash(), and TFHash< TKey, TFDat, TVDat >::~TFHash().
                                                      {
  IAssert((CutBfL==-1)||((0<=CutBfL)));
  int SInBfL= (CutBfL==-1) ? BfL : TInt::GetMn(BfL, CutBfL);
  PSIn SIn;
  if (OwnBf&&IsCut&&(SInBfL==BfL)){
    SIn=PSIn(new TMIn(Bf, SInBfL, true));
    Bf=NULL; BfL=MxBfL=0; OwnBf=true;
  } else {
    SIn=PSIn(new TMIn(Bf, SInBfL, false));
    if (IsCut){CutBf(SInBfL);}
  }
  return SIn;
}


| bool TMOut::IsCrLfLn | ( | ) | const | 
| bool TMOut::IsEolnLn | ( | ) | const | 
| int TMOut::Len | ( | ) |  const [inline] | 
        
Definition at line 439 of file fl.h.
References BfL.
Referenced by AppendBf().
{return BfL;}

| void TMOut::MkEolnLn | ( | ) | 
| static PSOut TMOut::New | ( | const int & | MxBfL = 1024 | ) |  [inline, static] | 
        
| int TMOut::PutBf | ( | const void * | LBf, | 
| const TSize & | LBfL | ||
| ) |  [virtual] | 
        
Implements TSOut.
Definition at line 635 of file fl.cpp.
References Bf, BfL, MxBfL, and PutCh().
                                                  {
  int LBfS=0;
  if (TSize(BfL+LBfL)>TSize(MxBfL)){
    for (TSize LBfC=0; LBfC<LBfL; LBfC++){
      LBfS+=PutCh(((char*)LBf)[LBfC]);}
  } else {
    for (TSize LBfC=0; LBfC<LBfL; LBfC++){
      LBfS+=(Bf[BfL++]=((char*)LBf)[LBfC]);}
  }
  return LBfS;
}

| int TMOut::PutCh | ( | const char & | Ch | ) |  [inline, virtual] | 
        
| void TMOut::Resize | ( | const int & | ReqLen = -1 | ) |  [private] | 
        
Definition at line 603 of file fl.cpp.
References Bf, BfL, IAssert, MxBfL, and OwnBf.
Referenced by AppendBf(), and PutCh().
                                   {
  IAssert(OwnBf&&(BfL==MxBfL || ReqLen >= 0));
  if (Bf==NULL){
    IAssert(MxBfL==0); 
    if (ReqLen < 0) Bf=new char[MxBfL=1024];
    else Bf=new char[MxBfL=ReqLen];
  } else {
    if (ReqLen < 0){ MxBfL*=2; }
    else if (ReqLen < MxBfL){ return; } // nothing to do 
    else { MxBfL=(2*MxBfL < ReqLen ? ReqLen : 2*MxBfL); }
    char* NewBf=new char[MxBfL];
    memmove(NewBf, Bf, BfL); delete[] Bf; Bf=NewBf;
  }
}

char* TMOut::Bf [private] | 
        
Definition at line 419 of file fl.h.
Referenced by AppendBf(), CutBf(), GetAsStr(), GetBfAddr(), GetCh(), GetCrLfLn(), GetEolnLn(), GetSIn(), IsCrLfLn(), IsEolnLn(), PutBf(), PutCh(), Resize(), TMOut(), and ~TMOut().
int TMOut::BfL [private] | 
        
Definition at line 420 of file fl.h.
Referenced by AppendBf(), Clr(), CutBf(), GetAsStr(), GetCh(), GetCrLfLn(), GetEolnLn(), GetSIn(), IsCrLfLn(), IsEolnLn(), Len(), PutBf(), PutCh(), and Resize().
int TMOut::MxBfL [private] | 
        
bool TMOut::OwnBf [private] |