MCPcopy Create free account
hub / github.com/FoundationDB/fdb-document-layer / write

Method write

src/BufferedConnection.actor.cpp:230–255  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

228}
229
230void BufferedConnection::write(StringRef buf) {
231 int remaining = buf.size();
232 const uint8_t* ptr = buf.begin();
233
234 PacketBuffer* pb = self->unsent.getWriteBuffer();
235
236 while (remaining) {
237 int writable = PacketBuffer::DATA_SIZE - pb->bytes_written;
238 if (!writable) {
239 pb->next = new PacketBuffer();
240 self->unsent.setWriteBuffer(pb->nextPacketBuffer());
241 pb = pb->nextPacketBuffer();
242 writable = PacketBuffer::DATA_SIZE;
243 }
244
245 int to_write = std::min(remaining, writable);
246
247 memcpy(pb->data + pb->bytes_written, ptr, to_write);
248 pb->bytes_written += to_write;
249 ptr += to_write;
250
251 remaining -= to_write;
252 }
253
254 self->on_data_write.trigger();
255}
256
257ACTOR Future<Void> doOnBytesAvailable(BufferedConnectionData* self, int count) {
258 if (count > self->desired_bytes.get()) {

Callers 1

Future<Void> writerFunction · 0.45

Calls 2

beginMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected