aboutsummaryrefslogtreecommitdiff
path: root/osp
diff options
context:
space:
mode:
authorRyan Keane <rwkeane@google.com>2019-11-14 12:54:27 -0800
committerCommit Bot <commit-bot@chromium.org>2019-11-14 21:04:41 +0000
commitc76b2713813be0171bd57393a5577662906c6d7a (patch)
tree3cbfb3f81db78f1119b6f1b7139d0a418eb4b418 /osp
parent977b6ef1ba8be7c7b08db11014c11537f106cd5e (diff)
downloadopenscreen-c76b2713813be0171bd57393a5577662906c6d7a.tar.gz
PlatformClient: Use in Demos + Cleanup
This is the final CL required to change over to using the PlatformClient throughout our code This change includes 4 parts: 1) Update demos to use the new PlatformClient code for threading and singletons. 2) Fix a Race Condition in PlatformClientPosix where new threads were using the client's resources before construction had completed 3) Remove now-unused threading code (task_runner_thread, etc...) 4) Remove UdpSocket::LifetimeObserver interface and related code. Change-Id: I549a2fae2f7ee79d1e98c88a3ed813c1b5645f55 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/1860333 Commit-Queue: Ryan Keane <rwkeane@google.com> Reviewed-by: mark a. foltz <mfoltz@chromium.org>
Diffstat (limited to 'osp')
-rw-r--r--osp/demo/osp_demo.cc31
-rw-r--r--osp/impl/discovery/mdns/mdns_demo.cc19
2 files changed, 25 insertions, 25 deletions
diff --git a/osp/demo/osp_demo.cc b/osp/demo/osp_demo.cc
index 0da3b026..229a03c4 100644
--- a/osp/demo/osp_demo.cc
+++ b/osp/demo/osp_demo.cc
@@ -30,13 +30,15 @@
#include "platform/api/time.h"
#include "platform/api/trace_logging.h"
#include "platform/impl/logging.h"
-#include "platform/impl/socket_handle_waiter_thread.h"
+#include "platform/impl/platform_client_posix.h"
#include "platform/impl/task_runner.h"
-#include "platform/impl/task_runner_thread.h"
#include "platform/impl/text_trace_logging_platform.h"
#include "platform/impl/udp_socket_reader_posix.h"
#include "third_party/tinycbor/src/src/cbor.h"
+using Clock = openscreen::platform::Clock;
+using PlatformClientPosix = openscreen::platform::PlatformClientPosix;
+
namespace openscreen {
namespace {
@@ -424,21 +426,18 @@ void RunControllerPollLoop(presentation::Controller* controller) {
void ListenerDemo() {
SignalThings();
- platform::TaskRunnerThread task_runner_thread(platform::Clock::now);
- platform::SocketHandleWaiterThread socket_handle_waiter_thread;
- platform::UdpSocketReaderPosix reader(
- socket_handle_waiter_thread.socket_handle_waiter());
-
ListenerObserver listener_observer;
MdnsServiceListenerConfig listener_config;
auto mdns_listener = MdnsServiceListenerFactory::Create(
- listener_config, &listener_observer, task_runner_thread.task_runner());
+ listener_config, &listener_observer,
+ PlatformClientPosix::GetInstance()->GetTaskRunner());
MessageDemuxer demuxer(platform::Clock::now,
MessageDemuxer::kDefaultBufferLimit);
ConnectionClientObserver client_observer;
auto connection_client = ProtocolConnectionClientFactory::Create(
- &demuxer, &client_observer, task_runner_thread.task_runner());
+ &demuxer, &client_observer,
+ PlatformClientPosix::GetInstance()->GetTaskRunner());
auto* network_service = NetworkServiceManager::Create(
std::move(mdns_listener), nullptr, std::move(connection_client), nullptr);
@@ -515,11 +514,6 @@ void PublisherDemo(absl::string_view friendly_name) {
constexpr uint16_t server_port = 6667;
- platform::TaskRunnerThread task_runner_thread(platform::Clock::now);
- platform::SocketHandleWaiterThread socket_handle_waiter_thread;
- platform::UdpSocketReaderPosix reader(
- socket_handle_waiter_thread.socket_handle_waiter());
-
PublisherObserver publisher_observer;
// TODO(btolsch): aggregate initialization probably better?
ServicePublisher::Config publisher_config;
@@ -529,7 +523,8 @@ void PublisherDemo(absl::string_view friendly_name) {
publisher_config.connection_server_port = server_port;
auto mdns_publisher = MdnsServicePublisherFactory::Create(
- publisher_config, &publisher_observer, task_runner_thread.task_runner());
+ publisher_config, &publisher_observer,
+ PlatformClientPosix::GetInstance()->GetTaskRunner());
ServerConfig server_config;
std::vector<platform::InterfaceAddresses> interfaces =
@@ -544,7 +539,7 @@ void PublisherDemo(absl::string_view friendly_name) {
ConnectionServerObserver server_observer;
auto connection_server = ProtocolConnectionServerFactory::Create(
server_config, &demuxer, &server_observer,
- task_runner_thread.task_runner());
+ PlatformClientPosix::GetInstance()->GetTaskRunner());
auto* network_service =
NetworkServiceManager::Create(nullptr, std::move(mdns_publisher), nullptr,
@@ -614,11 +609,15 @@ int main(int argc, char** argv) {
openscreen::platform::TextTraceLoggingPlatform text_logging_platform;
TRACE_SET_DEFAULT_PLATFORM(&text_logging_platform);
+ PlatformClientPosix::Create(Clock::duration{50}, Clock::duration{50});
+
if (is_receiver_demo) {
openscreen::PublisherDemo(args.friendly_server_name);
} else {
openscreen::ListenerDemo();
}
+ PlatformClientPosix::ShutDown();
+
return 0;
}
diff --git a/osp/impl/discovery/mdns/mdns_demo.cc b/osp/impl/discovery/mdns/mdns_demo.cc
index 0a6722fb..8bb49d99 100644
--- a/osp/impl/discovery/mdns/mdns_demo.cc
+++ b/osp/impl/discovery/mdns/mdns_demo.cc
@@ -15,9 +15,8 @@
#include "platform/api/time.h"
#include "platform/base/error.h"
#include "platform/impl/logging.h"
-#include "platform/impl/socket_handle_waiter_thread.h"
+#include "platform/impl/platform_client_posix.h"
#include "platform/impl/task_runner.h"
-#include "platform/impl/task_runner_thread.h"
#include "platform/impl/udp_socket_reader_posix.h"
// This file contains a demo of our mDNSResponder wrapper code. It can both
@@ -36,6 +35,10 @@
// There are a few known bugs around the handling of record events, so this
// shouldn't be expected to be a source of truth, nor should it be expected to
// be correct after running for a long time.
+
+using Clock = openscreen::platform::Clock;
+using PlatformClientPosix = openscreen::platform::PlatformClientPosix;
+
namespace openscreen {
namespace {
@@ -358,14 +361,12 @@ int main(int argc, char** argv) {
openscreen::ServiceMap services;
openscreen::g_services = &services;
- openscreen::platform::TaskRunnerThread task_runner_thread(
- openscreen::platform::Clock::now);
- openscreen::platform::SocketHandleWaiterThread socket_handle_waiter_thread;
- openscreen::platform::UdpSocketReaderPosix reader(
- socket_handle_waiter_thread.socket_handle_waiter());
+ PlatformClientPosix::Create(Clock::duration{50}, Clock::duration{50});
+
+ openscreen::BrowseDemo(PlatformClientPosix::GetInstance()->GetTaskRunner(),
+ labels[0], labels[1], service_instance);
- openscreen::BrowseDemo(task_runner_thread.task_runner(), labels[0], labels[1],
- service_instance);
+ PlatformClientPosix::ShutDown();
openscreen::g_services = nullptr;
return 0;