Skip to content

Commit a0cf783

Browse files
committed
fix
1 parent 3eaa50c commit a0cf783

File tree

2 files changed

+43
-43
lines changed

2 files changed

+43
-43
lines changed

samples/HubConnectionSample/HubConnectionSample.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ class logger : public signalr::log_writer
1818
}
1919
};
2020

21-
void send_message(signalr::hub_connection& connection, const std::string& message)
21+
void send_message(std::shared_ptr<signalr::hub_connection> connection, const std::string& message)
2222
{
2323
std::vector<signalr::value> args { std::string("c++"), message };
2424

2525
// if you get an internal compiler error uncomment the lambda below or install VS Update 4
26-
connection.invoke("Send", args, [](const signalr::value& value, std::exception_ptr exception)
26+
connection->invoke("Send", args, [](const signalr::value& value, std::exception_ptr exception)
2727
{
2828
try
2929
{
@@ -87,7 +87,7 @@ void chat()
8787
break;
8888
}
8989

90-
//send_message(connection, message);
90+
send_message(connection, message);
9191
}
9292

9393
connection->stop([&task](std::exception_ptr exception)

test/signalrclienttests/hub_connection_tests.cpp

+40-40
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ TEST(start, start_fails_for_handshake_response_with_error)
211211
auto websocket_client = create_test_websocket_client();
212212
auto hub_connection = create_hub_connection(websocket_client);
213213
std::exception_ptr exception;
214-
hub_connection.set_disconnected([&exception](std::exception_ptr ex)
214+
hub_connection->set_disconnected([&exception](std::exception_ptr ex)
215215
{
216216
exception = ex;
217217
});
@@ -255,7 +255,7 @@ TEST(start, start_fails_if_non_handshake_message_received)
255255
auto hub_connection = create_hub_connection(websocket_client);
256256

257257
auto mre = manual_reset_event<void>();
258-
hub_connection.start([&mre](std::exception_ptr exception)
258+
hub_connection->start([&mre](std::exception_ptr exception)
259259
{
260260
mre.set(exception);
261261
});
@@ -274,7 +274,7 @@ TEST(start, start_fails_if_non_handshake_message_received)
274274
ASSERT_STREQ("Received unexpected message while waiting for the handshake response.", ex.what());
275275
}
276276

277-
ASSERT_EQ(connection_state::disconnected, hub_connection.get_connection_state());
277+
ASSERT_EQ(connection_state::disconnected, hub_connection->get_connection_state());
278278
}
279279

280280
TEST(start, on_not_called_if_multiple_messages_received_before_handshake)
@@ -283,13 +283,13 @@ TEST(start, on_not_called_if_multiple_messages_received_before_handshake)
283283
auto hub_connection = create_hub_connection(websocket_client);
284284

285285
bool on_called = false;
286-
hub_connection.on("Target", [&on_called](signalr::value)
286+
hub_connection->on("Target", [&on_called](signalr::value)
287287
{
288288
on_called = true;
289289
});
290290

291291
auto mre = manual_reset_event<void>();
292-
hub_connection.start([&mre](std::exception_ptr exception)
292+
hub_connection->start([&mre](std::exception_ptr exception)
293293
{
294294
mre.set(exception);
295295
});
@@ -308,7 +308,7 @@ TEST(start, on_not_called_if_multiple_messages_received_before_handshake)
308308
ASSERT_STREQ("Received unexpected message while waiting for the handshake response.", ex.what());
309309
}
310310

311-
ASSERT_EQ(connection_state::disconnected, hub_connection.get_connection_state());
311+
ASSERT_EQ(connection_state::disconnected, hub_connection->get_connection_state());
312312

313313
ASSERT_FALSE(on_called);
314314
}
@@ -404,10 +404,10 @@ TEST(start, start_fails_if_handshake_times_out)
404404
auto hub_connection = create_hub_connection(websocket_client);
405405
auto config = signalr_client_config();
406406
config.set_handshake_timeout(std::chrono::seconds(1));
407-
hub_connection.set_client_config(config);
407+
hub_connection->set_client_config(config);
408408

409409
auto mre = manual_reset_event<void>();
410-
hub_connection.start([&mre](std::exception_ptr exception)
410+
hub_connection->start([&mre](std::exception_ptr exception)
411411
{
412412
mre.set(exception);
413413
});
@@ -425,7 +425,7 @@ TEST(start, start_fails_if_handshake_times_out)
425425
ASSERT_STREQ("timed out waiting for the server to respond to the handshake message.", ex.what());
426426
}
427427

428-
ASSERT_EQ(connection_state::disconnected, hub_connection.get_connection_state());
428+
ASSERT_EQ(connection_state::disconnected, hub_connection->get_connection_state());
429429
}
430430

431431
TEST(start, propogates_exception_from_negotiate)
@@ -447,7 +447,7 @@ TEST(start, propogates_exception_from_negotiate)
447447
.build();
448448

449449
auto mre = manual_reset_event<void>();
450-
hub_connection.start([&mre](std::exception_ptr exception)
450+
hub_connection->start([&mre](std::exception_ptr exception)
451451
{
452452
mre.set(exception);
453453
});
@@ -462,7 +462,7 @@ TEST(start, propogates_exception_from_negotiate)
462462
ASSERT_STREQ("custom exception", e.what());
463463
}
464464

465-
ASSERT_EQ(connection_state::disconnected, hub_connection.get_connection_state());
465+
ASSERT_EQ(connection_state::disconnected, hub_connection->get_connection_state());
466466
}
467467

468468
// regression test: helps ensure internal state is in a working state for connecting again after connection failures
@@ -495,13 +495,13 @@ TEST(start, propogates_exception_from_negotiate_and_can_start_again)
495495
.build();
496496

497497
std::atomic<bool> disconnected { false };
498-
hub_connection.set_disconnected([&disconnected](std::exception_ptr ex)
498+
hub_connection->set_disconnected([&disconnected](std::exception_ptr ex)
499499
{
500500
disconnected.store(true);
501501
});
502502

503503
auto mre = manual_reset_event<void>();
504-
hub_connection.start([&mre](std::exception_ptr exception)
504+
hub_connection->start([&mre](std::exception_ptr exception)
505505
{
506506
mre.set(exception);
507507
});
@@ -518,7 +518,7 @@ TEST(start, propogates_exception_from_negotiate_and_can_start_again)
518518

519519
ASSERT_FALSE(disconnected.load());
520520

521-
hub_connection.start([&mre](std::exception_ptr exception)
521+
hub_connection->start([&mre](std::exception_ptr exception)
522522
{
523523
mre.set(exception);
524524
});
@@ -533,7 +533,7 @@ TEST(start, propogates_exception_from_negotiate_and_can_start_again)
533533
ASSERT_STREQ("custom exception 2", e.what());
534534
}
535535

536-
ASSERT_EQ(connection_state::disconnected, hub_connection.get_connection_state());
536+
ASSERT_EQ(connection_state::disconnected, hub_connection->get_connection_state());
537537
ASSERT_FALSE(disconnected.load());
538538
}
539539

@@ -754,10 +754,10 @@ TEST(stop, transport_error_propogates_to_disconnected_callback)
754754
auto hub_connection = create_hub_connection(websocket_client);
755755

756756
auto disconnected_invoked = manual_reset_event<void>();
757-
hub_connection.set_disconnected([&disconnected_invoked](std::exception_ptr exception) { disconnected_invoked.set(exception); });
757+
hub_connection->set_disconnected([&disconnected_invoked](std::exception_ptr exception) { disconnected_invoked.set(exception); });
758758

759759
auto mre = manual_reset_event<void>();
760-
hub_connection.start([&mre](std::exception_ptr exception)
760+
hub_connection->start([&mre](std::exception_ptr exception)
761761
{
762762
mre.set(exception);
763763
});
@@ -779,7 +779,7 @@ TEST(stop, transport_error_propogates_to_disconnected_callback)
779779
{
780780
ASSERT_STREQ("transport error", e.what());
781781
}
782-
ASSERT_EQ(connection_state::disconnected, hub_connection.get_connection_state());
782+
ASSERT_EQ(connection_state::disconnected, hub_connection->get_connection_state());
783783
}
784784

785785
TEST(stop, connection_stopped_when_going_out_of_scope)
@@ -839,7 +839,7 @@ TEST(stop, stop_cancels_pending_callbacks)
839839
mre.get();
840840

841841
auto invoke_mre = manual_reset_event<void>();
842-
hub_connection.invoke("method", std::vector<signalr::value>(), [&invoke_mre](const signalr::value&, std::exception_ptr exception)
842+
hub_connection->invoke("method", std::vector<signalr::value>(), [&invoke_mre](const signalr::value&, std::exception_ptr exception)
843843
{
844844
invoke_mre.set(exception);
845845
});
@@ -882,7 +882,7 @@ TEST(stop, pending_callbacks_finished_if_hub_connections_goes_out_of_scope)
882882

883883
mre.get();
884884

885-
hub_connection.invoke("method", std::vector<signalr::value>(), [&invoke_mre](const signalr::value&, std::exception_ptr exception)
885+
hub_connection->invoke("method", std::vector<signalr::value>(), [&invoke_mre](const signalr::value&, std::exception_ptr exception)
886886
{
887887
invoke_mre.set(exception);
888888
});
@@ -935,18 +935,18 @@ TEST(stop, stops_with_inprogress_negotiate)
935935

936936
auto disconnected_called = false;
937937
// disconnected not called for connections that never started successfully
938-
hub_connection.set_disconnected([&disconnected_called](std::exception_ptr ex)
938+
hub_connection->set_disconnected([&disconnected_called](std::exception_ptr ex)
939939
{
940940
disconnected_called = true;
941941
});
942942

943943
auto mre = manual_reset_event<void>();
944-
hub_connection.start([&mre](std::exception_ptr exception)
944+
hub_connection->start([&mre](std::exception_ptr exception)
945945
{
946946
mre.set(exception);
947947
});
948948

949-
hub_connection.stop([&stop_mre](std::exception_ptr exception)
949+
hub_connection->stop([&stop_mre](std::exception_ptr exception)
950950
{
951951
stop_mre.set(exception);
952952
});
@@ -963,7 +963,7 @@ TEST(stop, stops_with_inprogress_negotiate)
963963
// avoid AV from accessing stop_mre in callback
964964
done_mre.get();
965965

966-
ASSERT_EQ(connection_state::disconnected, hub_connection.get_connection_state());
966+
ASSERT_EQ(connection_state::disconnected, hub_connection->get_connection_state());
967967
ASSERT_FALSE(disconnected_called);
968968
}
969969

@@ -1770,12 +1770,12 @@ TEST(config, can_replace_scheduler)
17701770
signalr_client_config config{};
17711771
auto scheduler = std::make_shared<test_scheduler>();
17721772
config.set_scheduler(scheduler);
1773-
hub_connection.set_client_config(config);
1773+
hub_connection->set_client_config(config);
17741774

17751775
// do some "work" to verify scheduler is used
17761776

17771777
auto mre = manual_reset_event<void>();
1778-
hub_connection.start([&mre](std::exception_ptr exception)
1778+
hub_connection->start([&mre](std::exception_ptr exception)
17791779
{
17801780
mre.set(exception);
17811781
});
@@ -1787,7 +1787,7 @@ TEST(config, can_replace_scheduler)
17871787
mre.get();
17881788

17891789
auto invoke_mre = manual_reset_event<void>();
1790-
hub_connection.invoke("method", std::vector<signalr::value>(), [&invoke_mre](const signalr::value& message, std::exception_ptr exception)
1790+
hub_connection->invoke("method", std::vector<signalr::value>(), [&invoke_mre](const signalr::value& message, std::exception_ptr exception)
17911791
{
17921792
if (exception)
17931793
{
@@ -1803,7 +1803,7 @@ TEST(config, can_replace_scheduler)
18031803

18041804
invoke_mre.get();
18051805

1806-
hub_connection.stop([&mre](std::exception_ptr ex)
1806+
hub_connection->stop([&mre](std::exception_ptr ex)
18071807
{
18081808
mre.set();
18091809
});
@@ -1911,10 +1911,10 @@ TEST(keepalive, sends_ping_messages)
19111911
[](std::function<void(std::exception_ptr)> callback) { callback(nullptr); },
19121912
false);
19131913
auto hub_connection = create_hub_connection(websocket_client);
1914-
hub_connection.set_client_config(config);
1914+
hub_connection->set_client_config(config);
19151915

19161916
auto mre = manual_reset_event<void>();
1917-
hub_connection.start([&mre](std::exception_ptr exception)
1917+
hub_connection->start([&mre](std::exception_ptr exception)
19181918
{
19191919
mre.set(exception);
19201920
});
@@ -1931,7 +1931,7 @@ TEST(keepalive, sends_ping_messages)
19311931
ASSERT_EQ("{\"protocol\":\"json\",\"version\":1}\x1e", (*messages)[0]);
19321932
ASSERT_EQ("{\"type\":6}\x1e", (*messages)[1]);
19331933
ASSERT_EQ("{\"type\":6}\x1e", (*messages)[2]);
1934-
ASSERT_EQ(connection_state::connected, hub_connection.get_connection_state());
1934+
ASSERT_EQ(connection_state::connected, hub_connection->get_connection_state());
19351935
}
19361936

19371937
TEST(keepalive, server_timeout_on_no_ping_from_server)
@@ -1941,18 +1941,18 @@ TEST(keepalive, server_timeout_on_no_ping_from_server)
19411941
config.set_server_timeout(std::chrono::seconds(1));
19421942
auto websocket_client = create_test_websocket_client();
19431943
auto hub_connection = create_hub_connection(websocket_client);
1944-
hub_connection.set_client_config(config);
1944+
hub_connection->set_client_config(config);
19451945

19461946
auto disconnected_called = false;
19471947

19481948
auto disconnect_mre = manual_reset_event<void>();
1949-
hub_connection.set_disconnected([&disconnected_called, &disconnect_mre](std::exception_ptr ex)
1949+
hub_connection->set_disconnected([&disconnected_called, &disconnect_mre](std::exception_ptr ex)
19501950
{
19511951
disconnect_mre.set(ex);
19521952
});
19531953

19541954
auto mre = manual_reset_event<void>();
1955-
hub_connection.start([&mre](std::exception_ptr exception)
1955+
hub_connection->start([&mre](std::exception_ptr exception)
19561956
{
19571957
mre.set(exception);
19581958
});
@@ -1972,7 +1972,7 @@ TEST(keepalive, server_timeout_on_no_ping_from_server)
19721972
{
19731973
ASSERT_STREQ("server timeout (1000 ms) elapsed without receiving a message from the server.", ex.what());
19741974
}
1975-
ASSERT_EQ(connection_state::disconnected, hub_connection.get_connection_state());
1975+
ASSERT_EQ(connection_state::disconnected, hub_connection->get_connection_state());
19761976
}
19771977

19781978
TEST(keepalive, resets_server_timeout_timer_on_any_message_from_server)
@@ -1982,16 +1982,16 @@ TEST(keepalive, resets_server_timeout_timer_on_any_message_from_server)
19821982
config.set_server_timeout(std::chrono::seconds(1));
19831983
auto websocket_client = create_test_websocket_client();
19841984
auto hub_connection = create_hub_connection(websocket_client);
1985-
hub_connection.set_client_config(config);
1985+
hub_connection->set_client_config(config);
19861986

19871987
auto disconnect_mre = manual_reset_event<void>();
1988-
hub_connection.set_disconnected([&disconnect_mre](std::exception_ptr ex)
1988+
hub_connection->set_disconnected([&disconnect_mre](std::exception_ptr ex)
19891989
{
19901990
disconnect_mre.set(ex);
19911991
});
19921992

19931993
auto mre = manual_reset_event<void>();
1994-
hub_connection.start([&mre](std::exception_ptr exception)
1994+
hub_connection->start([&mre](std::exception_ptr exception)
19951995
{
19961996
mre.set(exception);
19971997
});
@@ -2005,7 +2005,7 @@ TEST(keepalive, resets_server_timeout_timer_on_any_message_from_server)
20052005
std::this_thread::sleep_for(config.get_server_timeout() - std::chrono::milliseconds(500));
20062006
websocket_client->receive_message("{\"type\":6}\x1e");
20072007
std::this_thread::sleep_for(std::chrono::seconds(1));
2008-
ASSERT_EQ(connection_state::connected, hub_connection.get_connection_state());
2008+
ASSERT_EQ(connection_state::connected, hub_connection->get_connection_state());
20092009

20102010
try
20112011
{
@@ -2016,5 +2016,5 @@ TEST(keepalive, resets_server_timeout_timer_on_any_message_from_server)
20162016
{
20172017
ASSERT_STREQ("server timeout (1000 ms) elapsed without receiving a message from the server.", ex.what());
20182018
}
2019-
ASSERT_EQ(connection_state::disconnected, hub_connection.get_connection_state());
2019+
ASSERT_EQ(connection_state::disconnected, hub_connection->get_connection_state());
20202020
}

0 commit comments

Comments
 (0)