Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(196)

Side by Side Diff: examples/indirect_service/integer_service.cc

Issue 1975253002: ApplicationConnection devolution, part 2.1. (Closed) Base URL: https://github.com/domokit/mojo.git@work792-x-work791_service_registry_spimpl
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <memory> 5 #include <memory>
6 6
7 #include "examples/indirect_service/indirect_service_demo.mojom.h" 7 #include "examples/indirect_service/indirect_service_demo.mojom.h"
8 #include "mojo/public/c/system/main.h" 8 #include "mojo/public/c/system/main.h"
9 #include "mojo/public/cpp/application/application_connection.h" 9 #include "mojo/public/cpp/application/application_connection.h"
10 #include "mojo/public/cpp/application/application_delegate.h" 10 #include "mojo/public/cpp/application/application_delegate.h"
(...skipping 11 matching lines...) Expand all
22 22
23 void Increment(const Callback<void(int32_t)>& callback) override { 23 void Increment(const Callback<void(int32_t)>& callback) override {
24 callback.Run(value_++); 24 callback.Run(value_++);
25 } 25 }
26 26
27 private: 27 private:
28 int32_t value_; 28 int32_t value_;
29 StrongBinding<IntegerService> binding_; 29 StrongBinding<IntegerService> binding_;
30 }; 30 };
31 31
32 class IntegerServiceAppDelegate : public ApplicationDelegate, 32 class IntegerServiceAppDelegate : public ApplicationDelegate {
33 public InterfaceFactory<IntegerService> {
34 public: 33 public:
35 bool ConfigureIncomingConnection( 34 bool ConfigureIncomingConnection(
36 ApplicationConnection* connection) override { 35 ApplicationConnection* connection) override {
37 connection->AddService(this); 36 connection->GetServiceProviderImpl().AddService<IntegerService>(
37 [](const ConnectionContext& connection_context,
38 InterfaceRequest<IntegerService> request) {
39 new IntegerServiceImpl(request.Pass());
40 });
38 return true; 41 return true;
39 } 42 }
40
41 private:
42 // InterfaceFactory<IntegerService>
43 void Create(const mojo::ConnectionContext& connection_context,
44 InterfaceRequest<IntegerService> request) override {
45 new IntegerServiceImpl(request.Pass());
46 }
47 }; 43 };
48 44
49 } // namespace examples 45 } // namespace examples
50 } // namespace mojo 46 } // namespace mojo
51 47
52 MojoResult MojoMain(MojoHandle application_request) { 48 MojoResult MojoMain(MojoHandle application_request) {
53 mojo::ApplicationRunner runner( 49 mojo::ApplicationRunner runner(
54 std::unique_ptr<mojo::examples::IntegerServiceAppDelegate>( 50 std::unique_ptr<mojo::examples::IntegerServiceAppDelegate>(
55 new mojo::examples::IntegerServiceAppDelegate)); 51 new mojo::examples::IntegerServiceAppDelegate));
56 return runner.Run(application_request); 52 return runner.Run(application_request);
57 } 53 }
58 54
OLDNEW
« no previous file with comments | « examples/indirect_service/indirect_integer_service.cc ('k') | examples/native_run_app/native_run_app.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698