A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/doxyhtml/bdb__split__blob_8hpp_source.html below:

NCBI C++ ToolKit: include/db/bdb/bdb_split_blob.hpp Source File

1 #ifndef BDB___SPLIT_BLOB_HPP__ 2 #define BDB___SPLIT_BLOB_HPP__ 79

this->

BindKey

(

"dim_idx"

, &dim_idx);

95  static const unsigned

size_split[] = {

96

256, 512, 2048, 4096, 8192, 16384, 32768

98  const unsigned

kMaxSize = (unsigned)(

sizeof

(size_split) /

sizeof

(*size_split));

100  for

(

unsigned i

= 0;

i

< kMaxSize; ++

i

) {

101  if

(blob_size < size_split[

i

]) {

130  unsigned

rec_max = 3 * 1000000)

148

(

size_t

)coord[1] + 1);

157  m_VolS

(

i

, coord[1]) += blob_size;

191  double

vol_max = 1.5 * (1024.00*1024.00*1024.00),

192  unsigned

rec_max = 3 * 1000000)

204  if

( !

m_Path

.empty() ) {

211  "error saving demultiplex data: "

<< e.

what

());

222

ostr <<

m_RecS

(

i

, j) <<

" "

;

229

ostr <<

m_VolS

(

i

, j) <<

" "

;

355 template

<

class

TBV,

class

TObjDeMux=CBDB_BlobDeMux,

class

TL=CFastMutex>

397  void Open

(

const string

& storage_name,

479  const unsigned

* old_coord,

489  const unsigned

* coords,

503  const unsigned

* coords2);

515  const unsigned

* coords,

530  const unsigned

* coords,

564  const unsigned

* coords,

606 

SLockedDb&

GetDb

(

unsigned

vol,

unsigned

slice,

658 template

<

class

TBV,

class

TObjDeMux,

class

TL>

663

m_VolumeCacheSize(0),

670

m_AllProjAvail(

false

),

671

m_RevSplitOff(

false

)

682 template

<

class

TBV,

class

TObjDeMux,

class

TL>

689  catch

(std::exception& e) {

691

<<

"CBDB_BlobSplitStore<>::~CBDB_BlobSplitStore(): " 692  "error in CloseVolumes(): "

<< e.what());

700  catch

(std::exception& e) {

702

<<

"CBDB_BlobSplitStore<>::~CBDB_BlobSplitStore(): " 703  "error in Save(): "

<< e.what());

707 template

<

class

TBV,

class

TObjDeMux,

class

TL>

711

m_RevSplitOff =

true

;

715 template

<

class

TBV,

class

TObjDeMux,

class

TL>

723 template

<

class

TBV,

class

TObjDeMux,

class

TL>

727  for

(

size_t i

= 0;

i

< m_Volumes.size(); ++

i

) {

733 template

<

class

TBV,

class

TObjDeMux,

class

TL>

736  const unsigned

* coords1,

737  const unsigned

* coords2)

739  return

coords1[0] == coords2[0] &&

740

coords1[1] == coords2[1];

743 template

<

class

TBV,

class

TObjDeMux,

class

TL>

748

m_IdDeMux->GetIdVector(bv);

752 template

<

class

TBV,

class

TObjDeMux,

class

TL>

756  const unsigned

* coords)

758  unsigned

old_coord[2];

762

found = m_IdDeMux->GetCoordinatesFast(

id

, old_coord);

764  if

