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

#include <config_cassandra_client.h>

Inheritance diagram for ConfigCassandraClient:
Collaboration diagram for ConfigCassandraClient:

Public Types

typedef boost::scoped_ptr
< GenDb::GenDbIf
GenDbIfPtr
 
typedef std::vector
< ConfigCassandraPartition * > 
PartitionList
 
- Public Types inherited from ConfigDbClient
typedef std::pair< std::string,
std::string > 
ObjTypeFQNPair
 

Public Member Functions

 ConfigCassandraClient (ConfigClientManager *mgr, EventManager *evm, const ConfigClientOptions &options, int num_workers)
 
virtual ~ConfigCassandraClient ()
 
virtual void InitDatabase ()
 
void BulkSyncDone ()
 
ConfigCassandraPartitionGetPartition (const std::string &uuid)
 
const ConfigCassandraPartitionGetPartition (const std::string &uuid) const
 
const ConfigCassandraPartitionGetPartition (int worker_id) const
 
void EnqueueUUIDRequest (std::string oper, std::string obj_type, std::string uuid_str)
 
virtual bool UUIDToObjCacheShow (const std::string &search_string, int inst_num, const std::string &last_uuid, uint32_t num_entries, std::vector< ConfigDBUUIDCacheEntry > *entries) const
 
virtual bool IsListOrMapPropEmpty (const string &uuid_key, const string &lookup_key)
 
virtual bool IsTaskTriggered () const
 
- Public Member Functions inherited from ConfigDbClient
 ConfigDbClient (ConfigClientManager *mgr, EventManager *evm, const ConfigClientOptions &options)
 
virtual ~ConfigDbClient ()
 
const std::string & config_db_user () const
 
const std::string & config_db_password () const
 
const std::vector< std::string > & config_db_ips () const
 
int GetFirstConfigDbPort () const
 
virtual bool IsListOrMapPropEmpty (const std::string &uuid_key, const std::string &lookup_key)=0
 
virtual void AddFQNameCache (const std::string &uuid, const std::string &obj_type, const std::string &fq_name)
 
virtual std::string FindFQName (const std::string &uuid) const
 
virtual void InvalidateFQNameCache (const std::string &uuid)
 
virtual void PurgeFQNameCache (const std::string &uuid)
 
virtual void ClearFQNameCache ()
 
ObjTypeFQNPair UUIDToFQName (const std::string &uuid_str, bool deleted_ok=true) const
 
virtual bool UUIDToFQNameShow (const std::string &search_string, const std::string &last_uuid, uint32_t num_entries, std::vector< ConfigDBFQNameCacheEntry > *entries) const
 
virtual std::string uuid_str (const std::string &uuid)
 
virtual std::string GetUUID (const std::string &key) const
 
virtual void InitConnectionInfo ()
 
virtual void UpdateConnectionInfo (bool success, bool force)
 
virtual void GetConnectionInfo (ConfigDBConnInfo &status) const
 
virtual void StartWatcher ()
 
ConfigClientManagermgr ()
 
const ConfigClientManagermgr () const
 

Static Public Attributes

static const std::string kUuidTableName = "obj_uuid_table"
 
static const std::string kFqnTableName = "obj_fq_name_table"
 
static const std::string kCassClientTaskId = "config_client::Reader"
 
static const std::string kObjectProcessTaskId
 
static const int kMaxNumUUIDToRead = 64
 
static const int kNumFQNameEntriesToRead = 4096
 
- Static Public Attributes inherited from ConfigDbClient
static const uint64_t kInitRetryTimeUSec = 5000000
 
static const int kMaxRequestsToYield = 512
 
static const int kNumEntriesToRead = 4096
 

Protected Types

typedef std::pair< std::string,
std::string > 
ObjTypeUUIDType
 
typedef std::list
< ObjTypeUUIDType
ObjTypeUUIDList
 
- Protected Types inherited from ConfigDbClient
typedef std::map< std::string,
FQNameCacheType
FQNameCacheMap
 

Protected Member Functions

void UpdateFQNameCache (const std::string &key, const std::string &obj_type, ObjTypeUUIDList &uuid_list)
 
virtual bool BulkDataSync ()
 
bool EnqueueDBSyncRequest (const ObjTypeUUIDList &uuid_list)
 
