9 #ifndef __STATS_CLIENT_H__
10 #define __STATS_CLIENT_H__
12 #include <tbb/mutex.h>
13 #include <boost/asio.hpp>
15 #include <sandesh/sandesh.h>
16 #include <sandesh/sandesh_util.h>
22 StatsClient(boost::asio::io_context& io_service,
const std::string& endpoint);
27 virtual size_t SendBuf(uint8_t *data,
size_t size) = 0;
30 #if defined(BOOST_ASIO_HAS_LOCAL_SOCKETS)
33 StatsClientLocal(boost::asio::io_context& io_service,
const std::string& stats_collector):
34 stats_server_ep_(boost::asio::local::datagram_protocol::endpoint(stats_collector)),
35 is_connected_(false) {
36 stats_socket_.reset(
new boost::asio::local::datagram_protocol::socket(io_service));
38 virtual ~StatsClientLocal() {stats_socket_->close();}
42 virtual size_t SendBuf(uint8_t *data,
size_t size);
44 boost::asio::local::datagram_protocol::endpoint stats_server_ep_;
45 boost::scoped_ptr<boost::asio::local::datagram_protocol::socket> stats_socket_;
46 tbb::mutex send_mutex_;
64 virtual size_t SendBuf(uint8_t *data,
size_t size);
72 #endif // __STATS_CLIENT_H__
bool MakeEndpoint(TcpServer::Endpoint *ep, const std::string &epstr)
boost::asio::ip::udp::socket Socket
boost::asio::ip::udp::endpoint Endpoint
virtual void Initialize()
virtual bool SendMsg(Sandesh *sandesh)
virtual bool IsConnected()
StatsClientRemote(boost::asio::io_context &io_service, const std::string &stats_collector)
virtual bool IsConnected()=0
virtual size_t SendBuf(uint8_t *data, size_t size)=0
boost::scoped_ptr< UdpServer::Socket > stats_socket_
virtual bool SendMsg(Sandesh *sandesh)=0
static const uint32_t kEncodeBufferSize
virtual void Initialize()=0
virtual size_t SendBuf(uint8_t *data, size_t size)
UdpServer::Endpoint stats_server_ep_
virtual ~StatsClientRemote()