(found && IsSameCoordinates(old_coord, coords)) {

770

m_IdDeMux->SetCoordinatesFast(

id

, coords);

775 template

<

class

TBV,

class

TObjDeMux,

class

TL>

782  return

this->Insert(

id

,

data

,

size

, coord);

787 template

<

class

TBV,

class

TObjDeMux,

class

TL>

800

found = m_IdDeMux->GetCoordinatesFast(

id

, coord);

808

TLockGuard

lg

(m_ObjDeMuxLock);

809

m_ObjDeMux->GetCoordinates((

unsigned

)

size

, coord);

814

m_IdDeMux->SetCoordinatesFast(

id

, coord);

817

SLockedDb& dbp = this->GetDb(coord[0], coord[1], eGetWrite);

819

TLockGuard

lg

(*dbp.lock);

820

dbp.db->SetTransaction(GetTransaction());

822  return

dbp.db->Insert(

data

,

size

);

826 template

<

class

TBV,

class

TObjDeMux,

class

TL>

833  return

this->UpdateInsert(

id

,

data

,

size

, coord);

837 template

<

class

TBV,

class

TObjDeMux,

class

TL>

847

found = m_IdDeMux->GetCoordinatesFast(

id

, coord);

850  return

this->Insert(

id

,

data

,

size

, coord);

853  unsigned

slice = m_ObjDeMux->SelectSplit(

size

);

854  if

(slice != coord[1]) {

856

TLockGuard

lg

(m_CrossDBLock);

859  return

this->Insert(

id

,

data

,

size

, coord);

861

SLockedDb& dbp = this->GetDb(coord[0], coord[1], eGetWrite);

862

TLockGuard

lg

(*(dbp.lock));

863

dbp.db->SetTransaction(GetTransaction());

865  return

dbp.db->UpdateInsert(

data

,

size

);

869 template

<

class

TBV,

class

TObjDeMux,

class

TL>

872  const unsigned

* old_coord,

883

found = m_IdDeMux->GetCoordinatesFast(

id

, coord);

887  if

(old_coord[0] != coord[0] || old_coord[1] != coord[1]) {

896  return

this->Insert(

id

,

data

,

size

, coord);

900

coord[0] = old_coord[0];

901

coord[1] = old_coord[1];

904  return

this->Insert(

id

,

data

,

size

, coord);

907  unsigned

slice = m_ObjDeMux->SelectSplit(

size

);

908  if

(slice != coord[1]) {

913  return

this->Insert(

id

,

data

,

size

, coord);

915  SLockedDb

& dbp = this->GetDb(coord[0], coord[1], eGetWrite);

917

dbp.

db

->SetTransaction(GetTransaction());

925 template

<

class

TBV,

class

TObjDeMux,

class

TL>

934

found = m_IdDeMux->GetCoordinatesFast(

id

, coord);

939  return

this->Delete(

id

, coord, on_error);

942 template

<

class

TBV,

class

TObjDeMux,

class

TL>

945  const unsigned

* coords,

951

m_IdDeMux->SetCoordinatesFast(

id

, coords,

false

);

954  SLockedDb

& dbp = this->GetDb(coords[0], coords[1], eGetWrite);

957

dbp.

db

->SetTransaction(GetTransaction());

959  return

dbp.

db

->Delete(on_error);

965 template

<

class

TBV,

class

TObjDeMux,

class

TL>

973

found = m_IdDeMux->GetCoordinatesFast(

id

, coord);

978  return

this->CreateReader(

id

, coord);

981 template

<

class

TBV,

class

TObjDeMux,

class

TL>

985  const unsigned

* coords)

990  SLockedDb

& dbp = this->GetDb(coords[0], coords[1], eGetRead);

996

db = dbp.

db

.

get

();

1012 template

<

class

TBV,

class

TObjDeMux,

class

TL>

1016

m_IdDeMux->FreeUnusedMem();

1018 template

<

class

TBV,

class

TObjDeMux,

class

TL>

1026 template

<

class

TBV,

class

TObjDeMux,

class

TL>

1034

curr_trans = this->GetBDBTransaction();

1036

curr_trans->

Remove

(

this

);

1040

curr_trans = db_trans;

1044

curr_trans->

Add

(

this

);

1051 template

<

class

TBV,

class

TObjDeMux,

class

TL>

1055  for

(

size_t i

= 0;

i

< m_Volumes.size(); ++

i

) {

1060  for

(

size_t

j = 0; j < v->

db_vect

.size(); ++j) {

1062  if

(db && db->

db

) {

1070 template

<

class

TBV,

class

TObjDeMux,

class

TL>

1073  const unsigned

* coords,

1083  SLockedDb

& dbp = this->GetDb(coords[0], coords[1], eGetRead);

1089

db = dbp.

db

.

get

();

1098

ret = db->

Fetch

(

buf

, buf_size, allow_realloc);

1110 template

<

class

TBV,

class

TObjDeMux,

class

TL>

1122

found = m_IdDeMux->GetCoordinatesFast(

id

, coord);

1127  return

this->Fetch(

id

, coord,

buf

, buf_size, allow_realloc, blob_size);

1130 template

<

class

TBV,

class

TObjDeMux,

class

TL>

1139

found = m_IdDeMux->GetCoordinatesFast(

id

, coord);

1147 template

<

class

TBV,

class

TObjDeMux,

class

TL>

1151  const unsigned

* coords,

1159  SLockedDb

& dbp = this->GetDb(coords[0], coords[1], eGetRead);

1165

db = dbp.

db

.

get

();

1181 template

<

class

TBV,

class

TObjDeMux,

class

TL>

1191

found = m_IdDeMux->GetCoordinatesFast(

id

, coord);

1196  return

this->ReadRealloc(

id

, coord,

buffer

);

1199 template

<

class

TBV,

class

TObjDeMux,

class

TL>

1208

found = m_IdDeMux->GetCoordinatesFast(

id

, coord);

1213  return

this->BlobSize(

id

, coord, blob_size);

1216 template

<

class

TBV,

class

TObjDeMux,

class

TL>

1219  const unsigned

* coords,

1225  SLockedDb

& dbp = this->GetDb(coords[0], coords[1], eGetRead);

1231

db = dbp.

db

.

get

();

1251 template

<

class

TBV,

class

TObjDeMux,

class

TL>

1258

m_StorageName = storage_name;

1259

m_OpenMode = open_mode;

1260

m_DB_Type = db_type;

1267

LoadIdDeMux(*m_IdDeMux, *m_DictFile);

1271 template

<

class

TBV,

class

TObjDeMux,

class

TL>

1275  return

m_DictFile.get() ?

true

:

false

;

1278 template

<

class

TBV,

class

TObjDeMux,

class

TL>

1282  unsigned

max_split = m_ObjDeMux->GetSplitSize();

1283  unsigned

max_vol = m_ObjDeMux->GetVolumeSize();

1284  if

(!max_split || !max_vol) {

1288  for

(

unsigned i

= 0;

i

< max_vol; ++

i

) {

1289  for

(

unsigned

j = 0; j < max_split; ++j) {

1290 

this->GetDb(

i

, j, eGetRead);

1293

m_AllProjAvail =

true

;

1294

this->Save(TDeMuxStore::eNoCompact);

1297 template

<

class

TBV,

class

TObjDeMux,

class

TL>

1303

m_DictFile->SetEnv(*m_Env);

1305  string

dict_fname(m_StorageName);

1306

dict_fname.append(

".splitd"

);

1308

m_DictFile->Open(dict_fname.c_str(), m_OpenMode);

1310

m_IdDeMux.reset(

new TIdDeMux

(2));

1313 template

<

class

TBV,

class

TObjDeMux,

class

TL>

1329  unsigned

dim = dict_file.

dim

;

1330  unsigned

dim_idx = dict_file.

dim_idx

;

1340 template

<

class

TBV,

class

TObjDeMux,

class

TL>

1345  if

( m_IdDeMux.get() && m_DictFile.get() ) {

1350

this->SaveIdDeMux(*m_IdDeMux, *m_DictFile, 0, compact_vectors);

1355 template

<

class

TBV,

class

TObjDeMux,

class

TL>

1365  size_t N

= de_mux.

GetN

();

1366  for

(

size_t i

= 0;

i

<

N

; ++

i

) {

1369  for

(

size_t

j = 0; j < dv.size(); ++j) {

1384 template

<

class

TBV,

class

TObjDeMux,

class

TL>

1388  if

(splice < m_PageSizes.size())

1389  return

m_PageSizes[splice];

1393 template

<

class

TBV,

class

TObjDeMux,

class

TL>

1410  return

m_StorageName +

"_"

+

1414 template

<

class

TBV,

class

TObjDeMux,

class

TL>

1419  if

(ldb->

lock

.

get

() == 0) {

1429 template

<

class

TBV,

class

TObjDeMux,

class

TL>

1442  if

(m_AllProjAvail) {

1444  _ASSERT

(m_Volumes.size() > vol);

1445  _ASSERT

((m_Volumes[vol])->db_vect.size() > slice);

1447  SVolume

& volume = *(m_Volumes[vol]);

1448

lp = &*volume.

db_vect

[slice];

1458  if

((m_Volumes.size() > vol) &&

1459

((m_Volumes[vol])->db_vect.size() > slice)) {

1460  SVolume

& volume = *(m_Volumes[vol]);

1461

lp = &*volume.

db_vect

[slice];

1462  if

(lp->

db

.

get

()) {

1470  while

(m_Volumes.size() < (vol+1)) {

1471

unique_ptr<SVolume> v(

new SVolume

);

1472

v->db_vect.resize(slice+1);

1473  for

(

size_t i

= 0;

i

< v->db_vect.size(); ++

i

) {

1474  if

( !v->db_vect[

i

] ) {

1478

m_Volumes.push_back(v.release());

1481  SVolume

& volume = *(m_Volumes[vol]);

1482  if

(volume.

db_vect

.size() <= slice) {

1483

volume.

db_vect

.resize(slice+1);

1484  for

(

size_t i

= 0;

i

< volume.

db_vect

.size(); ++

i

) {

1491

lp = &*volume.

db_vect

[slice];

1494  bool

needs_save =

false

;

1501  if

(lp->

db

.

get

() == 0) {

1502  string

fname = this->MakeDbFileName(vol, slice);

1506

lp->

db

->SetEnv(*m_Env);

1509

lp->

db_ro

->SetEnv(*m_Env);

1511  if

(m_VolumeCacheSize) {

1512

lp->

db

->SetCacheSize(m_VolumeCacheSize);

1515  unsigned

page_size = GetPageSize(slice);

1517

lp->

db

->SetPageSize(page_size);

1525 

lp->

db

->SetBtreeMinKeysPerPage(6);

1531 

lp->

db

->SetBtreeMinKeysPerPage(3);

1540  if

(m_RevSplitOff) {

1541

lp->

db

->RevSplitOff();

1544

lp->

db

->Open(fname.c_str(), m_OpenMode);

1545

lp->

db

->SetCachePriority(m_CachePriority);

1548

lp->

db_ro

->SetCachePriority(m_CachePriority);

1557

get_mode == eGetWrite) {

1559

this->Save(TDeMuxStore::eNoCompact);

BDB library BLOB support.

Berkeley BDB file cursor.

Wrapper around Berkeley DB transaction structure.

Split demux which can save and load state into a file Stateful (persistent) class.

Base class for page-split demultiplexers.

BLOB demultiplexer implements round-robin volume rotation.

Volume split BLOB demultiplexer.

BLOB storage based on single unsigned integer key Supports BLOB volumes and different base page size ...

Persistent storage for demux information.

Basic template class for bitvector storage.

BDB environment object a collection including support for some or all of caching, locking,...

Berkeley DB file cursor class.

Variant of BLOB storage for integer key database.

Raw file class wraps up basic Berkeley DB operations.

Id to coordinates demultiplexer.

size_t GetN() const

Get order of Multiplexer.

const TDimVector & GetDimVector(size_t i) const

Get dimension vector.

void SetProjection(size_t i, size_t idx, TBitVector *bv)

Assign projection idx for dimension i.

vector< TBitVectorPtr > TDimVector

Dimension vector.

void Resize(size_t i, size_t j, T val=T())

resize this matrix, filling the empty cells with a known value

size_t GetRows() const

get the number of rows in this matrix

size_t GetCols() const

get the number of columns in this matrix

Reallocable memory buffer (no memory copy overhead) Mimics vector<>, without the overhead of explicit...

Thread local transactional object.

A very basic data-read interface.

Include a standard set of the NCBI C++ Toolkit most basic headers.

The NCBI C++ standard methods for dealing with std::string.

void reset(element_type *p=0, EOwnership ownership=eTakeOwnership)

Reset will delete the old pointer (if owned), set content to the new value, and assume the ownership ...

element_type * get(void) const

Get pointer.

CBDB_Env * GetEnv(void) const

Get pointer on file environment Return NULL if no environment has been set.

void Save(CNcbiOstream &ostr)

TL::TWriteLockGuard TLockGuard

unique_ptr< TDeMuxStore > m_DictFile

Split dictionary(id demux file)

SLockedDb & GetDb(unsigned vol, unsigned slice, EGetDB_Mode get_mode)

Get database pair (method opens and mounts database if necessary)

void InitDbMutex(SLockedDb *ldb)

Init database mutex lock (mathod is protected against double init)

IReader * CreateReader(unsigned id)

Create stream oriented reader.

CBDB_RawFile::EOpenMode m_OpenMode

CBDB_BlobStoreDict< TBV > TDeMuxStore

void OpenProjections()

Try to open all storage files in all projections This is only possible when object de-mux has fixed n...

size_t LobSize() const

Get LOB size. Becomes available right after successfull Fetch.

const string & GetFileName() const

Return the base filename of the underlying split store.

void SaveIdDeMux(const TIdDeMux &de_mux, TDeMuxStore &dict_file, CBDB_Transaction *trans, typename TDeMuxStore::ECompact compact_vectors)

Store id demux (projection vectors) into the database file.

void Load(CNcbiIstream &istr)

TLock m_CrossDBLock

Lock used to sync. muli-db transactions to avoid deadlocks.

bool IsSameCoordinates(const unsigned *coords1, const unsigned *coords2)

Returns true if two sets of coordinates are the same.

EBDB_ErrCode Delete(unsigned id, CBDB_RawFile::EIgnoreError on_error=CBDB_RawFile::eThrowOnError)

Delete BLOB.

EBDB_ErrCode ReadRealloc(TBuffer &buffer)

Read BLOB into vector.

CBDB_BlobDeMux(double vol_max=1.5 *(1024.00 *1024.00 *1024.00), unsigned rec_max=3 *1000000)

EBDB_ErrCode WriteVector(const TBitVector &bv, ECompact compact)

Save a bitvector to the store.

CNcbiMatrix< unsigned > TVolumeRecs

EBDB_ErrCode Insert(unsigned id, const void *data, size_t size, unsigned *coord)

Insert BLOB into the storage.

EBDB_ErrCode BlobSize(unsigned id, const unsigned *coords, size_t *blob_size)

unique_ptr< TObjDeMux > m_ObjDeMux

Obj to coordinates mapper.

CBDB_IdBlobFile TBlobFile

CBDB_RawFile::EDBType m_DB_Type

bool m_RevSplitOff

Flag carrying reverse split status.

void Sync()

Sync the underlying stores.

CBDB_FieldUint4 dim

dimention

CBDB_RawFile::ECachePriority m_CachePriority

static unsigned SelectSplit(size_t blob_size)

LOBs are getting split into slices based on LOB size, similar BLOBs go to the compartment with more o...

virtual void SetTransaction(ITransaction *trans)

Establish transaction association.

void FreeUnusedMem()

Reclaim unused memory.

EBDB_ErrCode Insert(unsigned id, const void *data, size_t size)

vector< CRef< SLockedDb > > db_vect

void RevSplitOff()

Turn off reverse splitting on the underlying stores.

EBDB_ErrCode UpdateInsert(unsigned id, const void *data, size_t size)

CBDB_Transaction * GetBDBTransaction()

void OpenDict()

Open split storage dictionary.

CBDB_BvStore< TBV > TParent

EBDB_ErrCode ReadRealloc(unsigned id, CBDB_RawFile::TBuffer &buffer)

Read BLOB into vector.

AutoPtr< TLock > lock_ro

db lock for reads

CBDB_BlobSplitStore(TObjDeMux *de_mux)

Construction The main parameter here is object demultiplexer for splitting incoming LOBs into volumes...

EBDB_ErrCode ReadRealloc(unsigned id, const unsigned *coords, CBDB_RawFile::TBuffer &buffer)

Read BLOB into vector using provided coordinates If BLOB does not fit, method resizes the vector to a...

bool IsOpen() const

Return true if the split store has been opened.

AutoPtr< TBlobFile > db

database file

void GetCoordinates(unsigned blob_size, unsigned *coord)

coordinates:

TVolumeRecs m_RecS

Volumes record counts.

string MakeDbFileName(unsigned vol, unsigned slice)

Make BDB file name based on volume and page size split.

EBDB_ErrCode UpdateInsert(unsigned id, const unsigned *old_coord, const void *data, size_t size, unsigned *coord)

Update or insert BLOB using old coordinates.

EBDB_ErrCode Fetch()

Fetch the record corresponding to the current key value.

TBuffer & GetBuffer()

Get access to the internal buffer.

CBDB_BlobDeMuxPersistent(const string &path, double vol_max=1.5 *(1024.00 *1024.00 *1024.00), unsigned rec_max=3 *1000000)

void SetVolumeCacheSize(unsigned int cache_size)

TVolumeVect m_Volumes

Volumes.

unsigned GetVolumeSize() const

Returns total number of volumes (vertical projection) If method returns 0 - means there is no hard nu...

AutoPtr< TLock > lock

db lock

CBDB_BlobSplitStore(const CBDB_BlobSplitStore< TBV, TObjDeMux, TL > &)

forbidden

void Deserialize(TBitVector *bv, const TBufferValue *buf)

EBDB_ErrCode Delete(unsigned id, const unsigned *coords, CBDB_RawFile::EIgnoreError on_error=CBDB_RawFile::eThrowOnError)

EBDB_ErrCode UpdateInsert(unsigned id, const void *data, size_t size, unsigned *coord)

Update or insert BLOB.

void GetCoordinates(unsigned blob_size, unsigned *coord)

coordinates:

void LoadIdDeMux(TIdDeMux &de_mux, TDeMuxStore &dict_file)

void Save(typename TDeMuxStore::ECompact compact_vectors=TDeMuxStore::eCompact)

Save storage dictionary (demux disposition).

IReader * CreateReader(unsigned id, const unsigned *coords)

void SetCachePriority(CBDB_RawFile::ECachePriority)

Set the priority for this database's pages in the buffer cache This is generally a temporary adviseme...

unsigned m_RecMax

Maximum number of records.

IReader * CreateReader()

Creates stream like object to read BLOB by chunks.

void CloseVolumes()

Close volumes without saving or doing anything with id demux.

double m_VolMax

Volume max size.

TVolumeSize m_VolS

Volumes BLOB sizes.

EBDB_ErrCode Fetch(unsigned id, void **buf, size_t buf_size, CBDB_RawFile::EReallocMode allow_realloc, size_t *blob_size)

Fetch LOB record directly into the provided '*buf'.

EGetDB_Mode

Read or write operation.

vector< SVolume * > TVolumeVect

CBDB_FieldUint4 dim_idx

projection index

void SetEnv(CBDB_Env &env)

Associate with the environment. Should be called before opening.

unsigned GetVolumeSize() const

Returns total number of volumes (vertical projection) If method returns 0 - means there is no hard nu...

unsigned GetPageSize(unsigned splice) const

Select preferred page size for the specified slice.

EBDB_ErrCode BlobSize(unsigned id, size_t *blob_size)

Get size of the BLOB.

vector< unsigned > m_PageSizes

TLock m_VolumesLock

Volumes locker.

CBDB_FieldUint4 id

ID key.

EBDB_ErrCode Fetch(unsigned id, const unsigned *coords, void **buf, size_t buf_size, CBDB_RawFile::EReallocMode allow_realloc, size_t *blob_size)

unsigned m_VolumeCacheSize

CBDB_BlobDeMux_RoundRobin(unsigned volumes=0)

TLock m_DictFileLock

id demux file locker

void GetIdVector(TBitVector *bv) const

Get all id of all BLOBs stored.

CBDB_BlobSplitStore< TBV, TObjDeMux, TL > & operator=(const CBDB_BlobSplitStore< TBV, TObjDeMux, TL > &)

EBDB_ErrCode GetCoordinates(unsigned id, unsigned *coords)

Find (demux) coordinates by BLOB id.

CNcbiMatrix< double > TVolumeSize

ECompact

Compression options for vector storage.

unique_ptr< TIdDeMux > m_IdDeMux

Id to coordinates mapper.

EBDB_ErrCode FetchToBuffer(CBDB_FileCursor &cur)

Fetch the next BLOB record to the resiable buffer.

~CBDB_BlobDeMuxPersistent()

void Open(const string &storage_name, CBDB_RawFile::EOpenMode open_mode, CBDB_RawFile::EDBType db_type=CBDB_RawFile::eBtree)

Open storage (reads storage dictionary into memory)

AutoPtr< TBlobFile > db_ro

database file for reads

unsigned GetSplitSize() const

Returns total number of splits (horizontal projection) If method returns 0 - means there is no hard n...

void AssignCoordinates(unsigned id, const unsigned *coords)

Assing de-mux coordinates.

bool m_AllProjAvail

True when all proj.dbs are pre-open.

EBDB_ErrCode Delete(EIgnoreError on_error=eThrowOnError)

Delete record corresponding to the current key value.

void SetCondition(ECondition cond_from, ECondition cond_to=eNotSet)

Set search condition(type of interval)

EOpenMode

BDB file open mode.

EDBType

Berkeley DB database type.

virtual void SetTransaction(ITransaction *trans)

Establish transaction association.

void BindKey(const char *field_name, CBDB_Field *key_field, size_t buf_size=0)

EReallocMode

BLOB read mode, controld data buffer reallocation when there is not enough space in buffer.

ECachePriority

Set the priority for this database's pages in the buffer cache This is generally a temporary adviseme...

EBDB_ErrCode

BDB Return codes.

CBDB_ConditionHandle From

@ eReadWriteCreate

read-write, create if it doesn't exist

EKeepFileAssociation GetAssociationMode() const

Transaction file association mode.

virtual void Add(ITransactional *dbfile)

Add file to the list of connected files.

static CBDB_Transaction * CastTransaction(ITransaction *trans)

Downcast ITransaction.

virtual void Remove(ITransactional *dbfile)

Remove file from the list of connected files.

@ eFullAssociation

Transaction associated with files.

#define ERR_POST_XX(error_name, err_subcode, message)

Error posting with error code having given name and with given error subcode.

void Error(CExceptionArgs_Base &args)

virtual const char * what(void) const noexcept

Standard report (includes full backlog).

uint32_t Uint4

4-byte (32-bit) unsigned integer

#define END_NCBI_SCOPE

End previously defined NCBI scope.

#define BEGIN_NCBI_SCOPE

Define ncbi namespace.

IO_PREFIX::ofstream CNcbiOfstream

Portable alias for ofstream.

IO_PREFIX::ostream CNcbiOstream

Portable alias for ostream.

IO_PREFIX::istream CNcbiIstream

Portable alias for istream.

IO_PREFIX::ifstream CNcbiIfstream

Portable alias for ifstream.

static string UIntToString(unsigned int value, TNumToStringFlags flags=0, int base=10)

Convert UInt to string.

CGuard< CRWLock, SSimpleWriteLock< CRWLock > > TWriteLockGuard

virtual void SetTransaction(ITransaction *trans)

Establish transaction association.

@ BM_GAP

GAP compression is ON.

Classes and interfaces to map integer ids into multi-dimension coordinates.

Definition of all error codes used in bdb library (bdb.lib and ncbi_xcache_bdb.lib).

const struct ncbi::grid::netcache::search::fields::SIZE size

Defines classes: CDirEntry, CFile, CDir, CSymLink, CMemoryFile, CFileUtil, CFileLock,...

Multi-threading – mutexes; rw-locks; semaphore.

NCBI C++ stream class wrappers for triggering between "new" and "old" C++ stream libraries.

static SLJIT_INLINE sljit_ins lg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)

BDB Database together with the locker One database is opened twice, one regular mode,...

Volume split on optimal page size.

Abstract object demultiplexer.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4