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

Side by Side Diff: examples/indirect_service/indirect_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
« no previous file with comments | « examples/hello_mojo/hello_mojo_server.cc ('k') | examples/indirect_service/integer_service.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 if (integer_service_.get()) 42 if (integer_service_.get())
43 integer_service_->Increment(callback); 43 integer_service_->Increment(callback);
44 } 44 }
45 45
46 private: 46 private:
47 IntegerServicePtr integer_service_; 47 IntegerServicePtr integer_service_;
48 std::vector<Binding<IntegerService>*> bindings_; 48 std::vector<Binding<IntegerService>*> bindings_;
49 StrongBinding<IndirectIntegerService> binding_; 49 StrongBinding<IndirectIntegerService> binding_;
50 }; 50 };
51 51
52 class IndirectIntegerServiceAppDelegate 52 class IndirectIntegerServiceAppDelegate : public ApplicationDelegate {
53 : public ApplicationDelegate,
54 public InterfaceFactory<IndirectIntegerService> {
55 public: 53 public:
56 bool ConfigureIncomingConnection( 54 bool ConfigureIncomingConnection(
57 ApplicationConnection* connection) override { 55 ApplicationConnection* connection) override {
58 connection->AddService(this); 56 connection->GetServiceProviderImpl().AddService<IndirectIntegerService>(
57 [](const ConnectionContext& connection_context,
58 InterfaceRequest<IndirectIntegerService> request) {
59 new IndirectIntegerServiceImpl(request.Pass());
60 });
59 return true; 61 return true;
60 } 62 }
61
62 private:
63 // InterfaceFactory<IndirectIntegerService>
64 void Create(const mojo::ConnectionContext& connection_context,
65 InterfaceRequest<IndirectIntegerService> request) override {
66 new IndirectIntegerServiceImpl(request.Pass());
67 }
68 }; 63 };
69 64
70 } // namespace examples 65 } // namespace examples
71 } // namespace mojo 66 } // namespace mojo
72 67
73 MojoResult MojoMain(MojoHandle application_request) { 68 MojoResult MojoMain(MojoHandle application_request) {
74 mojo::ApplicationRunner runner( 69 mojo::ApplicationRunner runner(
75 std::unique_ptr<mojo::examples::IndirectIntegerServiceAppDelegate>( 70 std::unique_ptr<mojo::examples::IndirectIntegerServiceAppDelegate>(
76 new mojo::examples::IndirectIntegerServiceAppDelegate())); 71 new mojo::examples::IndirectIntegerServiceAppDelegate()));
77 return runner.Run(application_request); 72 return runner.Run(application_request);
78 } 73 }
OLDNEW
« no previous file with comments | « examples/hello_mojo/hello_mojo_server.cc ('k') | examples/indirect_service/integer_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698