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

#include <attr.h>

Collaboration diagram for TAttrPair:

Public Member Functions

 TAttrPair ()
 
 TAttrPair (const TAttrPair &Attrs)
 
 TAttrPair (TSIn &SIn)
 Constructor for loading attributes from a (binary) stream SIn. More...
 
void Save (TSOut &SOut) const
 Saves the attributes to a (binary) stream SOut. More...
 
void Clr ()
 Clears the contents of the attribute map. More...
 
int AddSAttrDat (const TIntPr &Id, const TStr &AttrName, const TInt &Val)
 Add Int attribute with name AttrName for the given id Id. More...
 
int AddSAttrDat (const TIntPr &Id, const TInt &AttrId, const TInt &Val)
 Add Int attribute with attribute id AttrId for the given id Id. More...
 
int AddSAttrDat (const TIntPr &Id, const TStr &AttrName, const TFlt &Val)
 Add Flt attribute with name AttrName for the given id Id. More...
 
int AddSAttrDat (const TIntPr &Id, const TInt &AttrId, const TFlt &Val)
 Add Flt attribute with attribute id AttrId for the given id Id. More...
 
int AddSAttrDat (const TIntPr &Id, const TStr &AttrName, const TStr &Val)
 Add Str attribute with name AttrName for the given id Id. More...
 
int AddSAttrDat (const TIntPr &Id, const TInt &AttrId, const TStr &Val)
 Add Str attribute with attribute id AttrId for the given id Id. More...
 
int GetSAttrDat (const TIntPr &Id, const TStr &AttrName, TInt &ValX) const
 Get Int attribute with name AttrName for the given id Id. More...
 
int GetSAttrDat (const TIntPr &Id, const TInt &AttrId, TInt &ValX) const
 Get Int attribute with attribute id AttrId for the given id Id. More...
 
int GetSAttrDat (const TIntPr &Id, const TStr &AttrName, TFlt &ValX) const
 Get Flt attribute with name AttrName for the given id Id. More...
 
int GetSAttrDat (const TIntPr &Id, const TInt &AttrId, TFlt &ValX) const
 Get Flt attribute with attribute id AttrId for the given id Id. More...
 
int GetSAttrDat (const TIntPr &Id, const TStr &AttrName, TStr &ValX) const
 Get Str attribute with name AttrName for the given id Id. More...
 
int GetSAttrDat (const TIntPr &Id, const TInt &AttrId, TStr &ValX) const
 Get Str attribute with attribute id AttrId for the given id Id. More...
 
int DelSAttrDat (const TIntPr &Id, const TStr &AttrName)
 Delete attribute with name AttrName for the given id Id. More...
 
int DelSAttrDat (const TIntPr &Id, const TInt &AttrId)
 Delete attribute with attribute id AttrId for the given id Id. More...
 
void DelSAttrId (const TIntPr &Id)
 Delete all attributes for the given id Id. More...
 
void GetSAttrV (const TIntPr &Id, const TAttrType AttrType, TAttrPrV &AttrV) const
 Get a list of all attributes of the given type AttrType for the given id Id. More...
 
int GetIdVSAttr (const TStr &AttrName, TIntPrV &IdV) const
 Get a list of all ids that have an attribute with name AttrName. More...
 
int GetIdVSAttr (const TInt &AttrId, TIntPrV &IdV) const
 Get a list of all ids that have an attribute with attribute id AttrId. More...
 
int AddSAttr (const TStr &Name, const TAttrType &AttrType, TInt &AttrIdX)
 Adds a mapping for an attribute with name Name and type AttrType. More...
 
int GetSAttrId (const TStr &Name, TInt &AttrIdX, TAttrType &AttrTypeX) const
 Given the attribute name Name, get the attribute id and type. More...
 
int GetSAttrName (const TInt &AttrId, TStr &NameX, TAttrType &AttrTypeX) const
 Given the attribute id AttrId, get the attribute name and type. More...
 

Private Member Functions

int GetIdVSAttr (const TInt &AttrId, const TAttrType Type, TIntPrV &IdV) const
 

Private Attributes

TStrIntPrH AttrNameToId
 
TIntIntStrPrH AttrIdToName
 
TIntIntPrPrIntH IntAttrVals
 
TIntIntPrPrFltH FltAttrVals
 
TIntIntPrPrStrH StrAttrVals
 

Detailed Description

Definition at line 98 of file attr.h.

Constructor & Destructor Documentation

TAttrPair::TAttrPair ( )
inline

Definition at line 109 of file attr.h.

110  FltAttrVals(), StrAttrVals() { }
TIntIntStrPrH AttrIdToName
Definition: attr.h:101
TIntIntPrPrIntH IntAttrVals
Definition: attr.h:103
TIntIntPrPrFltH FltAttrVals
Definition: attr.h:104
TStrIntPrH AttrNameToId
Definition: attr.h:100
TIntIntPrPrStrH StrAttrVals
Definition: attr.h:105
TAttrPair::TAttrPair ( const TAttrPair Attrs)
inline

Definition at line 111 of file attr.h.

