| OLD | NEW | 
|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/bank_app/bank.mojom.h" | 7 #include "examples/bank_app/bank.mojom.h" | 
| 8 #include "mojo/common/binding_set.h" | 8 #include "mojo/common/binding_set.h" | 
| 9 #include "mojo/public/c/system/main.h" | 9 #include "mojo/public/c/system/main.h" | 
| 10 #include "mojo/public/cpp/application/application_connection.h" | 10 #include "mojo/public/cpp/application/application_connection.h" | 
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 49  public: | 49  public: | 
| 50   BankApp() {} | 50   BankApp() {} | 
| 51 | 51 | 
| 52   void Initialize(mojo::ApplicationImpl* app) override { | 52   void Initialize(mojo::ApplicationImpl* app) override { | 
| 53     mojo::ConnectToService(app->shell(), "mojo:principal_service", | 53     mojo::ConnectToService(app->shell(), "mojo:principal_service", | 
| 54                            GetProxy(&login_service_)); | 54                            GetProxy(&login_service_)); | 
| 55   } | 55   } | 
| 56 | 56 | 
| 57   // From ApplicationDelegate | 57   // From ApplicationDelegate | 
| 58   bool ConfigureIncomingConnection( | 58   bool ConfigureIncomingConnection( | 
| 59       mojo::ApplicationConnection* connection) override { | 59       mojo::ServiceProviderImpl* service_provider_impl) override { | 
| 60     std::string url = | 60     std::string url = service_provider_impl->connection_context().remote_url; | 
| 61         connection->GetServiceProviderImpl().connection_context().remote_url; |  | 
| 62     if (url.length() > 0) { | 61     if (url.length() > 0) { | 
| 63       vanadium::AppInstanceNamePtr app(vanadium::AppInstanceName::New()); | 62       vanadium::AppInstanceNamePtr app(vanadium::AppInstanceName::New()); | 
| 64       app->url = url; | 63       app->url = url; | 
| 65       std::string user; | 64       std::string user; | 
| 66       login_service_->GetUser(app.Pass(), BankUser(&user)); | 65       login_service_->GetUser(app.Pass(), BankUser(&user)); | 
| 67       // Check and see whether we got a valid user blessing. | 66       // Check and see whether we got a valid user blessing. | 
| 68       if (!login_service_.WaitForIncomingResponse()) { | 67       if (!login_service_.WaitForIncomingResponse()) { | 
| 69         MOJO_LOG(INFO) << "Failed to get a valid user blessing"; | 68         MOJO_LOG(INFO) << "Failed to get a valid user blessing"; | 
| 70         return false; | 69         return false; | 
| 71       } | 70       } | 
| 72       // Record user access to the bank and reject customers that | 71       // Record user access to the bank and reject customers that | 
| 73       // don't have a user identity. | 72       // don't have a user identity. | 
| 74       if (user.empty()) { | 73       if (user.empty()) { | 
| 75         MOJO_LOG(INFO) << "Rejecting customer without a user identity"; | 74         MOJO_LOG(INFO) << "Rejecting customer without a user identity"; | 
| 76         return false; | 75         return false; | 
| 77       } | 76       } | 
| 78       MOJO_LOG(INFO) << "Customer " << user << " accessing bank"; | 77       MOJO_LOG(INFO) << "Customer " << user << " accessing bank"; | 
| 79     } | 78     } | 
| 80     connection->GetServiceProviderImpl().AddService<Bank>( | 79     service_provider_impl->AddService<Bank>( | 
| 81         [this](const mojo::ConnectionContext& connection_context, | 80         [this](const mojo::ConnectionContext& connection_context, | 
| 82                mojo::InterfaceRequest<Bank> bank_request) { | 81                mojo::InterfaceRequest<Bank> bank_request) { | 
| 83           bindings_.AddBinding(&bank_impl_, bank_request.Pass()); | 82           bindings_.AddBinding(&bank_impl_, bank_request.Pass()); | 
| 84         }); | 83         }); | 
| 85     return true; | 84     return true; | 
| 86   } | 85   } | 
| 87 | 86 | 
| 88  private: | 87  private: | 
| 89   BankImpl bank_impl_; | 88   BankImpl bank_impl_; | 
| 90   mojo::BindingSet<Bank> bindings_; | 89   mojo::BindingSet<Bank> bindings_; | 
| 91   vanadium::PrincipalServicePtr login_service_; | 90   vanadium::PrincipalServicePtr login_service_; | 
| 92 }; | 91 }; | 
| 93 | 92 | 
| 94 }  // namespace examples | 93 }  // namespace examples | 
| 95 | 94 | 
| 96 MojoResult MojoMain(MojoHandle application_request) { | 95 MojoResult MojoMain(MojoHandle application_request) { | 
| 97   mojo::ApplicationRunner runner( | 96   mojo::ApplicationRunner runner( | 
| 98       std::unique_ptr<examples::BankApp>(new examples::BankApp())); | 97       std::unique_ptr<examples::BankApp>(new examples::BankApp())); | 
| 99   return runner.Run(application_request); | 98   return runner.Run(application_request); | 
| 100 } | 99 } | 
| OLD | NEW | 
|---|