Skip to content

Commit a5413cf

Browse files
committed
Explicitly use unique_ptr<HttpQuery>.
GitOrigin-RevId: 1d729c6b0a3d1deaf3423672414f155492b7a0e8
1 parent e3b9772 commit a5413cf

13 files changed

Lines changed: 30 additions & 26 deletions

‎benchmark/bench_http.cpp‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
namespace td {
2323

2424
std::atomic<int> counter;
25+
2526
class HttpClient : public HttpOutboundConnection::Callback {
2627
void start_up() override {
2728
IPAddress addr;
@@ -48,7 +49,7 @@ class HttpClient : public HttpOutboundConnection::Callback {
4849
send_closure(connection_, &HttpOutboundConnection::write_ok);
4950
LOG(INFO) << "SEND";
5051
}
51-
void handle(HttpQueryPtr result) override {
52+
void handle(unique_ptr<HttpQuery> result) override {
5253
loop();
5354
}
5455
void on_connection_error(Status error) override {

‎benchmark/bench_http_server.cpp‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@
1919
namespace td {
2020

2121
static int cnt = 0;
22+
2223
class HelloWorld : public HttpInboundConnection::Callback {
2324
public:
24-
void handle(HttpQueryPtr query, ActorOwn<HttpInboundConnection> connection) override {
25+
void handle(unique_ptr<HttpQuery> query, ActorOwn<HttpInboundConnection> connection) override {
2526
// LOG(ERROR) << *query;
2627
HttpHeaderCreator hc;
2728
Slice content = "hello world";

‎benchmark/wget.cpp‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ int main(int argc, char *argv[]) {
2727
auto scheduler = td::make_unique<td::ConcurrentScheduler>();
2828
scheduler->init(0);
2929
scheduler
30-
->create_actor_unsafe<td::Wget>(0, "Client", td::PromiseCreator::lambda([](td::Result<td::HttpQueryPtr> res) {
30+
->create_actor_unsafe<td::Wget>(0, "Client",
31+
td::PromiseCreator::lambda([](td::Result<td::unique_ptr<td::HttpQuery>> res) {
3132
LOG(ERROR) << *res.ok();
3233
td::Scheduler::instance()->finish();
3334
}),

‎td/telegram/ConfigManager.cpp‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ static ActorOwn<> get_simple_config_impl(Promise<SimpleConfig> promise, int32 sc
126126
const int ttl = 3;
127127
return ActorOwn<>(create_actor_on_scheduler<Wget>(
128128
"Wget", scheduler_id,
129-
PromiseCreator::lambda([promise = std::move(promise)](Result<HttpQueryPtr> r_query) mutable {
129+
PromiseCreator::lambda([promise = std::move(promise)](Result<unique_ptr<HttpQuery>> r_query) mutable {
130130
promise.set_result([&]() -> Result<SimpleConfig> {
131131
TRY_RESULT(http_query, std::move(r_query));
132132
return decode_config(http_query->content_);
@@ -160,7 +160,7 @@ ActorOwn<> get_simple_config_google_dns(Promise<SimpleConfig> promise, const Con
160160
}
161161
return ActorOwn<>(create_actor_on_scheduler<Wget>(
162162
"Wget", scheduler_id,
163-
PromiseCreator::lambda([promise = std::move(promise)](Result<HttpQueryPtr> r_query) mutable {
163+
PromiseCreator::lambda([promise = std::move(promise)](Result<unique_ptr<HttpQuery>> r_query) mutable {
164164
promise.set_result([&]() -> Result<SimpleConfig> {
165165
TRY_RESULT(http_query, std::move(r_query));
166166
TRY_RESULT(json, json_decode(http_query->content_));

‎tdnet/td/net/GetHostByNameActor.cpp‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class GoogleDnsResolver : public Actor {
4848
const int timeout = 10;
4949
const int ttl = 3;
5050
begin_time_ = Time::now();
51-
auto wget_promise = PromiseCreator::lambda([actor_id = actor_id(this)](Result<HttpQueryPtr> r_http_query) {
51+
auto wget_promise = PromiseCreator::lambda([actor_id = actor_id(this)](Result<unique_ptr<HttpQuery>> r_http_query) {
5252
send_closure(actor_id, &GoogleDnsResolver::on_result, std::move(r_http_query));
5353
});
5454
wget_ = create_actor<Wget>(
@@ -58,7 +58,7 @@ class GoogleDnsResolver : public Actor {
5858
SslStream::VerifyPeer::Off);
5959
}
6060

61-
static Result<IPAddress> get_ip_address(Result<HttpQueryPtr> r_http_query) {
61+
static Result<IPAddress> get_ip_address(Result<unique_ptr<HttpQuery>> r_http_query) {
6262
TRY_RESULT(http_query, std::move(r_http_query));
6363
TRY_RESULT(json_value, json_decode(http_query->content_));
6464
if (json_value.type() != JsonValue::Type::Object) {
@@ -79,7 +79,7 @@ class GoogleDnsResolver : public Actor {
7979
return ip;
8080
}
8181

82-
void on_result(Result<HttpQueryPtr> r_http_query) {
82+
void on_result(Result<unique_ptr<HttpQuery>> r_http_query) {
8383
auto end_time = Time::now();
8484
auto result = get_ip_address(std::move(r_http_query));
8585
VLOG(dns_resolver) << "Init IPv" << (prefer_ipv6_ ? "6" : "4") << " host = " << host_ << " in "

‎tdnet/td/net/HttpConnectionBase.h‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
namespace td {
2222

2323
namespace detail {
24+
2425
class HttpConnectionBase : public Actor {
2526
public:
2627
void write_next(BufferSlice buffer);
@@ -50,7 +51,7 @@ class HttpConnectionBase : public Actor {
5051
size_t max_files_;
5152
int32 idle_timeout_;
5253
HttpReader reader_;
53-
HttpQueryPtr current_query_;
54+
unique_ptr<HttpQuery> current_query_;
5455
bool close_after_write_ = false;
5556

5657
void live_event();
@@ -60,8 +61,9 @@ class HttpConnectionBase : public Actor {
6061
void timeout_expired() override;
6162
void loop() override;
6263

63-
virtual void on_query(HttpQueryPtr) = 0;
64+
virtual void on_query(unique_ptr<HttpQuery> query) = 0;
6465
virtual void on_error(Status error) = 0;
6566
};
67+
6668
} // namespace detail
6769
} // namespace td

‎tdnet/td/net/HttpInboundConnection.cpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ HttpInboundConnection::HttpInboundConnection(SocketFd fd, size_t max_post_size,
1818
, callback_(std::move(callback)) {
1919
}
2020

21-
void HttpInboundConnection::on_query(HttpQueryPtr query) {
21+
void HttpInboundConnection::on_query(unique_ptr<HttpQuery> query) {
2222
CHECK(!callback_.empty());
2323
send_closure(callback_, &Callback::handle, std::move(query), ActorOwn<HttpInboundConnection>(actor_id(this)));
2424
}

‎tdnet/td/net/HttpInboundConnection.h‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class HttpInboundConnection final : public detail::HttpConnectionBase {
2020
public:
2121
class Callback : public Actor {
2222
public:
23-
virtual void handle(HttpQueryPtr query, ActorOwn<HttpInboundConnection> connection) = 0;
23+
virtual void handle(unique_ptr<HttpQuery> query, ActorOwn<HttpInboundConnection> connection) = 0;
2424
};
2525
// Inherited interface
2626
// void write_next(BufferSlice buffer);
@@ -31,7 +31,7 @@ class HttpInboundConnection final : public detail::HttpConnectionBase {
3131
ActorShared<Callback> callback);
3232

3333
private:
34-
void on_query(HttpQueryPtr query) override;
34+
void on_query(unique_ptr<HttpQuery> query) override;
3535
void on_error(Status error) override;
3636
void hangup() override {
3737
callback_.release();

‎tdnet/td/net/HttpOutboundConnection.cpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
namespace td {
1212

13-
void HttpOutboundConnection::on_query(HttpQueryPtr query) {
13+
void HttpOutboundConnection::on_query(unique_ptr<HttpQuery> query) {
1414
CHECK(!callback_.empty());
1515
send_closure(callback_, &Callback::handle, std::move(query));
1616
}

‎tdnet/td/net/HttpOutboundConnection.h‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class HttpOutboundConnection final : public detail::HttpConnectionBase {
2121
public:
2222
class Callback : public Actor {
2323
public:
24-
virtual void handle(HttpQueryPtr query) = 0;
24+
virtual void handle(unique_ptr<HttpQuery> query) = 0;
2525
virtual void on_connection_error(Status error) = 0; // TODO rename to on_error
2626
};
2727
HttpOutboundConnection(SocketFd fd, SslStream ssl_stream, size_t max_post_size, size_t max_files, int32 idle_timeout,
@@ -36,7 +36,7 @@ class HttpOutboundConnection final : public detail::HttpConnectionBase {
3636
// void write_error(Status error);
3737

3838
private:
39-
void on_query(HttpQueryPtr query) override;
39+
void on_query(unique_ptr<HttpQuery> query) override;
4040
void on_error(Status error) override;
4141
void hangup() override {
4242
callback_.release();

0 commit comments

Comments
 (0)