Update Lesnet to match changes in upstream Mojo. - Create a quick hack to download "asio". - Remove "application_connection.h" and "application_runner.h". Replace them with "service_provider_impl.h" and "run_application.h". - Update NetworkServiceDelegate to use new interface. - Update NetworkServiceImpl to use new interface. Change-Id: I5cf11b9e0cd6ece1598a2a78103545f8a32fb5fe
diff --git a/download_prebuilts.sh b/download_prebuilts.sh index dff714a..d33c71d 100755 --- a/download_prebuilts.sh +++ b/download_prebuilts.sh
@@ -7,3 +7,11 @@ ./third_party/mojo/src/mojo/public/tools/download_dart_snapshotter.py \ --tools-directory=../../../../lesnet/tools \ --version-file=../../../../lesnet/third_party/mojo/MOJO_VERSION + +# TODO(smklein): Remove this hack. "asio" does not exist in Mojo's third_party +# directory, so this is necessary to build. +cd ./third_party/ +git clone https://mojo.googlesource.com/asio +cd ./asio/ +git checkout mojo +cd ../..
diff --git a/mojo/services/network/main.cc b/mojo/services/network/main.cc index c65acf0..9514856 100644 --- a/mojo/services/network/main.cc +++ b/mojo/services/network/main.cc
@@ -3,13 +3,12 @@ // found in the LICENSE file. #include "mojo/public/c/system/main.h" -#include "mojo/public/cpp/application/application_connection.h" -#include "mojo/public/cpp/application/application_runner.h" +#include "mojo/public/cpp/application/service_provider_impl.h" +#include "mojo/public/cpp/application/run_application.h" #include "network_service_delegate.h" MojoResult MojoMain(MojoHandle shell_handle) { - mojo::ApplicationRunner runner( - std::unique_ptr<NetworkServiceDelegate>(new NetworkServiceDelegate())); - return runner.Run(shell_handle); + NetworkServiceDelegate network_service_delegate; + return mojo::RunApplication(shell_handle, &network_service_delegate); }
diff --git a/mojo/services/network/network_service_delegate.cc b/mojo/services/network/network_service_delegate.cc index 83ecb09..4ef8c22 100644 --- a/mojo/services/network/network_service_delegate.cc +++ b/mojo/services/network/network_service_delegate.cc
@@ -4,26 +4,30 @@ #include "mojo/services/network/network_service_delegate.h" -#include "mojo/public/cpp/application/application_connection.h" +#include "mojo/public/cpp/application/service_provider_impl.h" NetworkServiceDelegate::NetworkServiceDelegate() {} NetworkServiceDelegate::~NetworkServiceDelegate() {} -void NetworkServiceDelegate::Initialize(mojo::ApplicationImpl* app) { +void NetworkServiceDelegate::OnInitialize() { } -bool NetworkServiceDelegate::ConfigureIncomingConnection( - mojo::ApplicationConnection* connection) { - connection->AddService(this); +bool NetworkServiceDelegate::OnAcceptConnection( + mojo::ServiceProviderImpl* service_provider_impl) { + service_provider_impl->AddService<mojo::NetworkService>( + [this](const mojo::ConnectionContext& connection_context, + mojo::InterfaceRequest<mojo::NetworkService> request) { + new mojo::NetworkServiceImpl(request.Pass()); + }); return true; } -void NetworkServiceDelegate::Quit() { +void NetworkServiceDelegate::OnQuit() { } void NetworkServiceDelegate::Create( - mojo::ApplicationConnection* connection, + const mojo::ConnectionContext& connection, mojo::InterfaceRequest<mojo::NetworkService> request) { - new mojo::NetworkServiceImpl(request.Pass(), connection); + new mojo::NetworkServiceImpl(request.Pass()); }
diff --git a/mojo/services/network/network_service_delegate.h b/mojo/services/network/network_service_delegate.h index c17bfe4..67664d1 100644 --- a/mojo/services/network/network_service_delegate.h +++ b/mojo/services/network/network_service_delegate.h
@@ -6,28 +6,25 @@ #define MOJO_SERVICES_NETWORK_NETWORK_SERVICE_DELEGATE_H_ #include "mojo/services/network/network_service_impl.h" -#include "mojo/public/cpp/application/application_delegate.h" -#include "mojo/public/cpp/application/application_impl.h" #include "mojo/public/cpp/bindings/interface_ptr.h" -#include "mojo/public/cpp/application/interface_factory.h" +#include "mojo/public/cpp/application/application_impl_base.h" +#include "mojo/public/cpp/application/connection_context.h" -class NetworkServiceDelegate - : public mojo::ApplicationDelegate, - public mojo::InterfaceFactory<mojo::NetworkService> { +class NetworkServiceDelegate : public mojo::ApplicationImplBase { public: NetworkServiceDelegate(); ~NetworkServiceDelegate() override; private: - // mojo::ApplicationDelegate implementation. - void Initialize(mojo::ApplicationImpl* app) override; - bool ConfigureIncomingConnection( - mojo::ApplicationConnection* connection) override; - void Quit() override; + // mojo::ApplicationImplBase implementation. + void OnInitialize() override; + bool OnAcceptConnection( + mojo::ServiceProviderImpl* service_provider_impl) override; + void OnQuit() override; - // mojo::InterfaceFactory<mojo::NetworkService> implementation. - void Create(mojo::ApplicationConnection* connection, - mojo::InterfaceRequest<mojo::NetworkService> request) override; + // Creates a content handler for the given connection (context and request). + void Create(const mojo::ConnectionContext& connection, + mojo::InterfaceRequest<mojo::NetworkService> request); DISALLOW_COPY_AND_ASSIGN(NetworkServiceDelegate); };
diff --git a/mojo/services/network/network_service_impl.cc b/mojo/services/network/network_service_impl.cc index 974db70..e68969a 100644 --- a/mojo/services/network/network_service_impl.cc +++ b/mojo/services/network/network_service_impl.cc
@@ -9,12 +9,11 @@ #include "mojo/services/network/net_adapters.h" #include "mojo/services/network/url_loader_impl.h" -#include "mojo/public/cpp/application/application_connection.h" +#include "mojo/public/cpp/application/service_provider_impl.h" namespace mojo { -NetworkServiceImpl::NetworkServiceImpl(InterfaceRequest<NetworkService> request, - ApplicationConnection* connection) +NetworkServiceImpl::NetworkServiceImpl(InterfaceRequest<NetworkService> request) : binding_(this, request.Pass()) { }
diff --git a/mojo/services/network/network_service_impl.h b/mojo/services/network/network_service_impl.h index 7c576fe..1d4f858 100644 --- a/mojo/services/network/network_service_impl.h +++ b/mojo/services/network/network_service_impl.h
@@ -16,8 +16,7 @@ class NetworkServiceImpl : public NetworkService { public: - NetworkServiceImpl(InterfaceRequest<NetworkService> request, - ApplicationConnection* connection); + NetworkServiceImpl(InterfaceRequest<NetworkService> request); ~NetworkServiceImpl() override; // NetworkService methods:
diff --git a/third_party/asio b/third_party/asio deleted file mode 120000 index 993e6cf..0000000 --- a/third_party/asio +++ /dev/null
@@ -1 +0,0 @@ -../../src/third_party/asio \ No newline at end of file
diff --git a/third_party/asio b/third_party/asio new file mode 160000 index 0000000..99ffb63 --- /dev/null +++ b/third_party/asio
@@ -0,0 +1 @@ +Subproject commit 99ffb63cba8577910f3684ee36ae85f9d53863ea