| 586 | class TOutputBuffers: public TMultiBuffers { |
| 587 | public: |
| 588 | void AddRequest(const TRequestRef& req) { |
| 589 | Requests_.push_back(req); |
| 590 | if (req->Service().size() > MemPoolReserve_) { |
| 591 | TRequestHeader* hdr = new (Allocate<TRequestHeader>()) TRequestHeader(req->ReqId(), req->Service().size(), req->Data().size()); |
| 592 | AddPart(hdr, sizeof(TRequestHeader)); |
| 593 | AddPart(req->Service().data(), req->Service().size()); |
| 594 | } else { |
| 595 | TRequestHeader* hdr = new (AllocatePlus<TRequestHeader>(req->Service().size())) TRequestHeader(req->ReqId(), req->Service().size(), req->Data().size()); |
| 596 | AddPart(hdr, sizeof(TRequestHeader) + req->Service().size()); |
| 597 | memmove(++hdr, req->Service().data(), req->Service().size()); |
| 598 | } |
| 599 | AddPart(req->Data().data(), req->Data().size()); |
| 600 | IOVec_ = TContIOVector(Parts_.data(), Parts_.size()); |
| 601 | } |
| 602 | |
| 603 | void AddCancelRequest(TRequestId reqId) { |
| 604 | TCancelHeader* hdr = new (Allocate<TCancelHeader>()) TCancelHeader(reqId); |
no test coverage detected