@@ -139,13 +139,14 @@ namespace WS_LITE {
139139 free (ReceiveBuffer);
140140 }
141141 }
142- virtual SocketStatus is_open () const { return SocketStatus_; }
143- virtual std::string get_address () const { return SL::WS_LITE::get_address (Socket); }
144- virtual unsigned short get_port () const { return SL::WS_LITE::get_port (Socket); }
145- virtual bool is_v4 () const { return SL::WS_LITE::is_v4 (Socket); }
146- virtual bool is_v6 () const { return SL::WS_LITE::is_v6 (Socket); }
147- virtual bool is_loopback () const { return SL::WS_LITE::is_loopback (Socket); }
148- virtual void send (const WSMessage &msg, CompressionOptions compressmessage)
142+ virtual SocketStatus is_open () const override { return SocketStatus_; }
143+ virtual std::string get_address () const override { return SL::WS_LITE::get_address (Socket); }
144+ virtual unsigned short get_port () const override { return SL::WS_LITE::get_port (Socket); }
145+ virtual bool is_v4 () const override { return SL::WS_LITE::is_v4 (Socket); }
146+ virtual bool is_v6 () const override { return SL::WS_LITE::is_v6 (Socket); }
147+ virtual size_t BufferedBytes () const override { return Bytes_PendingFlush; }
148+ virtual bool is_loopback () const override { return SL::WS_LITE::is_loopback (Socket); }
149+ virtual void send (const WSMessage &msg, CompressionOptions compressmessage) override
149150 {
150151 if (SocketStatus_ == SocketStatus::CONNECTED) { // only send to a conected socket
151152 auto self (std::static_pointer_cast<WSocket<isServer, SOCKETTYPE>>(shared_from_this ()));
@@ -156,7 +157,7 @@ namespace WS_LITE {
156157 }
157158 }
158159 // send a close message and close the socket
159- virtual void close (unsigned short code, const std::string &msg)
160+ virtual void close (unsigned short code, const std::string &msg) override
160161 {
161162 if (SocketStatus_ == SocketStatus::CONNECTED) { // only send a close to an open socket
162163 auto self (std::static_pointer_cast<WSocket<isServer, SOCKETTYPE>>(shared_from_this ()));
@@ -184,6 +185,7 @@ namespace WS_LITE {
184185 OpCode LastOpCode = OpCode::INVALID;
185186 std::shared_ptr<WSContextImpl> Parent;
186187 SOCKETTYPE Socket;
188+ size_t Bytes_PendingFlush = 0 ;
187189
188190 asio::basic_waitable_timer<std::chrono::steady_clock> ping_deadline;
189191 asio::basic_waitable_timer<std::chrono::steady_clock> read_deadline;
0 commit comments