1// Copyright 2013 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 CC_RESOURCES_UI_RESOURCE_REQUEST_H_ 6#define CC_RESOURCES_UI_RESOURCE_REQUEST_H_ 7 8#include "base/logging.h" 9#include "base/memory/scoped_ptr.h" 10#include "cc/base/cc_export.h" 11#include "cc/resources/ui_resource_bitmap.h" 12#include "cc/resources/ui_resource_client.h" 13 14namespace cc { 15 16class CC_EXPORT UIResourceRequest { 17 public: 18 enum UIResourceRequestType { 19 UIResourceCreate, 20 UIResourceDelete, 21 UIResourceInvalidRequest 22 }; 23 24 UIResourceRequest(UIResourceRequestType type, UIResourceId id); 25 UIResourceRequest(UIResourceRequestType type, 26 UIResourceId id, 27 const UIResourceBitmap& bitmap); 28 UIResourceRequest(const UIResourceRequest& request); 29 30 ~UIResourceRequest(); 31 32 UIResourceRequestType GetType() const { return type_; } 33 UIResourceId GetId() const { return id_; } 34 UIResourceBitmap GetBitmap() const { 35 DCHECK(bitmap_); 36 return *bitmap_.get(); 37 } 38 39 UIResourceRequest& operator=(const UIResourceRequest& request); 40 41 private: 42 UIResourceRequestType type_; 43 UIResourceId id_; 44 scoped_ptr<UIResourceBitmap> bitmap_; 45}; 46 47} // namespace cc 48 49#endif // CC_RESOURCES_UI_RESOURCE_REQUEST_H_ 50