111  : AttrNameToId(Attrs.AttrNameToId),
TIntIntStrPrH AttrIdToName
Definition: attr.h:101
TIntIntPrPrIntH IntAttrVals
Definition: attr.h:103
TIntIntPrPrFltH FltAttrVals
Definition: attr.h:104
TStrIntPrH AttrNameToId
Definition: attr.h:100
TIntIntPrPrStrH StrAttrVals
Definition: attr.h:105
TAttrPair::TAttrPair ( TSIn SIn)
inline

Constructor for loading attributes from a (binary) stream SIn.

Definition at line 115 of file attr.h.

115  : AttrNameToId(SIn), AttrIdToName(SIn),
116  IntAttrVals(SIn), FltAttrVals(SIn), StrAttrVals(SIn) { }
TIntIntStrPrH AttrIdToName
Definition: attr.h:101
TIntIntPrPrIntH IntAttrVals
Definition: attr.h:103
TIntIntPrPrFltH FltAttrVals
Definition: attr.h:104
TStrIntPrH AttrNameToId
Definition: attr.h:100
TIntIntPrPrStrH StrAttrVals
Definition: attr.h:105

Member Function Documentation

int TAttrPair::AddSAttr ( const TStr Name,
const TAttrType AttrType,
TInt AttrIdX 
)

Adds a mapping for an attribute with name Name and type AttrType.

Definition at line 454 of file attr.cpp.

References THash< TKey, TDat, THashFunc >::AddDat(), atFlt, atInt, atStr, AttrIdToName, AttrNameToId, and THash< TKey, TDat, THashFunc >::GetMxKeyIds().

Referenced by AddSAttrDat().

454  {
455  if (AttrType != atInt && AttrType != atFlt && AttrType != atStr) {
456  return -1; // type must be defined and can only have a single type
457  }
458  AttrId = AttrNameToId.GetMxKeyIds();
459  TIntPr TypeAndId(AttrType, AttrId);
460  AttrNameToId.AddDat(Name, TypeAndId);
461  TIntStrPr TypeAndName(AttrType, Name);
462  AttrIdToName.AddDat(AttrId, TypeAndName);
463  return 0;
464 }
TIntIntStrPrH AttrIdToName
Definition: attr.h:101
Definition: gbase.h:23
TStrIntPrH AttrNameToId
Definition: attr.h:100
int GetMxKeyIds() const
Definition: hash.h:231
Definition: ds.h:32
Definition: gbase.h:23
Definition: gbase.h:23
TDat & AddDat(const TKey &Key)
Definition: hash.h:238

Here is the call graph for this function:

Here is the caller graph for this function:

int TAttrPair::AddSAttrDat ( const TIntPr Id,
const TStr AttrName,
const TInt Val 
)

Add Int attribute with name AttrName for the given id Id.

Definition at line 246 of file attr.cpp.

References AddSAttr(), atInt, AttrNameToId, THash< TKey, TDat, THashFunc >::GetDat(), TPair< TVal1, TVal2 >::GetVal2(), and THash< TKey, TDat, THashFunc >::IsKey().

Referenced by AddSAttrDat().

246  {
247  TInt AttrId;
248  if (!AttrNameToId.IsKey(AttrName)) {
249  AddSAttr(AttrName, atInt, AttrId);
250  } else {
251  AttrId = AttrNameToId.GetDat(AttrName).GetVal2();
252  }
253  return AddSAttrDat(Id, AttrId, Val);
254 }
const TVal2 & GetVal2() const
Definition: ds.h:61
const TDat & GetDat(const TKey &Key) const
Definition: hash.h:262
Definition: gbase.h:23
TStrIntPrH AttrNameToId
Definition: attr.h:100
Definition: dt.h:1137
int AddSAttr(const TStr &Name, const TAttrType &AttrType, TInt &AttrIdX)
Adds a mapping for an attribute with name Name and type AttrType.
Definition: attr.cpp:454
int AddSAttrDat(const TIntPr &Id, const TStr &AttrName, const TInt &Val)
Add Int attribute with name AttrName for the given id Id.
Definition: attr.cpp:246
bool IsKey(const TKey &Key) const
Definition: hash.h:258

Here is the call graph for this function:

Here is the caller graph for this function:

int TAttrPair::AddSAttrDat ( const TIntPr Id,
const TInt AttrId,
const TInt Val 
)

Add Int attribute with attribute id AttrId for the given id Id.

Definition at line 255 of file attr.cpp.

References THash< TKey, TDat, THashFunc >::AddDat(), atInt, AttrIdToName, THash< TKey, TDat, THashFunc >::GetDat(), TPair< TVal1, TVal2 >::GetVal1(), IntAttrVals, and THash< TKey, TDat, THashFunc >::IsKey().

255  {
256  if (!AttrIdToName.IsKey(AttrId)) { return -1; }
257  if (AttrIdToName.GetDat(AttrId).GetVal1() != atInt) { return -2; }
258  TIntIntPrPr Key(AttrId, Id);
259  IntAttrVals.AddDat(Key, Val);
260  return 0;
261 }
const TVal1 & GetVal1() const
Definition: ds.h:60
TIntIntStrPrH AttrIdToName
Definition: attr.h:101
const TDat & GetDat(const TKey &Key) const
Definition: hash.h:262
Definition: gbase.h:23
TIntIntPrPrIntH IntAttrVals
Definition: attr.h:103
Definition: ds.h:32
bool IsKey(const TKey &Key) const
Definition: hash.h:258
TDat & AddDat(const TKey &Key)
Definition: hash.h:238

