virtual void write(const void *data, const size_t size) { assert(fd >= 0); if (size == 0) return; #ifdef TCP_CORK send(data, size); #else if (size >= SEND_BUFFER_SIZE_LIMIT) { flush(); send(data, size); } else { sendBuffer.add(data, size); if (sendBuffer.size() >= SEND_BUFFER_SIZE_LIMIT) flush(); } #endif }