void send(const BufferRef& buf) { if(buf.Length<=0)return; int tmp=sendbuffer.BeginAppend(); if(tmp<0) { WARN(2,"buffer overrun"); return; } Buffer& b=sendbuffer.GetPointer(tmp); b=Buffer(buf.Length); memcpy(b.Data, buf.Data, buf.Length); sendbuffer.EndAppend(tmp); beginflush(); }