Here is the call graph for this function:

int TAttrPair::AddSAttrDat ( const TIntPr Id,
const TStr AttrName,
const TFlt Val 
)

Add Flt attribute with name AttrName for the given id Id.

Definition at line 263 of file attr.cpp.

References AddSAttr(), AddSAttrDat(), atFlt, AttrNameToId, THash< TKey, TDat, THashFunc >::GetDat(), TPair< TVal1, TVal2 >::GetVal2(), and THash< TKey, TDat, THashFunc >::IsKey().

263  {
264  TInt AttrId;
265  if (!AttrNameToId.IsKey(AttrName)) {
266  AddSAttr(AttrName, atFlt, AttrId);
267  } else {
268  AttrId = AttrNameToId.GetDat(AttrName).GetVal2();
269  }
270  return AddSAttrDat(Id, AttrId, Val);
271 }
const TVal2 & GetVal2() const
Definition: ds.h:61
const TDat & GetDat(const TKey &Key) const
Definition: hash.h:262
TStrIntPrH AttrNameToId
Definition: attr.h:100
Definition: dt.h:1137
int AddSAttr(const TStr &Name, const TAttrType &AttrType, TInt &AttrIdX)
Adds a mapping for an attribute with name Name and type AttrType.
Definition: attr.cpp:454
int AddSAttrDat(const TIntPr &Id, const TStr &AttrName, const TInt &Val)
Add Int attribute with name AttrName for the given id Id.
Definition: attr.cpp:246
Definition: gbase.h:23
bool IsKey(const TKey &Key) const
Definition: hash.h:258

Here is the call graph for this function:

int TAttrPair::AddSAttrDat ( const TIntPr Id,
const TInt AttrId,
const TFlt Val 
)

Add Flt attribute with attribute id AttrId for the given id Id.

Definition at line 272 of file attr.cpp.

References THash< TKey, TDat, THashFunc >::AddDat(), atFlt, AttrIdToName, FltAttrVals, THash< TKey, TDat, THashFunc >::GetDat(), TPair< TVal1, TVal2 >::GetVal1(), and THash< TKey, TDat, THashFunc >::IsKey().

272  {
273  if (!AttrIdToName.IsKey(AttrId)) { return -1; }
274  if (AttrIdToName.GetDat(AttrId).GetVal1() != atFlt) { return -2; }
275  TIntIntPrPr Key(AttrId, Id);
276  FltAttrVals.AddDat(Key, Val);
277  return 0;
278 }
const TVal1 & GetVal1() const
Definition: ds.h:60
TIntIntStrPrH AttrIdToName
Definition: attr.h:101
const TDat & GetDat(const TKey &Key) const
Definition: hash.h:262
TIntIntPrPrFltH FltAttrVals
Definition: attr.h:104
Definition: ds.h:32
Definition: gbase.h:23
bool IsKey(const TKey &Key) const
Definition: hash.h:258
TDat & AddDat(const TKey &Key)
Definition: hash.h:238

Here is the call graph for this function:

int TAttrPair::AddSAttrDat ( const TIntPr Id,
const TStr AttrName,
const TStr Val 
)

Add Str attribute with name AttrName for the given id Id.

Definition at line 280 of file attr.cpp.

References AddSAttr(), AddSAttrDat(), atStr, AttrNameToId, THash< TKey, TDat, THashFunc >::GetDat(), TPair< TVal1, TVal2 >::GetVal2(), and THash< TKey, TDat, THashFunc >::IsKey().

280  {
281  TInt AttrId;
282  if (!AttrNameToId.IsKey(AttrName)) {
283  AddSAttr(AttrName, atStr, AttrId);
284  } else {
285  AttrId = AttrNameToId.GetDat(AttrName).GetVal2();
286  }
287  return AddSAttrDat(Id, AttrId, Val);
288 }
const TVal2 & GetVal2() const
Definition: ds.h:61
const TDat & GetDat(const TKey &Key) const
Definition: hash.h:262
TStrIntPrH AttrNameToId
Definition: attr.h:100
Definition: dt.h:1137
int AddSAttr(const TStr &Name, const TAttrType &AttrType, TInt &AttrIdX)
Adds a mapping for an attribute with name Name and type AttrType.
Definition: attr.cpp:454
int AddSAttrDat(const TIntPr &Id, const TStr &AttrName, const TInt &Val)
Add Int attribute with name AttrName for the given id Id.
Definition: attr.cpp:246
Definition: gbase.h:23
bool IsKey(const TKey &Key) const
Definition: hash.h:258

Here is the call graph for this function:

int TAttrPair::AddSAttrDat ( const TIntPr Id,
const TInt AttrId,
const TStr Val 
)

Add Str attribute with attribute id AttrId for the given id Id.

Definition at line 289 of file attr.cpp.

References THash< TKey, TDat, THashFunc >::AddDat(), atStr, AttrIdToName, THash< TKey, TDat, THashFunc >::GetDat(), TPair< TVal1, TVal2 >::GetVal1(), THash< TKey, TDat, THashFunc >::IsKey(), and StrAttrVals.

