SNAP Library 6.0, User Reference  2020-12-09 16:24:20
SNAP, a general purpose, high performance system for analysis and manipulation of large networks
TBlobBs Class Referenceabstract

#include <blobbs.h>

Inherited by TGBlobBs, and TMBlobBs.

Public Member Functions

 UndefCopyAssign (TBlobBs)
 
 TBlobBs ()
 
virtual ~TBlobBs ()
 
 TBlobBs (TSIn &)
 
void Save (TSOut &) const
 
virtual TStr GetVersionStr () const =0
 
void PutVersionStr (const PFRnd &FBlobBs)
 
void AssertVersionStr (const PFRnd &FBlobBs)
 
TStr GetBlobBsStateStr (const TBlobBsState &BlobBsState)
 
int GetStateStrLen ()
 
void PutBlobBsStateStr (const PFRnd &FBlobBs, const TBlobBsState &State)
 
void AssertBlobBsStateStr (const PFRnd &FBlobBs, const TBlobBsState &State)
 
void PutMxSegLen (const PFRnd &FBlobBs, const int &MxSegLen)
 
int GetMxSegLen (const PFRnd &FBlobBs)
 
void GenBlockLenV (TIntV &BlockLenV)
 
void PutBlockLenV (const PFRnd &FBlobBs, const TIntV &BlockLenV)
 
void GetBlockLenV (const PFRnd &FBlobBs, TIntV &BlockLenV)
 
void GenFFreeBlobPtV (const TIntV &BlockLenV, TBlobPtV &FFreeBlobPtV)
 
void PutFFreeBlobPtV (const PFRnd &FBlobBs, const TBlobPtV &FFreeBlobPtV)
 
void GetFFreeBlobPtV (const PFRnd &FBlobBs, TBlobPtV &FFreeBlobPtV)
 
void GetAllocInfo (const int &BfL, const TIntV &BlockLenV, int &MxBfL, int &FFreeBlobPtN)
 
uint GetBeginBlobTag ()
 
uint GetEndBlobTag ()
 
void PutBlobTag (const PFRnd &FBlobBs, const TBlobTag &BlobTag)
 
void AssertBlobTag (const PFRnd &FBlobBs, const TBlobTag &BlobTag)
 
void PutBlobState (const PFRnd &FBlobBs, const TBlobState &State)
 
TBlobState GetBlobState (const PFRnd &FBlobBs)
 
void AssertBlobState (const PFRnd &FBlobBs, const TBlobState &State)
 
void AssertBfCsEqFlCs (const TCs &BfCs, const TCs &FCs)
 
virtual TBlobPt PutBlob (const PSIn &SIn)=0
 
TBlobPt PutBlob (const TStr &Str)
 
virtual TBlobPt PutBlob (const TBlobPt &BlobPt, const PSIn &SIn)=0
 
virtual PSIn GetBlob (const TBlobPt &BlobPt)=0
 
virtual void DelBlob (const TBlobPt &BlobPt)=0
 
virtual TBlobPt GetFirstBlobPt ()=0
 
virtual TBlobPt FFirstBlobPt ()=0
 
virtual bool FNextBlobPt (TBlobPt &TrvBlobPt, TBlobPt &BlobPt, PSIn &BlobSIn)=0
 
bool FNextBlobPt (TBlobPt &TrvBlobPt, PSIn &BlobSIn)
 

Static Public Member Functions

static PBlobBs Load (TSIn &)
 

Static Public Attributes

static const int MnBlobBfL =16
 
static const int MxBlobFLen =1000000000
 
static const TStr MxSegLenVNm ="MxSegLen"
 
static const TStr BlockLenVNm ="BlockLenV"
 
static const TStr FFreeBlobPtVNm ="FFreeBlobPtV"
 

Private Attributes

TCRef CRef
 

Friends

class TPt< TBlobBs >
 

Detailed Description

Definition at line 89 of file blobbs.h.

Constructor & Destructor Documentation

TBlobBs::TBlobBs ( )
inline

Definition at line 95 of file blobbs.h.

95 {}
virtual TBlobBs::~TBlobBs ( )
inlinevirtual

Definition at line 96 of file blobbs.h.

96 {}
TBlobBs::TBlobBs ( TSIn )
inline

Definition at line 97 of file blobbs.h.

97 {Fail;}
#define Fail
Definition: bd.h:238

Member Function Documentation

void TBlobBs::AssertBfCsEqFlCs ( const TCs BfCs,
const TCs FCs 
)

Definition at line 205 of file blobbs.cpp.

