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 3// found in the LICENSE file. 4 5#ifndef UI_COMPOSITOR_LAYER_TREE_OWNER_H_ 6#define UI_COMPOSITOR_LAYER_TREE_OWNER_H_ 7 8#include "base/basictypes.h" 9#include "ui/compositor/compositor_export.h" 10 11namespace ui { 12 13class Layer; 14 15// Scoping object that owns a Layer and all its descendants. 16class COMPOSITOR_EXPORT LayerTreeOwner { 17 public: 18 explicit LayerTreeOwner(Layer* root); 19 ~LayerTreeOwner(); 20 21 Layer* release() WARN_UNUSED_RESULT { 22 Layer* root = root_; 23 root_ = NULL; 24 return root; 25 } 26 27 Layer* root() { return root_; } 28 const Layer* root() const { return root_; } 29 30 private: 31 Layer* root_; 32 33 DISALLOW_COPY_AND_ASSIGN(LayerTreeOwner); 34}; 35 36} // namespace 37 38#endif // UI_COMPOSITOR_LAYER_TREE_OWNER_H_ 39