289  {
290  if (!AttrIdToName.IsKey(AttrId)) { return -1; }
291  if (AttrIdToName.GetDat(AttrId).GetVal1() != atStr) { return -2; }
292  TIntIntPrPr Key(AttrId, Id);
293  StrAttrVals.AddDat(Key, Val);
294  return 0;
295 }
const TVal1 & GetVal1() const
Definition: ds.h:60
TIntIntStrPrH AttrIdToName
Definition: attr.h:101
const TDat & GetDat(const TKey &Key) const
Definition: hash.h:262
TIntIntPrPrStrH StrAttrVals
Definition: attr.h:105
Definition: ds.h:32
Definition: gbase.h:23
bool IsKey(const TKey &Key) const
Definition: hash.h:258
TDat & AddDat(const TKey &Key)
Definition: hash.h:238

Here is the call graph for this function:

void TAttrPair::Clr ( )
inline

Clears the contents of the attribute map.

Definition at line 122 of file attr.h.

References THash< TKey, TDat, THashFunc >::Clr().

Referenced by TUndirNet::Clr(), and TDirNet::Clr().

TIntIntStrPrH AttrIdToName
Definition: attr.h:101
TIntIntPrPrIntH IntAttrVals
Definition: attr.h:103
TIntIntPrPrFltH FltAttrVals
Definition: attr.h:104
TStrIntPrH AttrNameToId
Definition: attr.h:100
TIntIntPrPrStrH StrAttrVals
Definition: attr.h:105
void Clr(const bool &DoDel=true, const int &NoDelLim=-1, const bool &ResetDat=true)
Definition: hash.h:361

Here is the call graph for this function:

Here is the caller graph for this function:

int TAttrPair::DelSAttrDat ( const TIntPr Id,
const TStr AttrName 
)

Delete attribute with name AttrName for the given id Id.

Definition at line 347 of file attr.cpp.

References AttrNameToId, THash< TKey, TDat, THashFunc >::GetDat(), TPair< TVal1, TVal2 >::GetVal2(), and THash< TKey, TDat, THashFunc >::IsKey().

347  {
348  if (!AttrNameToId.IsKey(AttrName)) { return -1; }
349  TInt AttrId = AttrNameToId.GetDat(AttrName).GetVal2();
350  return DelSAttrDat(Id, AttrId);
351 }
const TVal2 & GetVal2() const
Definition: ds.h:61
const TDat & GetDat(const TKey &Key) const
Definition: hash.h:262
TStrIntPrH AttrNameToId
Definition: attr.h:100
Definition: dt.h:1137
int DelSAttrDat(const TIntPr &Id, const TStr &AttrName)
Delete attribute with name AttrName for the given id Id.
Definition: attr.cpp:347
bool IsKey(const TKey &Key) const
Definition: hash.h:258

Here is the call graph for this function:

int TAttrPair::DelSAttrDat ( const TIntPr Id,
const TInt AttrId 
)

Delete attribute with attribute id AttrId for the given id Id.

Definition at line 352 of file attr.cpp.

References THash< TKey, TDat, THashFunc >::DelKey(), FltAttrVals, IntAttrVals, THash< TKey, TDat, THashFunc >::IsKey(), and StrAttrVals.

352  {
353  TIntIntPrPr Key(AttrId, Id);
354  if (IntAttrVals.IsKey(Key)) {
355  IntAttrVals.DelKey(Key);
356  return 0;
357  } else if (FltAttrVals.IsKey(Key)) {
358  FltAttrVals.DelKey(Key);
359  return 0;
360  } else if (StrAttrVals.IsKey(Key)) {
361  StrAttrVals.DelKey(Key);
362  return 0;
363  }
364  return -1;
365 }
TIntIntPrPrIntH IntAttrVals
Definition: attr.h:103
void DelKey(const TKey &Key)
Definition: hash.h:404
TIntIntPrPrFltH FltAttrVals
Definition: attr.h:104
TIntIntPrPrStrH StrAttrVals
Definition: attr.h:105
Definition: ds.h:32
bool IsKey(const TKey &Key) const
Definition: hash.h:258

Here is the call graph for this function:

void TAttrPair::DelSAttrId ( const TIntPr Id)

Delete all attributes for the given id Id.

Definition at line 368 of file attr.cpp.

References atFlt, atInt, atStr, AttrNameToId, THash< TKey, TDat, THashFunc >::BegI(), THash< TKey, TDat, THashFunc >::DelIfKey(), THash< TKey, TDat, THashFunc >::EndI(), FltAttrVals, IntAttrVals, and StrAttrVals.

368  {
369  for (TStrIntPrH::TIter it = AttrNameToId.BegI(); it < AttrNameToId.EndI(); it++) {
370  TAttrType CurType = static_cast<TAttrType>(it.GetDat().GetVal1().Val);
371  TIntIntPrPr AttrKey(it.GetDat().GetVal2(), Id);
372  if (CurType == atInt) {
373  IntAttrVals.DelIfKey(AttrKey);
374  } else if (CurType == atFlt) {
375  FltAttrVals.DelIfKey(AttrKey);
376  } else if (CurType == atStr) {
377  StrAttrVals.DelIfKey(AttrKey);
378  }
379  }
380 }
enum TAttrType_ TAttrType
Types for tables, sparse and dense attributes.
TIter BegI() const
Definition: hash.h:213
TIter EndI() const
Definition: hash.h:218
Definition: gbase.h:23
TIntIntPrPrIntH IntAttrVals
Definition: attr.h:103
TIntIntPrPrFltH FltAttrVals
Definition: attr.h:104
TStrIntPrH AttrNameToId
Definition: attr.h:100
TIntIntPrPrStrH StrAttrVals
Definition: attr.h:105
Definition: ds.h:32
Definition: gbase.h:23
bool DelIfKey(const TKey &Key)
Definition: hash.h:243
Definition: gbase.h:23

