blob: 0a5c03424fb7d7937992fcca19df8cb0a41567e0 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "mojo/examples/surfaces_app/child_impl.h"
#include "mojo/public/cpp/application/application_connection.h"
#include "mojo/public/cpp/application/application_delegate.h"
#include "mojo/public/cpp/application/application_impl.h"
#include "mojo/public/cpp/bindings/string.h"
namespace mojo {
namespace examples {
class ChildApp : public ApplicationDelegate, public ChildImpl::Context {
public:
ChildApp() {}
virtual ~ChildApp() {}
virtual void Initialize(ApplicationImpl* app) OVERRIDE { app_ = app; }
// ApplicationDelegate implementation.
virtual bool ConfigureIncomingConnection(
ApplicationConnection* connection) OVERRIDE {
connection->AddService<ChildImpl, ChildImpl::Context>(this);
return true;
}
// ChildImpl::Context implementation.
virtual ApplicationConnection* ShellConnection(
const mojo::String& application_url) OVERRIDE {
return app_->ConnectToApplication(application_url);
}
private:
ApplicationImpl* app_;
DISALLOW_COPY_AND_ASSIGN(ChildApp);
};
} // namespace examples
// static
ApplicationDelegate* ApplicationDelegate::Create() {
return new examples::ChildApp();
}
} // namespace mojo