5 #ifndef __CONNECTION_INFO_H__
6 #define __CONNECTION_INFO_H__
11 #include <boost/tuple/tuple.hpp>
12 #include <boost/asio/ip/tcp.hpp>
13 #include <boost/bind.hpp>
14 #include <boost/assign/list_of.hpp>
15 #include <boost/scoped_ptr.hpp>
17 #include <tbb/mutex.h>
20 #include <base/sandesh/process_info_constants.h>
21 #include <base/sandesh/process_info_types.h>
22 #include <base/sandesh/cpuinfo_constants.h>
23 #include <base/sandesh/cpuinfo_types.h>
24 #include <base/sandesh/nodeinfo_constants.h>
25 #include <base/sandesh/nodeinfo_types.h>
27 class ConnectionInfoTest;
31 typedef boost::asio::ip::tcp::endpoint
Endpoint;
32 typedef boost::function<void (const std::vector<ConnectionInfo> &,
38 const std::vector<ConnectionTypeName> &expected_connections);
40 const std::vector<ConnectionTypeName> &expected_connections,
41 std::string &message);
55 std::vector<ConnectionInfo>
GetInfos()
const;
60 const std::vector<Endpoint> &servers, std::string message);
67 typedef boost::function<void (void)>
SendUveCb;
74 static boost::scoped_ptr<ConnectionState>
instance_;
94 SendProcessStateUve,
instance_.get(),
false));
99 void Init(boost::asio::io_context &service,
const std::string &hostname,
100 const std::string &module,
const std::string &instance_id,
102 data_.set_name(hostname);
106 data_.table_ = table;
115 friend class ::ConnectionInfoTest;
145 ProcessStateNames.find(pstate)->second);
148 std::vector<ProcessStatus> vps = boost::assign::list_of
150 data_.set_process_status(vps);
151 NodeStatusUVE::Send(
data_);
155 static boost::scoped_ptr<ConnectionStateManager>
instance_;
164 #endif // __CONNECTION_INFO_H__
void Init(boost::asio::io_context &service, const std::string &hostname, const std::string &module, const std::string &instance_id, ProcessStateFn status_cb, std::string table)
void UpdateInternal(ConnectionType::type ctype, const std::string &name, ConnectionStatus::type status, const std::vector< Endpoint > &servers, std::string message)
static FlagUveManager * GetInstance()
static void CreateInstance(SendUveCb send_uve_cb)
boost::asio::ip::tcp::endpoint Endpoint
ConnectionState(SendUveCb send_uve_cb)
void GetConnectionInfoMessage(const vector< ConnectionInfo > &cinfos, const vector< ConnectionTypeName > &expected_connections, string &message)
std::map< ConnectionInfoKey, ConnectionInfo > ConnectionInfoMap
void Delete(ConnectionType::type ctype, const std::string &name)
ProcessStatus process_status_
static boost::scoped_ptr< ConnectionState > instance_
friend class ConnectionStateManager
void GetProcessStateCb(const vector< ConnectionInfo > &cinfos, ProcessState::type &state, string &message, const vector< ConnectionTypeName > &expected_connections)
static FlagManager * GetInstance()
ProcessStateFn status_cb_
std::vector< ConnectionInfo > GetInfosUnlocked() const
std::vector< FlagConfig > FlagConfigVec
std::pair< std::string, std::string > ConnectionTypeName
static void CreateInstance(FlagManager *mgr, FlagUveCb send_uve_cb)
boost::function< void(const std::vector< ConnectionInfo > &, ProcessState::type &, std::string &)> ProcessStateFn
std::vector< FlagInfo > GetFlagInfos(const FlagConfigVec &flag_infos)
static ConnectionStateManager * GetInstance()
static ConnectionState * GetInstance()
bool SendProcessStateUve(bool lock)
ConnectionInfoMap connection_map_
boost::function< void(void)> SendUveCb
void SetProcessStateCb(ProcessStateFn status_cb)
static boost::scoped_ptr< ConnectionStateManager > instance_
boost::tuple< ConnectionType::type, std::string > ConnectionInfoKey
std::vector< ConnectionInfo > GetInfos() const