Here is the call graph for this function:

int TAttrPair::GetIdVSAttr ( const TInt AttrId,
const TAttrType  Type,
TIntPrV IdV 
) const
private

Definition at line 411 of file attr.cpp.

References TVec< TVal, TSizeTy >::Add(), atFlt, atInt, atStr, THash< TKey, TDat, THashFunc >::BegI(), THash< TKey, TDat, THashFunc >::EndI(), FltAttrVals, IntAttrVals, and StrAttrVals.

Referenced by GetIdVSAttr().

411  {
412  if (Type == atInt) {
413  for (TIntIntPrPrIntH::TIter it = IntAttrVals.BegI(); it < IntAttrVals.EndI(); it++) {
414  if (it.GetKey().GetVal1() == AttrId) {
415  IdV.Add(it.GetKey().GetVal2());
416  }
417  }
418  } else if (Type == atFlt) {
419  for (TIntIntPrPrFltH::TIter it = FltAttrVals.BegI(); it < FltAttrVals.EndI(); it++) {
420  if (it.GetKey().GetVal1() == AttrId) {
421  IdV.Add(it.GetKey().GetVal2());
422  }
423  }
424  } else if (Type == atStr) {
425  for (TIntIntPrPrStrH::TIter it = StrAttrVals.BegI(); it < StrAttrVals.EndI(); it++) {
426  if (it.GetKey().GetVal1() == AttrId) {
427  IdV.Add(it.GetKey().GetVal2());
428  }
429  }
430  } else {
431  return -1;
432  }
433  return 0;
434 }
TIter BegI() const
Definition: hash.h:213
TIter EndI() const
Definition: hash.h:218
Definition: gbase.h:23
TIntIntPrPrIntH IntAttrVals
Definition: attr.h:103
TIntIntPrPrFltH FltAttrVals
Definition: attr.h:104
TIntIntPrPrStrH StrAttrVals
Definition: attr.h:105
Definition: gbase.h:23
Definition: gbase.h:23
TSizeTy Add()
Adds a new element at the end of the vector, after its current last element.
Definition: ds.h:602

Here is the call graph for this function:

Here is the caller graph for this function:

int TAttrPair::GetIdVSAttr ( const TStr AttrName,
TIntPrV IdV 
) const

Get a list of all ids that have an attribute with name AttrName.

Definition at line 436 of file attr.cpp.

References AttrNameToId, THash< TKey, TDat, THashFunc >::GetDat(), GetIdVSAttr(), TPair< TVal1, TVal2 >::GetVal1(), TPair< TVal1, TVal2 >::GetVal2(), and THash< TKey, TDat, THashFunc >::IsKey().

436  {
437  IdV = TIntPrV();
438  if (!AttrNameToId.IsKey(AttrName)) { return -1; }
439  TIntPr TypeAndId = AttrNameToId.GetDat(AttrName);
440  TAttrType Type = static_cast<TAttrType>(TypeAndId.GetVal1().Val);
441  TInt AttrId = TypeAndId.GetVal2();
442  return GetIdVSAttr(AttrId, Type, IdV);
443 }
enum TAttrType_ TAttrType
Types for tables, sparse and dense attributes.
const TVal1 & GetVal1() const
Definition: ds.h:60
const TVal2 & GetVal2() const
Definition: ds.h:61
const TDat & GetDat(const TKey &Key) const
Definition: hash.h:262
TVec< TIntPr > TIntPrV
Definition: ds.h:1601
TStrIntPrH AttrNameToId
Definition: attr.h:100
Definition: dt.h:1137
int GetIdVSAttr(const TInt &AttrId, const TAttrType Type, TIntPrV &IdV) const
Definition: attr.cpp:411
Definition: ds.h:32
bool IsKey(const TKey &Key) const
Definition: hash.h:258

Here is the call graph for this function:

int TAttrPair::GetIdVSAttr ( const TInt AttrId,
TIntPrV IdV 
) const

Get a list of all ids that have an attribute with attribute id AttrId.

Definition at line 445 of file attr.cpp.

References AttrIdToName, THash< TKey, TDat, THashFunc >::GetDat(), GetIdVSAttr(), TPair< TVal1, TVal2 >::GetVal1(), and THash< TKey, TDat, THashFunc >::IsKey().

