11 #ifndef __SANDESH_SERVER_H__
12 #define __SANDESH_SERVER_H__
14 #include <boost/asio.hpp>
15 #include <boost/asio/ip/tcp.hpp>
16 #include <boost/ptr_container/ptr_map.hpp>
17 #include <boost/scoped_ptr.hpp>
18 #include <boost/dynamic_bitset.hpp>
20 #include <sandesh/sandesh.h>
36 virtual bool Initialize(
short port,
const std::string &ip=
"0.0.0.0");
51 bool rsc) {
return true; }
78 typedef boost::ptr_map<boost::asio::ip::tcp::endpoint,
80 typedef boost::ptr_container_detail::ref_pair<
81 boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>,
static const std::string kLifetimeMgrTask
size_t ConnectionsCount()
virtual bool ReceiveResourceUpdate(SandeshSession *session, bool rsc)
int AllocConnectionIndex()
virtual TcpSession * CreateSession()
virtual bool DisableSandeshLogMessages() const
int session_writer_task_id() const
virtual void DisconnectSession(SandeshSession *session)
DISALLOW_COPY_AND_ASSIGN(SandeshServer)
virtual void SessionShutdown()
boost::scoped_ptr< LifetimeManager > lifetime_manager_
SandeshServer(EventManager *evm, const SandeshConfig &config)
int lifetime_mgr_task_id()
virtual SslSession * AllocSession(SslSocket *socket)
virtual bool Initialize(short port, const std::string &ip="0.0.0.0")
SandeshConnectionMap connection_
static const std::string kStateMachineTask
boost::ptr_map< boost::asio::ip::tcp::endpoint, SandeshConnection > SandeshConnectionMap
LifetimeActor * deleter()
bool Compare(const Endpoint &peer_addr, const SandeshConnectionPair &) const
static bool task_policy_set_
SandeshConnection * FindConnection(const Endpoint &peer_addr)
boost::dynamic_bitset conn_bmap_
void FreeConnectionIndex(int)
virtual bool ReceiveSandeshCtrlMsg(SandeshStateMachine *state_machine, SandeshSession *session, const Sandesh *sandesh)
LifetimeManager * lifetime_manager()
virtual bool AcceptSession(TcpSession *session)
boost::scoped_ptr< DeleteActor > deleter_
int session_reader_task_id() const
void RemoveConnection(SandeshConnection *connection)
int session_reader_task_id_
static const std::string kSessionReaderTask
boost::ptr_container_detail::ref_pair< boost::asio::ip::basic_endpoint< boost::asio::ip::tcp >, SandeshConnection *const > SandeshConnectionPair
virtual bool ReceiveSandeshMsg(SandeshSession *session, const SandeshMessage *msg, bool resource)=0
int lifetime_mgr_task_id_
static const int kMaxInitRetries
boost::asio::ssl::stream< boost::asio::ip::tcp::socket > SslSocket
boost::asio::ip::tcp::endpoint Endpoint