205  {
206  if (BfCs!=FCs){
207  printf("[%d:%d]\n", BfCs.Get(), FCs.Get());}
208  //EAssert(BfCs==FCs);
209 }
int Get() const
Definition: fl.h:25
void TBlobBs::AssertBlobBsStateStr ( const PFRnd FBlobBs,
const TBlobBsState State 
)

Definition at line 90 of file blobbs.cpp.

91  {
92  TStr CorrStateStr=GetBlobBsStateStr(State);
93  bool IsOk;
94  TStr TestStateStr=FBlobBs->GetStr(GetStateStrLen(), IsOk);
95  if (!(IsOk && (CorrStateStr==TestStateStr))) {
96  TExcept::ThrowFull("Error in AssertBlobBsStateStr!", TStr(__FILE__)+" line "+TInt::GetStr(__LINE__));
97  }
98 }
TStr GetStr(const int &StrLen)
Definition: fl.cpp:1094
TStr GetStr() const
Definition: dt.h:1200
int GetStateStrLen()
Definition: blobbs.h:106
static void ThrowFull(const TStr &MsgStr, const TStr &LocStr)
Definition: ut.h:198
Definition: dt.h:412
TStr GetBlobBsStateStr(const TBlobBsState &BlobBsState)
Definition: blobbs.cpp:75
void TBlobBs::AssertBlobState ( const PFRnd FBlobBs,
const TBlobState State 
)

Definition at line 201 of file blobbs.cpp.

201  {
202  EAssert(TBlobState(FBlobBs->GetCh())==State);
203 }
TBlobState
Definition: blobbs.h:87
char GetCh()
Definition: fl.h:621
#define EAssert(Cond)
Definition: bd.h:280
void TBlobBs::AssertBlobTag ( const PFRnd FBlobBs,
const TBlobTag BlobTag 
)

Definition at line 185 of file blobbs.cpp.

185  {
186  switch (BlobTag){
187  case btBegin: EAssert(FBlobBs->GetUInt()==GetBeginBlobTag()); break;
188  case btEnd: EAssert(FBlobBs->GetUInt()==GetEndBlobTag()); break;
189  default: TExcept::Throw("Error asserting BlobTag");
190  }
191 }
uint GetBeginBlobTag()
Definition: blobbs.h:127
Definition: blobbs.h:86
Definition: blobbs.h:86
uint GetEndBlobTag()
Definition: blobbs.h:128
static void Throw(const TStr &MsgStr)
Definition: ut.h:187
#define EAssert(Cond)
Definition: bd.h:280
uint GetUInt()
Definition: fl.h:627
void TBlobBs::AssertVersionStr ( const PFRnd FBlobBs)

Definition at line 68 of file blobbs.cpp.

68  {
69  TStr CorrVersionStr=GetVersionStr();
70  bool IsOk=false;
71  TStr TestVersionStr=FBlobBs->GetStr(CorrVersionStr.Len(), IsOk);
72  EAssert(IsOk && (CorrVersionStr==TestVersionStr));
73 }
TStr GetStr(const int &StrLen)
Definition: fl.cpp:1094
int Len() const
Definition: dt.h:490
virtual TStr GetVersionStr() const =0
#define EAssert(Cond)
Definition: bd.h:280
Definition: dt.h:412
virtual void TBlobBs::DelBlob ( const TBlobPt BlobPt)
pure virtual

Implemented in TMBlobBs, and TGBlobBs.

virtual TBlobPt TBlobBs::FFirstBlobPt ( )
pure virtual

Implemented in TMBlobBs, and TGBlobBs.

virtual bool TBlobBs::FNextBlobPt ( TBlobPt TrvBlobPt,
TBlobPt BlobPt,
PSIn BlobSIn 
)
pure virtual

Implemented in TMBlobBs, and TGBlobBs.

bool TBlobBs::FNextBlobPt ( TBlobPt TrvBlobPt,
PSIn BlobSIn 
)
inline

Definition at line 148 of file blobbs.h.

148  {
149  TBlobPt BlobPt; return FNextBlobPt(TrvBlobPt, BlobPt, BlobSIn);}
virtual bool FNextBlobPt(TBlobPt &TrvBlobPt, TBlobPt &BlobPt, PSIn &BlobSIn)=0
Definition: blobbs.h:5
void TBlobBs::GenBlockLenV ( TIntV BlockLenV)

Definition at line 114 of file blobbs.cpp.

