MCPcopy Create free account
hub / github.com/apple/foundationdb / write

Method write

fdbrpc/SimExternalConnection.actor.cpp:96–116  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

94}
95
96int SimExternalConnection::write(SendBuffer const* buffer, int limit) {
97 boost::system::error_code err;
98 bool triggerReaders = (socket.available() == 0);
99 int bytesSent = socket.write_some(
100 boost::iterator_range<SendBufferIterator>(SendBufferIterator(buffer, limit), SendBufferIterator()), err);
101 ASSERT(!err);
102 ASSERT(bytesSent > 0);
103 threadSleep(0.1);
104 const auto bytesReadable = socket.available();
105 std::vector<uint8_t> tempReadBuffer(bytesReadable);
106 for (int index = 0; index < bytesReadable;) {
107 index += socket.read_some(mutable_buffers_1(&tempReadBuffer[index], bytesReadable), err);
108 }
109 std::copy(tempReadBuffer.begin(), tempReadBuffer.end(), std::inserter(readBuffer, readBuffer.end()));
110 ASSERT(!err);
111 ASSERT(socket.available() == 0);
112 if (triggerReaders) {
113 onReadableTrigger.trigger();
114 }
115 return bytesSent;
116}
117
118NetworkAddress SimExternalConnection::getPeerAddress() const {
119 auto endpoint = socket.remote_endpoint();

Callers 1

Calls 7

SendBufferIteratorClass · 0.85
threadSleepFunction · 0.85
copyFunction · 0.85
availableMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
triggerMethod · 0.45

Tested by

no test coverage detected