29 #define SOCKET_SUCCEEDED(ec) ( TTV_SUCCEEDED(ec) || (ec == TTV_EC_SOCKET_EWOULDBLOCK) ) 30 #define SOCKET_FAILED(ec) ( TTV_FAILED(ec) && (ec != TTV_EC_SOCKET_EWOULDBLOCK) ) 37 class IWebSocketFactory;
244 virtual TTV_ErrorCode Send(
const uint8_t* buffer,
size_t length,
size_t& sent) = 0;
261 virtual TTV_ErrorCode Recv(uint8_t* buffer,
size_t length,
size_t& received) = 0;
420 virtual bool IsProtocolSupported(
const std::string& protocol) = 0;
457 virtual bool IsProtocolSupported(
const std::string& protocol) = 0;
483 void Bind(
const std::shared_ptr<ISocket>& socket);
495 TTV_ErrorCode Recv(uint8_t* buffer,
size_t length,
size_t& received, uint64_t maxWaitForBufferFill);
505 TTV_ErrorCode GetAverageSendBitRate(uint64_t measurementWindow, uint64_t& bitsPerSecond)
const;
510 TTV_ErrorCode GetCongestionLevel(uint64_t measurementWindow,
double& congestionLevel)
const;
516 static const size_t kMaxBufferSize = 0x10000;
523 std::array<uint8_t, kMaxBufferSize>
mCache;
TTV_ErrorCode IsWebSocketProtocolSupported(const std::string &protocol)
TTV_ErrorCode ShutdownSocketLibrary()
TTV_ErrorCode CreateSocket(const std::string &uri, std::shared_ptr< ISocket > &result)
std::shared_ptr< ISocket > mSocket
Definition: socket.h:520
virtual uint64_t TotalSent()=0
TTV_ErrorCode InitializeSocketLibrary()
TTV_ErrorCode RegisterSocketFactory(const std::shared_ptr< ISocketFactory > &factory)
virtual TTV_ErrorCode Disconnect()=0
uint64_t mLastFlushTime
Definition: socket.h:521
virtual bool Connected()=0
TTV_ErrorCode CreateWebSocket(const std::string &uri, std::shared_ptr< IWebSocket > &result)
JSON (JavaScript Object Notation).
Definition: adsapi.h:16
If neither Partner nor Affiliate.
SocketTracker mTracker
Definition: socket.h:525
uint32_t TTV_ErrorCode
Definition: errortypes.h:30
size_t mCachePos
Definition: socket.h:522
bool mBlocking
Definition: socket.h:527
Definition: sockettracker.h:22
std::array< uint8_t, kMaxBufferSize > mCache
Definition: socket.h:523
virtual TTV_ErrorCode Send(const uint8_t *buffer, size_t length)
TTV_ErrorCode UnregisterSocketFactory(const std::shared_ptr< ISocketFactory > &factory)
virtual uint64_t TotalReceived()=0
TTV_ErrorCode UnregisterWebSocketFactory(const std::shared_ptr< IWebSocketFactory > &factory)
TTV_ErrorCode RegisterWebSocketFactory(const std::shared_ptr< IWebSocketFactory > &factory)
TTV_ErrorCode IsSocketProtocolSupported(const std::string &protocol)
virtual ~ISocket()=default
virtual TTV_ErrorCode Connect()=0
MessageType
Definition: socket.h:296
virtual TTV_ErrorCode Recv(uint8_t *buffer, size_t length, size_t &received)=0