virtual std::string FetchUUIDFromFQNameEntry (const std::string &key) const
 
virtual int HashUUID (const std::string &uuid_str) const
 
virtual bool SkipTimeStampCheckForTypeAndFQName () const
 
virtual uint32_t GetFQNameEntriesToRead () const
 
int num_workers () const
 
PartitionListpartitions ()
 
virtual void PostShutdown ()
 
- Protected Member Functions inherited from ConfigDbClient
virtual void FillFQNameCacheInfo (const std::string &uuid, FQNameCacheMap::const_iterator it, ConfigDBFQNameCacheEntry *entry) const
 
virtual const int GetMaxRequestsToYield () const
 
virtual const uint64_t GetInitRetryTimeUSec () const
 
virtual uint32_t GetNumReadRequestToBunch () const
 
EventManagerevent_manager ()
 

Private Member Functions

bool InitRetry ()
 
bool FQNameReader ()
 
bool ParseFQNameRowGetUUIDList (const std::string &obj_type, const GenDb::ColList &col_list, ObjTypeUUIDList &uuid_list, std::string *last_column)
 
void HandleCassandraConnectionStatus (bool success, bool force_update=false)
 

Private Attributes

GenDbIfPtr dbif_
 
int num_workers_
 
PartitionList partitions_
 
boost::scoped_ptr< TaskTriggerfq_name_reader_
 
tbb::atomic< long > bulk_sync_status_
 

Friends

class ConfigCassandraPartition
 

Detailed Description

Definition at line 182 of file config_cassandra_client.h.

Member Typedef Documentation

Definition at line 198 of file config_cassandra_client.h.

Definition at line 224 of file config_cassandra_client.h.

typedef std::pair<std::string, std::string> ConfigCassandraClient::ObjTypeUUIDType
protected

Definition at line 223 of file config_cassandra_client.h.

Constructor & Destructor Documentation

ConfigCassandraClient::ConfigCassandraClient ( ConfigClientManager mgr,
EventManager evm,
const ConfigClientOptions options,
int  num_workers 
)

Definition at line 50 of file config_cassandra_client.cc.

Here is the call graph for this function:

ConfigCassandraClient::~ConfigCassandraClient ( )
virtual

Definition at line 76 of file config_cassandra_client.cc.

Here is the call graph for this function:

Member Function Documentation

bool ConfigCassandraClient::BulkDataSync ( )
protectedvirtual

Definition at line 391 of file config_cassandra_client.cc.

void ConfigCassandraClient::BulkSyncDone ( )

Definition at line 549 of file config_cassandra_client.cc.

Here is the call graph for this function:

bool ConfigCassandraClient::EnqueueDBSyncRequest ( const ObjTypeUUIDList uuid_list)
protected

Definition at line 527 of file config_cassandra_client.cc.

Here is the call graph for this function:

void ConfigCassandraClient::EnqueueUUIDRequest ( std::string  oper,
std::string  obj_type,
std::string  uuid_str 
)
virtual

Implements ConfigDbClient.

Definition at line 543 of file config_cassandra_client.cc.

Here is the call graph for this function:

string ConfigCassandraClient::FetchUUIDFromFQNameEntry ( const std::string &  key) const
protectedvirtual

Definition at line 521 of file config_cassandra_client.cc.

bool ConfigCassandraClient::FQNameReader ( )
private

Definition at line 417 of file config_cassandra_client.cc.

Here is the call graph for this function:

virtual uint32_t ConfigCassandraClient::GetFQNameEntriesToRead ( ) const
inlineprotectedvirtual

Definition at line 234 of file config_cassandra_client.h.

ConfigCassandraPartition* ConfigCassandraClient::GetPartition ( const std::string &  uuid)
const ConfigCassandraPartition* ConfigCassandraClient::GetPartition ( const std::string &  uuid) const
const ConfigCassandraPartition * ConfigCassandraClient::GetPartition ( int  worker_id) const

Definition at line 143 of file config_cassandra_client.cc.

void ConfigCassandraClient::HandleCassandraConnectionStatus ( bool  success,
bool  force_update = false 
)
private

Definition at line 562 of file config_cassandra_client.cc.

Here is the call graph for this function:

int ConfigCassandraClient::HashUUID ( const std::string &  uuid_str) const
protectedvirtual

