OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
DB Class Reference

#include <db.h>

Collaboration diagram for DB:

Public Types

typedef boost::function
< DBTableBase *(DB *, const
std::string &)> 
CreateFunction
 
typedef std::map< std::string,
DBTableBase * > 
TableMap
 
typedef TableMap::iterator iterator
 
typedef TableMap::const_iterator const_iterator
 

Public Member Functions

 DB (int task_id=-1)
 
 ~DB ()
 
DBPartitionGetPartition (int index)
 
const DBPartitionGetPartition (int index) const
 
void AddTable (DBTableBase *tbl_base)
 
DBTableBaseCreateTable (const std::string &name)
 
DBTableBaseFindTable (const std::string &name)
 
iterator FindTableIter (const std::string &name)
 
void RemoveTable (DBTableBase *tbl_base)
 
DBTableWalkerGetWalker ()
 
DBTableWalkMgrGetWalkMgr ()
 
DBGraphGetGraph (const std::string &name)
 
void SetGraph (const std::string &name, DBGraph *graph)
 
void SetQueueDisable (bool disable)
 
void Clear ()
 
bool IsDBQueueEmpty () const
 
iterator begin ()
 
iterator end ()
 
iterator lower_bound (const std::string &name)
 
const_iterator const_begin ()
 
const_iterator const_end ()
 
const_iterator const_lower_bound (const std::string &name)
 
int task_id () const
 

Static Public Member Functions

static void SetPartitionCount (int partition_count)
 
static int PartitionCount ()
 
static void RegisterFactory (const std::string &prefix, CreateFunction create_fn)
 
static void ClearFactoryRegistry ()
 

Private Types

typedef std::map< std::string,
CreateFunction
FactoryMap
 
typedef std::map< std::string,
DBGraph * > 
GraphMap
 

Private Member Functions

 DISALLOW_COPY_AND_ASSIGN (DB)
 

Static Private Member Functions

static FactoryMapfactories ()
 

Private Attributes

tbb::mutex mutex_
 
int task_id_
 
std::vector< DBPartition * > partitions_
 
TableMap tables_
 
GraphMap graph_map_
 
std::unique_ptr< DBTableWalkerwalker_
 
std::unique_ptr< DBTableWalkMgrwalk_mgr_
 

Static Private Attributes

static int partition_count_
 

Detailed Description

Definition at line 24 of file db.h.

Member Typedef Documentation

typedef TableMap::const_iterator DB::const_iterator

Definition at line 30 of file db.h.

typedef boost::function<DBTableBase *(DB *, const std::string &)> DB::CreateFunction

Definition at line 27 of file db.h.

typedef std::map<std::string, CreateFunction> DB::FactoryMap
private

Definition at line 82 of file db.h.

typedef std::map<std::string, DBGraph *> DB::GraphMap
private

Definition at line 83 of file db.h.

typedef TableMap::iterator DB::iterator

Definition at line 29 of file db.h.

typedef std::map<std::string, DBTableBase *> DB::TableMap

Definition at line 28 of file db.h.

Constructor & Destructor Documentation

DB::DB ( int  task_id = -1)

Definition at line 46 of file db.cc.

Here is the call graph for this function:

DB::~DB ( )

Definition at line 56 of file db.cc.

Here is the call graph for this function:

Member Function Documentation

void DB::AddTable ( DBTableBase tbl_base)

Definition at line 81 of file db.cc.

Here is the call graph for this function:

iterator DB::begin ( )
inline

Definition at line 68 of file db.h.

void DB::Clear ( )

Definition at line 142 of file db.cc.

Here is the call graph for this function:

void DB::ClearFactoryRegistry ( )
static

Definition at line 28 of file db.cc.

Here is the call graph for this function:

const_iterator DB::const_begin ( )
inline

Definition at line 73 of file db.h.

const_iterator DB::const_end ( )
inline

Definition at line 74 of file db.h.

const_iterator DB::const_lower_bound ( const std::string &  name)
inline

Definition at line 75 of file db.h.

DBTableBase * DB::CreateTable ( const std::string &  name)

Definition at line 99 of file db.cc.

Here is the call graph for this function:

DB::DISALLOW_COPY_AND_ASSIGN ( DB  )
private
iterator DB::end ( )
inline

Definition at line 69 of file db.h.

DB::FactoryMap * DB::factories ( )
staticprivate

Definition at line 19 of file db.cc.

DBTableBase * DB::FindTable ( const std::string &  name)

Definition at line 68 of file db.cc.

DB::iterator DB::FindTableIter ( const std::string &  name)

Definition at line 77 of file db.cc.

DBGraph * DB::GetGraph ( const std::string &  name)

Definition at line 122 of file db.cc.

DBPartition * DB::GetPartition ( int  index)

Definition at line 60 of file db.cc.

const DBPartition * DB::GetPartition ( int  index) const

Definition at line 64 of file db.cc.

DBTableWalker* DB::GetWalker ( )
inline

Definition at line 48 of file db.h.

DBTableWalkMgr* DB::GetWalkMgr ( )
inline

Definition at line 51 of file db.h.

bool DB::IsDBQueueEmpty ( ) const

Definition at line 91 of file db.cc.

Here is the call graph for this function:

iterator DB::lower_bound ( const std::string &  name)
inline

Definition at line 70 of file db.h.

int DB::PartitionCount ( )
static

Definition at line 32 of file db.cc.

Here is the call graph for this function:

void DB::RegisterFactory ( const std::string &  prefix,
CreateFunction  create_fn 
)
static

Definition at line 24 of file db.cc.

Here is the call graph for this function:

void DB::RemoveTable ( DBTableBase tbl_base)

Definition at line 87 of file db.cc.

Here is the call graph for this function:

void DB::SetGraph ( const std::string &  name,
DBGraph graph 
)

Definition at line 130 of file db.cc.

void DB::SetPartitionCount ( int  partition_count)
static

Definition at line 42 of file db.cc.

void DB::SetQueueDisable ( bool  disable)

Definition at line 136 of file db.cc.

Here is the call graph for this function:

int DB::task_id ( ) const
inline

Definition at line 79 of file db.h.

Member Data Documentation

GraphMap DB::graph_map_
private

Definition at line 92 of file db.h.

tbb::mutex DB::mutex_
private

Definition at line 88 of file db.h.

int DB::partition_count_
staticprivate

Definition at line 85 of file db.h.

std::vector<DBPartition *> DB::partitions_
private

Definition at line 90 of file db.h.

TableMap DB::tables_
private

Definition at line 91 of file db.h.

int DB::task_id_
private

Definition at line 89 of file db.h.

std::unique_ptr<DBTableWalkMgr> DB::walk_mgr_
private

Definition at line 94 of file db.h.

std::unique_ptr<DBTableWalker> DB::walker_
private

Definition at line 93 of file db.h.


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