|
SNAP Library , Developer Reference
2013-01-07 14:03:36
SNAP, a general purpose, high performance system for analysis and manipulation of large networks
|
#include <dt.h>

Public Member Functions | |
| TMem (const int &_MxBfL=0) | |
| TMem (const void *_Bf, const int &_BfL) | |
| TMem (const TMem &Mem) | |
| TMem (const TStr &Str) | |
| ~TMem () | |
| TMem (TSIn &SIn) | |
| void | Save (TSOut &SOut) const |
| void | LoadXml (const PXmlTok &XmlTok, const TStr &Nm) |
| void | SaveXml (TSOut &SOut, const TStr &Nm) const |
| TMem & | operator= (const TMem &Mem) |
| char * | operator() () const |
| TMem & | operator+= (const char &Ch) |
| TMem & | operator+= (const TMem &Mem) |
| TMem & | operator+= (const TStr &Str) |
| TMem & | operator+= (const PSIn &SIn) |
| char & | operator[] (const int &ChN) const |
| int | GetMemUsed () const |
| void | Gen (const int &_BfL) |
| void | GenZeros (const int &_BfL) |
| void | Reserve (const int &_MxBfL, const bool &DoClr=true) |
| void | Del (const int &BChN, const int &EChN) |
| void | Clr (const bool &DoDel=true) |
| int | Len () const |
| bool | Empty () const |
| void | Trunc (const int &_BfL) |
| void | Push (const char &Ch) |
| char | Pop () |
| bool | DoFitStr (const TStr &Str) const |
| void | AddBf (const void *Bf, const int &BfL) |
| char * | GetBf () const |
| TStr | GetAsStr (const char &NewNullCh='\0') const |
| PSIn | GetSIn () const |
| void | SaveMem (const PSOut &SOut) const |
Static Public Member Functions | |
| static PMem | New (const int &MxBfL=0) |
| static PMem | New (const void *Bf, const int &BfL) |
| static PMem | New (const TMem &Mem) |
| static PMem | New (const PMem &Mem) |
| static PMem | New (const TStr &Str) |
| static void | LoadMem (const PSIn &SIn, TMem &Mem) |
| static void | LoadMem (const PSIn &SIn, const PMem &Mem) |
Private Member Functions | |
| void | Resize (const int &_MxBfL) |
| bool | DoFitLen (const int &LBfL) const |
Private Attributes | |
| TCRef | CRef |
| int | MxBfL |
| int | BfL |
| char * | Bf |
Friends | |
| class | TPt< TMem > |
| TMem::TMem | ( | const int & | _MxBfL = 0 | ) | [inline] |
| TMem::TMem | ( | const void * | _Bf, |
| const int & | _BfL | ||
| ) | [inline] |
| TMem::TMem | ( | const TMem & | Mem | ) | [inline] |
| TMem::TMem | ( | const TStr & | Str | ) |
| TMem::~TMem | ( | ) | [inline] |
| TMem::TMem | ( | TSIn & | SIn | ) | [inline, explicit] |
| void TMem::AddBf | ( | const void * | Bf, |
| const int & | BfL | ||
| ) |
Definition at line 279 of file dt.cpp.
References Bf, BfL, IAssert, Len(), and Reserve().
{
IAssert((_BfL>=0) && (_Bf != NULL));
Reserve(Len() + _BfL, false);
memcpy(Bf + BfL, _Bf, _BfL);
BfL+=_BfL;
//char* ChBf=(char*)Bf;
//for (int BfC=0; BfC<BfL; BfC++){
// char Ch=ChBf[BfC];
// operator+=(Ch);
//}
}

| void TMem::Clr | ( | const bool & | DoDel = true | ) | [inline] |
Definition at line 129 of file dt.h.
Referenced by THttpLx::ClrMemSf(), Del(), THttpRq::GetAsMem(), THttpResp::GetAsMem(), THttpRq::GetBodyAsMem(), LoadMem(), and THttpResp::ParseHttpResp().

| void TMem::Del | ( | const int & | BChN, |
| const int & | EChN | ||
| ) |
Definition at line 265 of file dt.cpp.
References Bf, BfL, Clr(), and IAssert.
{
if (BChN>EChN){return;}
if ((BChN==0)&&(EChN==BfL-1)){Clr(); return;}
IAssert((0<=BChN)&&(BChN<=EChN)&&(EChN<BfL));
memmove(Bf+BChN, Bf+EChN+1, BfL-EChN-1);
BfL-=(EChN-BChN+1);
}

| bool TMem::DoFitLen | ( | const int & | LBfL | ) | const [inline, private] |
Definition at line 80 of file dt.h.
Referenced by DoFitStr().

| bool TMem::DoFitStr | ( | const TStr & | Str | ) | const |
Definition at line 235 of file dt.cpp.
References DoFitLen(), and TStr::Len().

| bool TMem::Empty | ( | ) | const [inline] |
Definition at line 133 of file dt.h.
Referenced by THttpRq::GetStr().
{return BfL==0;}