114  {
115  BlockLenV.Clr();
116  for (int P2Exp=0; P2Exp<TB4Def::MxP2Exp; P2Exp++){
117  BlockLenV.Add(TInt(TB4Def::GetP2(P2Exp)));}
118  EAssert(int(BlockLenV.Last())<2000000000);
119 
120  {for (int Len=10; Len<100; Len+=10){BlockLenV.Add(Len);}}
121  {for (int Len=100; Len<10000; Len+=100){BlockLenV.Add(Len);}}
122  {for (int Len=10000; Len<100000; Len+=1000){BlockLenV.Add(Len);}}
123  {for (int Len=100000; Len<1000000; Len+=25000){BlockLenV.Add(Len);}}
124  {for (int Len=1000000; Len<10000000; Len+=1000000){BlockLenV.Add(Len);}}
125  {for (int Len=10000000; Len<100000000; Len+=10000000){BlockLenV.Add(Len);}}
126 
127  BlockLenV.Sort();
128 }
static const int MxP2Exp
Definition: bits.h:55
void Clr(const bool &DoDel=true, const TSizeTy &NoDelLim=-1)
Clears the contents of the vector.
Definition: ds.h:1022
void Sort(const bool &Asc=true)
Sorts the elements of the vector.
Definition: ds.h:1318
const TVal & Last() const
Returns a reference to the last element of the vector.
Definition: ds.h:579
Definition: dt.h:1137
#define EAssert(Cond)
Definition: bd.h:280
TSizeTy Add()
Adds a new element at the end of the vector, after its current last element.
Definition: ds.h:602
static uint GetP2(const int &P2Exp)
Definition: bits.cpp:91
void TBlobBs::GenFFreeBlobPtV ( const TIntV BlockLenV,
TBlobPtV FFreeBlobPtV 
)

Definition at line 148 of file blobbs.cpp.

148  {
149  FFreeBlobPtV.Gen(BlockLenV.Len()+1);
150 }
TSizeTy Len() const
Returns the number of elements in the vector.
Definition: ds.h:575
void Gen(const TSizeTy &_Vals)
Constructs a vector (an array) of _Vals elements.
Definition: ds.h:523
void TBlobBs::GetAllocInfo ( const int &  BfL,
const TIntV BlockLenV,
int &  MxBfL,
int &  FFreeBlobPtN 
)

Definition at line 168 of file blobbs.cpp.

169  {
170  int BlockLenN=0;
171  while ((BlockLenN<BlockLenV.Len())&&(BfL>BlockLenV[BlockLenN])){
172  BlockLenN++;}
173  EAssert(BlockLenN<BlockLenV.Len());
174  MxBfL=BlockLenV[BlockLenN]; FFreeBlobPtN=BlockLenN;
175 }
TSizeTy Len() const
Returns the number of elements in the vector.
Definition: ds.h:575
#define EAssert(Cond)
Definition: bd.h:280
uint TBlobBs::GetBeginBlobTag ( )
inline

Definition at line 127 of file blobbs.h.

127 {return 0xABCDEFFF;}
virtual PSIn TBlobBs::GetBlob ( const TBlobPt BlobPt)
pure virtual

Implemented in TMBlobBs, and TGBlobBs.

TStr TBlobBs::GetBlobBsStateStr ( const TBlobBsState BlobBsState)

Definition at line 75 of file blobbs.cpp.

75  {
76  TStr StateStr;
77  switch (BlobBsState){
78  case bbsOpened: StateStr="Opened"; break;
79  case bbsClosed: StateStr="Closed"; break;
80  default: Fail; return TStr();
81  }
82  EAssert(StateStr.Len()==GetStateStrLen());
83  return StateStr;
84 }
int Len() const
Definition: dt.h:490
int GetStateStrLen()
Definition: blobbs.h:106
#define Fail
Definition: bd.h:238
#define EAssert(Cond)
Definition: bd.h:280
Definition: dt.h:412
TBlobState TBlobBs::GetBlobState ( const PFRnd FBlobBs)

Definition at line 197 of file blobbs.cpp.

197  {
198  return TBlobState(int(FBlobBs->GetCh()));
199 }
TBlobState
Definition: blobbs.h:87
char GetCh()
Definition: fl.h:621
void TBlobBs::GetBlockLenV ( const PFRnd FBlobBs,
TIntV BlockLenV 
)

Definition at line 138 of file blobbs.cpp.