445  {
446  IdV = TIntPrV();
447  if (!AttrIdToName.IsKey(AttrId)) { return -1; }
448  TIntStrPr TypeAndName = AttrIdToName.GetDat(AttrId);
449  TAttrType Type = static_cast<TAttrType>(TypeAndName.GetVal1().Val);
450  return GetIdVSAttr(AttrId, Type, IdV);
451 }
enum TAttrType_ TAttrType
Types for tables, sparse and dense attributes.
const TVal1 & GetVal1() const
Definition: ds.h:60
TIntIntStrPrH AttrIdToName
Definition: attr.h:101
const TDat & GetDat(const TKey &Key) const
Definition: hash.h:262
TVec< TIntPr > TIntPrV
Definition: ds.h:1601
int GetIdVSAttr(const TInt &AttrId, const TAttrType Type, TIntPrV &IdV) const
Definition: attr.cpp:411
Definition: ds.h:32
bool IsKey(const TKey &Key) const
Definition: hash.h:258

Here is the call graph for this function:

int TAttrPair::GetSAttrDat ( const TIntPr Id,
const TStr AttrName,
TInt ValX 
) const

Get Int attribute with name AttrName for the given id Id.

Definition at line 298 of file attr.cpp.

References AttrNameToId, THash< TKey, TDat, THashFunc >::GetDat(), TPair< TVal1, TVal2 >::GetVal2(), and THash< TKey, TDat, THashFunc >::IsKey().

Referenced by GetSAttrDat().

298  {
299  if (!AttrNameToId.IsKey(AttrName)) { return -1; }
300  TInt AttrId = AttrNameToId.GetDat(AttrName).GetVal2();
301  return GetSAttrDat(Id, AttrId, Val);
302 }
int GetSAttrDat(const TIntPr &Id, const TStr &AttrName, TInt &ValX) const
Get Int attribute with name AttrName for the given id Id.
Definition: attr.cpp:298
const TVal2 & GetVal2() const
Definition: ds.h:61
const TDat & GetDat(const TKey &Key) const
Definition: hash.h:262
TStrIntPrH AttrNameToId
Definition: attr.h:100
Definition: dt.h:1137
bool IsKey(const TKey &Key) const
Definition: hash.h:258

Here is the call graph for this function:

Here is the caller graph for this function:

int TAttrPair::GetSAttrDat ( const TIntPr Id,
const TInt AttrId,
TInt ValX 
) const

Get Int attribute with attribute id AttrId for the given id Id.

Definition at line 303 of file attr.cpp.

References atInt, AttrIdToName, THash< TKey, TDat, THashFunc >::GetDat(), TPair< TVal1, TVal2 >::GetVal1(), IntAttrVals, and THash< TKey, TDat, THashFunc >::IsKey().

303  {
304  if (!AttrIdToName.IsKey(AttrId)) { return -1; }
305  if (AttrIdToName.GetDat(AttrId).GetVal1() != atInt) { return -2; }
306  TIntIntPrPr Key(AttrId, Id);
307  if (IntAttrVals.IsKey(Key)) {
308  Val = IntAttrVals.GetDat(Key);
309  return 0;
310  }
311  return -1;
312 }
const TVal1 & GetVal1() const
Definition: ds.h:60
TIntIntStrPrH AttrIdToName
Definition: attr.h:101
const TDat & GetDat(const TKey &Key) const
Definition: hash.h:262
Definition: gbase.h:23
TIntIntPrPrIntH IntAttrVals
Definition: attr.h:103
Definition: ds.h:32
bool IsKey(const TKey &Key) const
Definition: hash.h:258

Here is the call graph for this function:

int TAttrPair::GetSAttrDat ( const TIntPr Id,
const TStr AttrName,
TFlt ValX 
) const

Get Flt attribute with name AttrName for the given id Id.

Definition at line 314 of file attr.cpp.

References AttrNameToId, THash< TKey, TDat, THashFunc >::GetDat(), GetSAttrDat(), TPair< TVal1, TVal2 >::GetVal2(), and THash< TKey, TDat, THashFunc >::IsKey().

314  {
315  if (!AttrNameToId.IsKey(AttrName)) { return -1; }
316  TInt AttrId = AttrNameToId.GetDat(AttrName).GetVal2();
317  return GetSAttrDat(Id, AttrId, Val);
318 }
int GetSAttrDat(const TIntPr &Id, const TStr &AttrName, TInt &ValX) const
Get Int attribute with name AttrName for the given id Id.
Definition: attr.cpp:298
const TVal2 & GetVal2() const
Definition: ds.h:61
const TDat & GetDat(const TKey &Key) const
Definition: hash.h:262
TStrIntPrH AttrNameToId
Definition: attr.h:100
Definition: dt.h:1137
bool IsKey(const TKey &Key) const
Definition: hash.h:258

Here is the call graph for this function:

int TAttrPair::GetSAttrDat ( const TIntPr Id,
const TInt AttrId,
TFlt ValX 
) const

Get Flt attribute with attribute id AttrId for the given id Id.

Definition at line 319 of file attr.cpp.

References atFlt, AttrIdToName, FltAttrVals, THash< TKey, TDat, THashFunc >::GetDat(), TPair< TVal1, TVal2 >::GetVal1(), and THash< TKey, TDat, THashFunc >::IsKey().

