| 780 | } |
| 781 | |
| 782 | int StreamWrite(StreamId stream_id, const butil::IOBuf &message, |
| 783 | const StreamWriteOptions* options) { |
| 784 | SocketUniquePtr ptr; |
| 785 | if (Socket::Address(stream_id, &ptr) != 0) { |
| 786 | return EINVAL; |
| 787 | } |
| 788 | Stream* s = (Stream*)ptr->conn(); |
| 789 | const int rc = s->AppendIfNotFull(message, options); |
| 790 | if (rc == 0) { |
| 791 | return 0; |
| 792 | } |
| 793 | return (rc == 1) ? EAGAIN : errno; |
| 794 | } |
| 795 | |
| 796 | void StreamWait(StreamId stream_id, const timespec *due_time, |
| 797 | void (*on_writable)(StreamId, void*, int), void *arg) { |