Skip to content

Commit 06adba2

Browse files
authored
write free function (#223)
Signed-off-by: turuslan <[email protected]>
1 parent 202245c commit 06adba2

58 files changed

Lines changed: 149 additions & 265 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

example/02-kademlia/rendezvous_chat.cpp

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
#include <boost/beast.hpp>
1313

14+
#include <libp2p/basic/write_return_size.hpp>
1415
#include <libp2p/common/hexutil.hpp>
1516
#include <libp2p/injector/kademlia_injector.hpp>
1617
#include <libp2p/log/configurator.hpp>
@@ -43,7 +44,8 @@ class Session : public std::enable_shared_from_this<Session> {
4344
}
4445

4546
stream_->readSome(
46-
*incoming_, incoming_->size(),
47+
*incoming_,
48+
incoming_->size(),
4749
[self = shared_from_this()](libp2p::outcome::result<size_t> result) {
4850
if (not result) {
4951
self->close();
@@ -66,8 +68,9 @@ class Session : public std::enable_shared_from_this<Session> {
6668
return false;
6769
}
6870

69-
stream_->write(
70-
*buffer, buffer->size(),
71+
libp2p::writeReturnSize(
72+
stream_,
73+
*buffer,
7174
[self = shared_from_this(),
7275
buffer](libp2p::outcome::result<size_t> result) {
7376
if (not result) {
@@ -91,7 +94,7 @@ class Session : public std::enable_shared_from_this<Session> {
9194

9295
bool operator<(const Session &other) {
9396
return stream_->remotePeerId().value()
94-
< other.stream_->remotePeerId().value();
97+
< other.stream_->remotePeerId().value();
9598
}
9699

97100
private:
@@ -286,7 +289,8 @@ int main(int argc, char *argv[]) {
286289

287290
std::function<void()> find_providers = [&] {
288291
[[maybe_unused]] auto res1 = kademlia->findProviders(
289-
content_id, 0,
292+
content_id,
293+
0,
290294
[&](libp2p::outcome::result<std::vector<libp2p::peer::PeerInfo>>
291295
res) {
292296
scheduler.schedule(std::function{find_providers},
@@ -350,7 +354,8 @@ int main(int argc, char *argv[]) {
350354
// same content id
351355
std::function<void()> read_from_console = [&] {
352356
in.async_read_some(boost::asio::buffer(buffer), [&](auto ec, auto size) {
353-
auto i = std::find_if(buffer.begin(), buffer.begin() + size + 1,
357+
auto i = std::find_if(buffer.begin(),
358+
buffer.begin() + size + 1,
354359
[](auto c) { return c == '\n'; });
355360

356361
if (i != buffer.begin() + size + 1) {

include/libp2p/basic/writer.hpp

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,6 @@ namespace libp2p::basic {
1919

2020
virtual ~Writer() = default;
2121

22-
/**
23-
* @brief Write exactly {@code} in.size() {@nocode} bytes.
24-
* Won't call \param cb before all are successfully written.
25-
* Returns immediately.
26-
* @param in data to write.
27-
* @param bytes number of bytes to write
28-
* @param cb callback with result of operation
29-
*
30-
* @note caller should maintain validity of an input buffer until callback
31-
* is executed. It is usually done with either wrapping buffer as shared
32-
* pointer, or having buffer as part of some class/struct, and using
33-
* enable_shared_from_this()
34-
*/
35-
virtual void write(BytesIn in, size_t bytes, WriteCallbackFunc cb) = 0;
36-
3722
/**
3823
* @brief Write up to {@code} in.size() {@nocode} bytes.
3924
* Calls \param cb after only some bytes has been successfully written,

include/libp2p/connection/loopback_stream.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,6 @@ namespace libp2p::connection {
4545

4646
void readSome(BytesOut out, size_t bytes, ReadCallbackFunc cb) override;
4747

48-
void write(BytesIn in, size_t bytes, WriteCallbackFunc cb) override;
49-
5048
void writeSome(BytesIn in, size_t bytes, WriteCallbackFunc cb) override;
5149

5250
void deferReadCallback(outcome::result<size_t> res,

include/libp2p/layer/websocket/ssl_connection.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ namespace libp2p::connection {
3737
void deferReadCallback(outcome::result<size_t> res,
3838
ReadCallbackFunc cb) override;
3939

40-
void write(BytesIn in, size_t bytes, WriteCallbackFunc cb) override;
4140
void writeSome(BytesIn in, size_t bytes, WriteCallbackFunc cb) override;
4241
void deferWriteCallback(std::error_code ec, WriteCallbackFunc cb) override;
4342

include/libp2p/layer/websocket/ws_connection.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,6 @@ namespace libp2p::connection {
7575
void deferReadCallback(outcome::result<size_t> res,
7676
ReadCallbackFunc cb) override;
7777

78-
void write(BytesIn in, size_t bytes, WriteCallbackFunc cb) override;
79-
8078
void writeSome(BytesIn in, size_t bytes, WriteCallbackFunc cb) override;
8179

8280
void deferWriteCallback(std::error_code ec, WriteCallbackFunc cb) override;

include/libp2p/muxer/mplex/mplex_stream.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,6 @@ namespace libp2p::connection {
5757
void deferReadCallback(outcome::result<size_t> res,
5858
ReadCallbackFunc cb) override;
5959

60-
void write(BytesIn in, size_t bytes, WriteCallbackFunc cb) override;
61-
6260
void writeSome(BytesIn in, size_t bytes, WriteCallbackFunc cb) override;
6361

6462
void deferWriteCallback(std::error_code ec, WriteCallbackFunc cb) override;

include/libp2p/muxer/mplex/mplexed_connection.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ namespace libp2p::connection {
6666
/// use stream over this connection instead
6767
void read(BytesOut out, size_t bytes, ReadCallbackFunc cb) override;
6868
void readSome(BytesOut out, size_t bytes, ReadCallbackFunc cb) override;
69-
void write(BytesIn in, size_t bytes, WriteCallbackFunc cb) override;
7069
void writeSome(BytesIn in, size_t bytes, WriteCallbackFunc cb) override;
7170

7271
void deferReadCallback(outcome::result<size_t> res,

include/libp2p/muxer/yamux/yamux_stream.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,6 @@ namespace libp2p::connection {
5959
void deferReadCallback(outcome::result<size_t> res,
6060
ReadCallbackFunc cb) override;
6161

62-
void write(BytesIn in, size_t bytes, WriteCallbackFunc cb) override;
63-
6462
void writeSome(BytesIn in, size_t bytes, WriteCallbackFunc cb) override;
6563

6664
void deferWriteCallback(std::error_code ec, WriteCallbackFunc cb) override;

include/libp2p/muxer/yamux/yamuxed_connection.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,6 @@ namespace libp2p::connection {
113113
/// use stream over this connection instead
114114
void read(BytesOut out, size_t bytes, ReadCallbackFunc cb) override;
115115
void readSome(BytesOut out, size_t bytes, ReadCallbackFunc cb) override;
116-
void write(BytesIn in, size_t bytes, WriteCallbackFunc cb) override;
117116
void writeSome(BytesIn in, size_t bytes, WriteCallbackFunc cb) override;
118117

119118
/// Initiates async readSome on connection

include/libp2p/security/noise/noise_connection.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,6 @@ namespace libp2p::connection {
5353
void deferReadCallback(outcome::result<size_t> res,
5454
ReadCallbackFunc cb) override;
5555

56-
void write(BytesIn in, size_t bytes, WriteCallbackFunc cb) override;
57-
5856
void writeSome(BytesIn in, size_t bytes, WriteCallbackFunc cb) override;
5957

6058
void deferWriteCallback(std::error_code ec, WriteCallbackFunc cb) override;

0 commit comments

Comments
 (0)