319  {
320  if (!AttrIdToName.IsKey(AttrId)) { return -1; }
321  if (AttrIdToName.GetDat(AttrId).GetVal1() != atFlt) { return -2; }
322  TIntIntPrPr Key(AttrId, Id);
323  if (FltAttrVals.IsKey(Key)) {
324  Val = FltAttrVals.GetDat(Key);
325  return 0;
326  }
327  return -1;
328 }
const TVal1 & GetVal1() const
Definition: ds.h:60
TIntIntStrPrH AttrIdToName
Definition: attr.h:101
const TDat & GetDat(const TKey &Key) const
Definition: hash.h:262
TIntIntPrPrFltH FltAttrVals
Definition: attr.h:104
Definition: ds.h:32
Definition: gbase.h:23
bool IsKey(const TKey &Key) const
Definition: hash.h:258

Here is the call graph for this function:

int TAttrPair::GetSAttrDat ( const TIntPr Id,
const TStr AttrName,
TStr ValX 
) const

Get Str attribute with name AttrName for the given id Id.

Definition at line 330 of file attr.cpp.

References AttrNameToId, THash< TKey, TDat, THashFunc >::GetDat(), GetSAttrDat(), TPair< TVal1, TVal2 >::GetVal2(), and THash< TKey, TDat, THashFunc >::IsKey().

330  {
331  if (!AttrNameToId.IsKey(AttrName)) { return -1; }
332  TInt AttrId = AttrNameToId.GetDat(AttrName).GetVal2();
333  return GetSAttrDat(Id, AttrId, Val);
334 }
int GetSAttrDat(const TIntPr &Id, const TStr &AttrName, TInt &ValX) const
Get Int attribute with name AttrName for the given id Id.
Definition: attr.cpp:298
const TVal2 & GetVal2() const
Definition: ds.h:61
const TDat & GetDat(const TKey &Key) const
Definition: hash.h:262
TStrIntPrH AttrNameToId
Definition: attr.h:100
Definition: dt.h:1137
bool IsKey(const TKey &Key) const
Definition: hash.h:258

Here is the call graph for this function:

int TAttrPair::GetSAttrDat ( const TIntPr Id,
const TInt AttrId,
TStr ValX 
) const

Get Str attribute with attribute id AttrId for the given id Id.

Definition at line 335 of file attr.cpp.

References atStr, AttrIdToName, THash< TKey, TDat, THashFunc >::GetDat(), TPair< TVal1, TVal2 >::GetVal1(), THash< TKey, TDat, THashFunc >::IsKey(), and StrAttrVals.

335  {
336  if (!AttrIdToName.IsKey(AttrId)) { return -1; }
337  if (AttrIdToName.GetDat(AttrId).GetVal1() != atStr) { return -2; }
338  TIntIntPrPr Key(AttrId, Id);
339  if (StrAttrVals.IsKey(Key)) {
340  Val = StrAttrVals.GetDat(Key);
341  return 0;
342  }
343  return -1;
344 }
const TVal1 & GetVal1() const
Definition: ds.h:60
TIntIntStrPrH AttrIdToName
Definition: attr.h:101
const TDat & GetDat(const TKey &Key) const
Definition: hash.h:262
TIntIntPrPrStrH StrAttrVals
Definition: attr.h:105
Definition: ds.h:32
Definition: gbase.h:23
bool IsKey(const TKey &Key) const
Definition: hash.h:258

Here is the call graph for this function:

int TAttrPair::GetSAttrId ( const TStr Name,
TInt AttrIdX,
TAttrType AttrTypeX 
) const

Given the attribute name Name, get the attribute id and type.

Definition at line 467 of file attr.cpp.

References AttrNameToId, THash< TKey, TDat, THashFunc >::GetDat(), TPair< TVal1, TVal2 >::GetVal1(), TPair< TVal1, TVal2 >::GetVal2(), and THash< TKey, TDat, THashFunc >::IsKey().

467  {
468  if (!AttrNameToId.IsKey(Name)) {
469  return -1;
470  }
471  TIntPr TypeAndId = AttrNameToId.GetDat(Name);
472  AttrType = static_cast<TAttrType>(TypeAndId.GetVal1().Val);
473  AttrId = TypeAndId.GetVal2();
474  return 0;
475 }
enum TAttrType_ TAttrType
Types for tables, sparse and dense attributes.
const TVal1 & GetVal1() const
Definition: ds.h:60
const TVal2 & GetVal2() const
Definition: ds.h:61
const TDat & GetDat(const TKey &Key) const
Definition: hash.h:262
TStrIntPrH AttrNameToId
Definition: attr.h:100
Definition: ds.h:32
bool IsKey(const TKey &Key) const
Definition: hash.h:258

Here is the call graph for this function:

int TAttrPair::GetSAttrName ( const TInt AttrId,
TStr NameX,
TAttrType AttrTypeX 
) const

Given the attribute id AttrId, get the attribute name and type.

Definition at line 477 of file attr.cpp.

References AttrIdToName, THash< TKey, TDat, THashFunc >::GetDat(), TPair< TVal1, TVal2 >::GetVal1(), TPair< TVal1, TVal2 >::GetVal2(), and THash< TKey, TDat, THashFunc >::IsKey().

