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

#include <nexthop_server.h>

Collaboration diagram for NexthopDBServer:

Public Types

typedef std::map< uint64_t,
NexthopDBClient::ClientPtr
ClientDB
 
typedef std::map< uint64_t,
NexthopDBClient::ClientPtr >
::iterator 
ClientIterator
 
typedef std::map< std::string,
NexthopDBEntry::NexthopPtr
NexthopDB
 
typedef std::map< std::string,
NexthopDBEntry::NexthopPtr >
::iterator 
NexthopIterator
 

Public Member Functions

 NexthopDBServer (boost::asio::io_context &io, const std::string &path)
 
NexthopDBEntry::NexthopPtr FindOrCreateNexthop (const std::string &str)
 
void FindAndRemoveNexthop (const std::string &str)
 
void Run ()
 
void EventHandler (UnixDomainSocketServer *, UnixDomainSocketSession *, UnixDomainSocketServer::Event)
 
void RemoveClient (uint64_t)
 

Private Member Functions

void AddClient (NexthopDBClient::ClientPtr cl)
 
void TriggerClients ()
 
void AddNexthop (NexthopDBEntry::NexthopPtr nh)
 
void RemoveNexthop (NexthopDBEntry::NexthopPtr nh)
 

Private Attributes

boost::asio::io_context & io_service_
 
std::string endpoint_path_
 
boost::scoped_ptr
< UnixDomainSocketServer > 
io_server_
 
NexthopDB nexthop_table_
 
ClientDB client_table_
 
tbb::mutex mutex_
 

Detailed Description

Definition at line 25 of file nexthop_server.h.

Member Typedef Documentation

Definition at line 29 of file nexthop_server.h.

typedef std::map<uint64_t, NexthopDBClient::ClientPtr>::iterator NexthopDBServer::ClientIterator

Definition at line 31 of file nexthop_server.h.

Definition at line 32 of file nexthop_server.h.

typedef std::map<std::string, NexthopDBEntry::NexthopPtr>::iterator NexthopDBServer::NexthopIterator

Definition at line 34 of file nexthop_server.h.

Constructor & Destructor Documentation

NexthopDBServer::NexthopDBServer ( boost::asio::io_context &  io,
const std::string &  path 
)

Definition at line 17 of file nexthop_server.cc.

Here is the call graph for this function:

Member Function Documentation

void NexthopDBServer::AddClient ( NexthopDBClient::ClientPtr  cl)
private

Definition at line 51 of file nexthop_server.cc.

void NexthopDBServer::AddNexthop ( NexthopDBEntry::NexthopPtr  nh)
private

Definition at line 86 of file nexthop_server.cc.

void NexthopDBServer::EventHandler ( UnixDomainSocketServer *  server,
UnixDomainSocketSession *  session,
UnixDomainSocketServer::Event  event 
)

Definition at line 34 of file nexthop_server.cc.

Here is the call graph for this function:

void NexthopDBServer::FindAndRemoveNexthop ( const std::string &  str)

Definition at line 119 of file nexthop_server.cc.

Here is the call graph for this function:

NexthopDBEntry::NexthopPtr NexthopDBServer::FindOrCreateNexthop ( const std::string &  str)

Definition at line 95 of file nexthop_server.cc.

Here is the call graph for this function:

void NexthopDBServer::RemoveClient ( uint64_t  session_id)

Definition at line 70 of file nexthop_server.cc.

void NexthopDBServer::RemoveNexthop ( NexthopDBEntry::NexthopPtr  nh)
private

Definition at line 133 of file nexthop_server.cc.

void NexthopDBServer::Run ( void  )

Definition at line 28 of file nexthop_server.cc.

void NexthopDBServer::TriggerClients ( )
private

Definition at line 77 of file nexthop_server.cc.

Member Data Documentation

ClientDB NexthopDBServer::client_table_
private

Definition at line 55 of file nexthop_server.h.

std::string NexthopDBServer::endpoint_path_
private

Definition at line 52 of file nexthop_server.h.

boost::scoped_ptr<UnixDomainSocketServer> NexthopDBServer::io_server_
private

Definition at line 53 of file nexthop_server.h.

boost::asio::io_context& NexthopDBServer::io_service_
private

Definition at line 51 of file nexthop_server.h.

tbb::mutex NexthopDBServer::mutex_
private

Definition at line 56 of file nexthop_server.h.

NexthopDB NexthopDBServer::nexthop_table_
private

Definition at line 54 of file nexthop_server.h.


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