| void TMem::Gen | ( | const int & | _BfL | ) | [inline] |
| void TMem::GenZeros | ( | const int & | _BfL | ) | [inline] |
| TStr TMem::GetAsStr | ( | const char & | NewNullCh = '\0' | ) | const |
Definition at line 291 of file dt.cpp.
References TChA::ChangeCh().
Referenced by THttpRq::GetStr(), THttpResp::ParseHttpResp(), and THttpRq::ParseHttpRq().
{
if (NewNullCh!='\0'){
TChA ChA(*this);
ChA.ChangeCh('\0', NewNullCh);
return ChA;
} else {
return TStr(*this);
}
}


| char* TMem::GetBf | ( | ) | const [inline] |
Definition at line 142 of file dt.h.
Referenced by TChA::operator+=().
{return Bf;}

| int TMem::GetMemUsed | ( | ) | const [inline] |
| PSIn TMem::GetSIn | ( | ) | const [inline] |
Definition at line 144 of file dt.h.
References TMOut::GetSIn(), and TSOut::SaveBf().

| int TMem::Len | ( | ) | const [inline] |
Definition at line 132 of file dt.h.
Referenced by AddBf(), THttpResp::GetSIn(), THttpRq::GetStr(), TXmlLx::GetXmlStrFromPlainMem(), operator+=(), TChA::operator+=(), THttpRq::ParseHttpRq(), TSOut::PutMem(), TChA::TChA(), and TStr::TStr().
{return BfL;}

| static void TMem::LoadMem | ( | const PSIn & | SIn, |
| TMem & | Mem | ||
| ) | [inline, static] |
Definition at line 147 of file dt.h.
References Bf, Clr(), Gen(), TSIn::GetBf(), and TSIn::Len().
Referenced by THttpLx::GetRest(), and THttpResp::THttpResp().


| static void TMem::LoadMem | ( | const PSIn & | SIn, |
| const PMem & | Mem | ||
| ) | [inline, static] |
| void TMem::LoadXml | ( | const PXmlTok & | XmlTok, |
| const TStr & | Nm | ||
| ) |
| TMem & TMem::operator+= | ( | const char & | Ch | ) |
Definition at line 256 of file dt.cpp.
References Bf, BfL, TSIn::GetBf(), TSIn::Len(), MxBfL, and Resize().
{
int LBfL=SIn->Len(); if (BfL+LBfL>MxBfL){Resize(BfL+LBfL);}
char* LBf=new char[LBfL];
SIn->GetBf(LBf, LBfL);
if (LBfL>0){memcpy(Bf+BfL, LBf, LBfL);}
delete[] LBf;
BfL+=LBfL; return *this;
}

| char& TMem::operator[] | ( | const int & | ChN | ) | const [inline] |
| char TMem::Pop | ( | ) | [inline] |
| void TMem::Push | ( | const char & | Ch | ) | [inline] |
Definition at line 136 of file dt.h.
{operator+=(Ch);}
| void TMem::Reserve | ( | const int & | _MxBfL, |
| const bool & | DoClr = true |
||
| ) | [inline] |
| void TMem::Resize | ( | const int & | _MxBfL | ) | [private] |
Definition at line 213 of file dt.cpp.
References Bf, BfL, IAssert, and MxBfL.
Referenced by operator+=().
{
if (_MxBfL<=MxBfL){return;}
else {if (MxBfL*2<_MxBfL){MxBfL=_MxBfL;} else {MxBfL*=2;}}
char* NewBf=new char[MxBfL]; IAssert(NewBf!=NULL);
if (BfL>0){memcpy(NewBf, Bf, BfL);}
if (Bf!=NULL){delete[] Bf;}
Bf=NewBf;
}

| void TMem::Save | ( | TSOut & | SOut | ) | const [inline] |
| void TMem::SaveMem | ( | const PSOut & | SOut | ) | const [inline] |
Definition at line 151 of file dt.h.
References TSOut::SaveBf().

| void TMem::SaveXml | ( | TSOut & | SOut, |
| const TStr & | Nm | ||
| ) | const |
Definition at line 230 of file dt.cpp.
References BfL, TInt::GetStr(), TXmlLx::GetXmlStrFromPlainMem(), TSOut::PutStr(), and XSaveHdArg.
{
XSaveHdArg(Nm, "BfL", TInt::GetStr(BfL));
SOut.PutStr(TXmlLx::GetXmlStrFromPlainMem(*this));
}

| void TMem::Trunc | ( | const int & | _BfL | ) | [inline] |
Definition at line 134 of file dt.h.
Referenced by THttpRq::ParseHttpRq().

char* TMem::Bf [private] |
Definition at line 78 of file dt.h.
Referenced by AddBf(), Del(), LoadMem(), operator+=(), operator=(), Resize(), and TMem().
int TMem::BfL [private] |
Definition at line 77 of file dt.h.
Referenced by AddBf(), Del(), operator+=(), operator=(), Resize(), SaveXml(), and TMem().
TCRef TMem::CRef [private] |
int TMem::MxBfL [private] |
Definition at line 77 of file dt.h.
Referenced by operator+=(), operator=(), Resize(), and TMem().