138  {
139  EAssert(FBlobBs->GetStr(BlockLenVNm.Len())==BlockLenVNm);
140  BlockLenV.Gen(FBlobBs->GetInt());
141  for (int BlockLenN=0; BlockLenN<BlockLenV.Len(); BlockLenN++){
142  BlockLenV[BlockLenN]=FBlobBs->GetInt();}
143  EAssert(FBlobBs->GetInt()==-1);
144 }
TStr GetStr(const int &StrLen)
Definition: fl.cpp:1094
int Len() const
Definition: dt.h:490
TSizeTy Len() const
Returns the number of elements in the vector.
Definition: ds.h:575
int GetInt()
Definition: fl.h:625
static const TStr BlockLenVNm
Definition: blobbs.h:114
#define EAssert(Cond)
Definition: bd.h:280
void Gen(const TSizeTy &_Vals)
Constructs a vector (an array) of _Vals elements.
Definition: ds.h:523
uint TBlobBs::GetEndBlobTag ( )
inline

Definition at line 128 of file blobbs.h.

128 {return 0xFFFEDCBA;}
void TBlobBs::GetFFreeBlobPtV ( const PFRnd FBlobBs,
TBlobPtV FFreeBlobPtV 
)

Definition at line 160 of file blobbs.cpp.

160  {
162  FFreeBlobPtV.Gen(FBlobBs->GetInt());
163  for (int FFreeBlobPtN=0; FFreeBlobPtN<FFreeBlobPtV.Len(); FFreeBlobPtN++){
164  FFreeBlobPtV[FFreeBlobPtN]=TBlobPt::Load(FBlobBs);}
165  EAssert(FBlobBs->GetInt()==-1);
166 }
TStr GetStr(const int &StrLen)
Definition: fl.cpp:1094
static TBlobPt Load(const PFRnd &FRnd)
Definition: blobbs.h:62
int Len() const
Definition: dt.h:490
TSizeTy Len() const
Returns the number of elements in the vector.
Definition: ds.h:575
int GetInt()
Definition: fl.h:625
#define EAssert(Cond)
Definition: bd.h:280
void Gen(const TSizeTy &_Vals)
Constructs a vector (an array) of _Vals elements.
Definition: ds.h:523
static const TStr FFreeBlobPtVNm
Definition: blobbs.h:119
virtual TBlobPt TBlobBs::GetFirstBlobPt ( )
pure virtual

Implemented in TMBlobBs, and TGBlobBs.

int TBlobBs::GetMxSegLen ( const PFRnd FBlobBs)

Definition at line 107 of file blobbs.cpp.

107  {
108  EAssert(FBlobBs->GetStr(MxSegLenVNm.Len())==MxSegLenVNm);
109  return FBlobBs->GetInt();
110 }
TStr GetStr(const int &StrLen)
Definition: fl.cpp:1094
int Len() const
Definition: dt.h:490
static const TStr MxSegLenVNm
Definition: blobbs.h:110
int GetInt()
Definition: fl.h:625
#define EAssert(Cond)
Definition: bd.h:280
int TBlobBs::GetStateStrLen ( )
inline

Definition at line 106 of file blobbs.h.

106 {return 6;}
virtual TStr TBlobBs::GetVersionStr ( ) const
pure virtual

Implemented in TMBlobBs, and TGBlobBs.

static PBlobBs TBlobBs::Load ( TSIn )
inlinestatic

Definition at line 98 of file blobbs.h.

98 {Fail; return NULL;}
#define Fail
Definition: bd.h:238
virtual TBlobPt TBlobBs::PutBlob ( const PSIn SIn)
pure virtual

Implemented in TMBlobBs, and TGBlobBs.

TBlobPt TBlobBs::PutBlob ( const TStr Str)
inline

Definition at line 139 of file blobbs.h.

139  {
140  PSIn SIn=TStrIn::New(Str); return PutBlob(SIn);}
static PSIn New(const TStr &Str)
Definition: dt.h:711
virtual TBlobPt PutBlob(const PSIn &SIn)=0
virtual TBlobPt TBlobBs::PutBlob ( const TBlobPt BlobPt,
const PSIn SIn 
)
pure virtual

Implemented in TMBlobBs, and TGBlobBs.

void TBlobBs::PutBlobBsStateStr ( const PFRnd FBlobBs,
const TBlobBsState State 
)

Definition at line 86 of file blobbs.cpp.

86  {
87  FBlobBs->PutStr(GetBlobBsStateStr(State));
88 }
void PutStr(const TStr &Str)
Definition: fl.cpp:1079
TStr GetBlobBsStateStr(const TBlobBsState &BlobBsState)
Definition: blobbs.cpp:75
void TBlobBs::PutBlobState ( const PFRnd FBlobBs,
const TBlobState State 
)

Definition at line 193 of file blobbs.cpp.