Definition at line 148 of file config_cassandra_client.cc.

void ConfigCassandraClient::InitDatabase ( )
virtual

Implements ConfigDbClient.

Definition at line 84 of file config_cassandra_client.cc.

Here is the call graph for this function:

bool ConfigCassandraClient::InitRetry ( )
private

Definition at line 121 of file config_cassandra_client.cc.

Here is the call graph for this function:

bool ConfigCassandraClient::IsListOrMapPropEmpty ( const string &  uuid_key,
const string &  lookup_key 
)
virtual

Definition at line 584 of file config_cassandra_client.cc.

Here is the call graph for this function:

bool ConfigCassandraClient::IsTaskTriggered ( ) const
virtual

Walk the partitions and check if ConfigReader task has been triggered in any of them. If so, return true.

Reimplemented from ConfigDbClient.

Definition at line 399 of file config_cassandra_client.cc.

Here is the call graph for this function:

int ConfigCassandraClient::num_workers ( ) const
inlineprotected

Definition at line 237 of file config_cassandra_client.h.

bool ConfigCassandraClient::ParseFQNameRowGetUUIDList ( const std::string &  obj_type,
const GenDb::ColList col_list,
ObjTypeUUIDList uuid_list,
std::string *  last_column 
)
private

Definition at line 494 of file config_cassandra_client.cc.

Here is the call graph for this function:

PartitionList& ConfigCassandraClient::partitions ( )
inlineprotected

Definition at line 238 of file config_cassandra_client.h.

void ConfigCassandraClient::PostShutdown ( )
protectedvirtual

Implements ConfigDbClient.

Definition at line 382 of file config_cassandra_client.cc.

Here is the call graph for this function:

virtual bool ConfigCassandraClient::SkipTimeStampCheckForTypeAndFQName ( ) const
inlineprotectedvirtual

Definition at line 233 of file config_cassandra_client.h.

void ConfigCassandraClient::UpdateFQNameCache ( const std::string &  key,
const std::string &  obj_type,
ObjTypeUUIDList uuid_list 
)
protected

Definition at line 512 of file config_cassandra_client.cc.

Here is the call graph for this function:

bool ConfigCassandraClient::UUIDToObjCacheShow ( const std::string &  search_string,
int  inst_num,
const std::string &  last_uuid,
uint32_t  num_entries,
std::vector< ConfigDBUUIDCacheEntry > *  entries 
) const
virtual

Implements ConfigDbClient.

Definition at line 536 of file config_cassandra_client.cc.

Here is the call graph for this function:

Friends And Related Function Documentation

friend class ConfigCassandraPartition
friend

Definition at line 242 of file config_cassandra_client.h.

Member Data Documentation

tbb::atomic<long> ConfigCassandraClient::bulk_sync_status_
private

Definition at line 258 of file config_cassandra_client.h.

GenDbIfPtr ConfigCassandraClient::dbif_
private

Definition at line 254 of file config_cassandra_client.h.

boost::scoped_ptr<TaskTrigger> ConfigCassandraClient::fq_name_reader_
private

Definition at line 257 of file config_cassandra_client.h.

const string ConfigCassandraClient::kCassClientTaskId = "config_client::Reader"
static

Definition at line 189 of file config_cassandra_client.h.

const string ConfigCassandraClient::kFqnTableName = "obj_fq_name_table"
static

Definition at line 186 of file config_cassandra_client.h.

const int ConfigCassandraClient::kMaxNumUUIDToRead = 64
static

Definition at line 193 of file config_cassandra_client.h.

const int ConfigCassandraClient::kNumFQNameEntriesToRead = 4096
static

Definition at line 196 of file config_cassandra_client.h.

const string ConfigCassandraClient::kObjectProcessTaskId
static
Initial value:
=
"config_client::ObjectProcessor"

Definition at line 190 of file config_cassandra_client.h.

const string ConfigCassandraClient::kUuidTableName = "obj_uuid_table"
static

Definition at line 185 of file config_cassandra_client.h.

int ConfigCassandraClient::num_workers_
private

Definition at line 255 of file config_cassandra_client.h.

PartitionList ConfigCassandraClient::partitions_
private

Definition at line 256 of file config_cassandra_client.h.


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