blob: bb39fc9d55a95bbeb8f9adb2f46482e8d79afcb0 [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 "view_manager/public/cpp/view_manager_client_factory.h"
#include "mojo/public/interfaces/application/shell.mojom.h"
#include "view_manager/public/cpp/lib/view_manager_client_impl.h"
namespace mojo {
ViewManagerClientFactory::ViewManagerClientFactory(
Shell* shell,
ViewManagerDelegate* delegate)
: shell_(shell), delegate_(delegate) {
}
ViewManagerClientFactory::~ViewManagerClientFactory() {
}
// static
ViewManagerClient* ViewManagerClientFactory::WeakBindViewManagerToPipe(
InterfaceRequest<ViewManagerClient> request,
ViewManagerServicePtr view_manager_service,
Shell* shell,
ViewManagerDelegate* delegate) {
const bool delete_on_error = false;
auto client = new ViewManagerClientImpl(delegate, shell, request.Pass(),
delete_on_error);
client->SetViewManagerService(view_manager_service.Pass());
return client;
}
// InterfaceFactory<ViewManagerClient> implementation.
void ViewManagerClientFactory::Create(
ApplicationConnection* connection,
InterfaceRequest<ViewManagerClient> request) {
const bool delete_on_error = true;
new ViewManagerClientImpl(delegate_, shell_, request.Pass(), delete_on_error);
}
} // namespace mojo