477  {
478  if (!AttrIdToName.IsKey(AttrId)) {
479  return -1;
480  }
481  TIntStrPr TypeAndName = AttrIdToName.GetDat(AttrId);
482  AttrType = static_cast<TAttrType>(TypeAndName.GetVal1().Val);
483  Name = TypeAndName.GetVal2();
484  return 0;
485 }
enum TAttrType_ TAttrType
Types for tables, sparse and dense attributes.
const TVal1 & GetVal1() const
Definition: ds.h:60
TIntIntStrPrH AttrIdToName
Definition: attr.h:101
const TVal2 & GetVal2() const
Definition: ds.h:61
const TDat & GetDat(const TKey &Key) const
Definition: hash.h:262
Definition: ds.h:32
bool IsKey(const TKey &Key) const
Definition: hash.h:258

Here is the call graph for this function:

void TAttrPair::GetSAttrV ( const TIntPr Id,
const TAttrType  AttrType,
TAttrPrV AttrV 
) const

Get a list of all attributes of the given type AttrType for the given id Id.

Definition at line 383 of file attr.cpp.

References TVec< TVal, TSizeTy >::Add(), atFlt, atInt, atStr, AttrNameToId, THash< TKey, TDat, THashFunc >::BegI(), THash< TKey, TDat, THashFunc >::EndI(), FltAttrVals, IntAttrVals, THash< TKey, TDat, THashFunc >::IsKey(), and StrAttrVals.

383  {
384  AttrV = TAttrPrV();
385  for (TStrIntPrH::TIter it = AttrNameToId.BegI(); it < AttrNameToId.EndI(); it++) {
386  TAttrType CurType = static_cast<TAttrType>(it.GetDat().GetVal1().Val);
387  if (CurType == AttrType) {
388  TIntIntPrPr AttrKey(it.GetDat().GetVal2(), Id);
389  if (CurType == atInt) {
390  if (IntAttrVals.IsKey(AttrKey)) {
391  TAttrPr Dat(it.GetKey(), CurType);
392  AttrV.Add(Dat);
393  }
394 
395  } else if (CurType == atFlt) {
396  if (FltAttrVals.IsKey(AttrKey)) {
397  TAttrPr Dat(it.GetKey(), CurType);
398  AttrV.Add(Dat);
399  }
400  } else if (CurType == atStr) {
401  if (StrAttrVals.IsKey(AttrKey)) {
402  TAttrPr Dat(it.GetKey(), CurType);
403  AttrV.Add(Dat);
404  }
405  }
406  }
407  }
408 }
enum TAttrType_ TAttrType
Types for tables, sparse and dense attributes.
TIter BegI() const
Definition: hash.h:213
TIter EndI() const
Definition: hash.h:218
Definition: gbase.h:23
TIntIntPrPrIntH IntAttrVals
Definition: attr.h:103
TIntIntPrPrFltH FltAttrVals
Definition: attr.h:104
TStrIntPrH AttrNameToId
Definition: attr.h:100
TIntIntPrPrStrH StrAttrVals
Definition: attr.h:105
TVec< TAttrPr > TAttrPrV
Definition: attr.h:2
Definition: ds.h:32
Definition: gbase.h:23
Definition: gbase.h:23
bool IsKey(const TKey &Key) const
Definition: hash.h:258
TSizeTy Add()
Adds a new element at the end of the vector, after its current last element.
Definition: ds.h:602

Here is the call graph for this function:

void TAttrPair::Save ( TSOut SOut) const
inline

Saves the attributes to a (binary) stream SOut.

Definition at line 118 of file attr.h.

References THash< TKey, TDat, THashFunc >::Save().

Referenced by TUndirNet::Save(), and TDirNet::Save().

118  {
119  AttrNameToId.Save(SOut); AttrIdToName.Save(SOut);
120  IntAttrVals.Save(SOut); FltAttrVals.Save(SOut); StrAttrVals.Save(SOut); }
void Save(TSOut &SOut) const
Definition: hash.h:183
TIntIntStrPrH AttrIdToName
Definition: attr.h:101
TIntIntPrPrIntH IntAttrVals
Definition: attr.h:103
TIntIntPrPrFltH FltAttrVals
Definition: attr.h:104
TStrIntPrH AttrNameToId
Definition: attr.h:100
TIntIntPrPrStrH StrAttrVals
Definition: attr.h:105

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

TIntIntStrPrH TAttrPair::AttrIdToName
private

Definition at line 101 of file attr.h.

Referenced by AddSAttr(), AddSAttrDat(), GetIdVSAttr(), GetSAttrDat(), and GetSAttrName().

TStrIntPrH TAttrPair::AttrNameToId
private
TIntIntPrPrFltH TAttrPair::FltAttrVals
private

Definition at line 104 of file attr.h.

Referenced by AddSAttrDat(), DelSAttrDat(), DelSAttrId(), GetIdVSAttr(), GetSAttrDat(), and GetSAttrV().

TIntIntPrPrIntH TAttrPair::IntAttrVals
private

Definition at line 103 of file attr.h.

Referenced by AddSAttrDat(), DelSAttrDat(), DelSAttrId(), GetIdVSAttr(), GetSAttrDat(), and GetSAttrV().

TIntIntPrPrStrH TAttrPair::StrAttrVals
private

Definition at line 105 of file attr.h.

Referenced by AddSAttrDat(), DelSAttrDat(), DelSAttrId(), GetIdVSAttr(), GetSAttrDat(), and GetSAttrV().


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