193  {
194  FBlobBs->PutCh(char(State));
195 }
void PutCh(const char &Ch)
Definition: fl.h:619
void TBlobBs::PutBlobTag ( const PFRnd FBlobBs,
const TBlobTag BlobTag 
)

Definition at line 177 of file blobbs.cpp.

177  {
178  switch (BlobTag){
179  case btBegin: FBlobBs->PutUInt(GetBeginBlobTag()); break;
180  case btEnd: FBlobBs->PutUInt(GetEndBlobTag()); break;
181  default: Fail;
182  }
183 }
uint GetBeginBlobTag()
Definition: blobbs.h:127
Definition: blobbs.h:86
Definition: blobbs.h:86
#define Fail
Definition: bd.h:238
void PutUInt(const uint &UInt)
Definition: fl.h:626
uint GetEndBlobTag()
Definition: blobbs.h:128
void TBlobBs::PutBlockLenV ( const PFRnd FBlobBs,
const TIntV BlockLenV 
)

Definition at line 130 of file blobbs.cpp.

130  {
131  FBlobBs->PutStr(BlockLenVNm);
132  FBlobBs->PutInt(BlockLenV.Len());
133  for (int BlockLenN=0; BlockLenN<BlockLenV.Len(); BlockLenN++){
134  FBlobBs->PutInt(BlockLenV[BlockLenN]);}
135  FBlobBs->PutInt(-1);
136 }
void PutInt(const int &Int)
Definition: fl.h:624
TSizeTy Len() const
Returns the number of elements in the vector.
Definition: ds.h:575
void PutStr(const TStr &Str)
Definition: fl.cpp:1079
static const TStr BlockLenVNm
Definition: blobbs.h:114
void TBlobBs::PutFFreeBlobPtV ( const PFRnd FBlobBs,
const TBlobPtV FFreeBlobPtV 
)

Definition at line 152 of file blobbs.cpp.

152  {
153  FBlobBs->PutStr(FFreeBlobPtVNm);
154  FBlobBs->PutInt(FFreeBlobPtV.Len());
155  for (int BlockLenN=0; BlockLenN<FFreeBlobPtV.Len(); BlockLenN++){
156  FFreeBlobPtV[BlockLenN].Save(FBlobBs);}
157  FBlobBs->PutInt(-1);
158 }
void PutInt(const int &Int)
Definition: fl.h:624
TSizeTy Len() const
Returns the number of elements in the vector.
Definition: ds.h:575
void Save(TSOut &SOut) const
Definition: ds.h:954
void PutStr(const TStr &Str)
Definition: fl.cpp:1079
static const TStr FFreeBlobPtVNm
Definition: blobbs.h:119
void TBlobBs::PutMxSegLen ( const PFRnd FBlobBs,
const int &  MxSegLen 
)

Definition at line 102 of file blobbs.cpp.

102  {
103  FBlobBs->PutStr(MxSegLenVNm);
104  FBlobBs->PutInt(MxSegLen);
105 }
void PutInt(const int &Int)
Definition: fl.h:624
static const TStr MxSegLenVNm
Definition: blobbs.h:110
void PutStr(const TStr &Str)
Definition: fl.cpp:1079
void TBlobBs::PutVersionStr ( const PFRnd FBlobBs)

Definition at line 64 of file blobbs.cpp.

64  {
65  FBlobBs->PutStr(GetVersionStr());
66 }
virtual TStr GetVersionStr() const =0
void PutStr(const TStr &Str)
Definition: fl.cpp:1079
void TBlobBs::Save ( TSOut ) const
inline

Definition at line 99 of file blobbs.h.

99 {Fail;}
#define Fail
Definition: bd.h:238
TBlobBs::UndefCopyAssign ( TBlobBs  )

Friends And Related Function Documentation

friend class TPt< TBlobBs >
friend

Definition at line 89 of file blobbs.h.

Member Data Documentation

const TStr TBlobBs::BlockLenVNm ="BlockLenV"
static

Definition at line 114 of file blobbs.h.

TCRef TBlobBs::CRef
private

Definition at line 89 of file blobbs.h.

const TStr TBlobBs::FFreeBlobPtVNm ="FFreeBlobPtV"
static

Definition at line 119 of file blobbs.h.

const int TBlobBs::MnBlobBfL =16
static

Definition at line 91 of file blobbs.h.

const int TBlobBs::MxBlobFLen =1000000000
static

Definition at line 92 of file blobbs.h.

const TStr TBlobBs::MxSegLenVNm ="MxSegLen"
static

Definition at line 110 of file blobbs.h.


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