1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// found in the LICENSE file. 4f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#ifndef CC_RESOURCES_UI_RESOURCE_REQUEST_H_ 6f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define CC_RESOURCES_UI_RESOURCE_REQUEST_H_ 7f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/logging.h" 9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/memory/scoped_ptr.h" 10f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "cc/base/cc_export.h" 11f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "cc/resources/ui_resource_bitmap.h" 12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "cc/resources/ui_resource_client.h" 13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace cc { 15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class CC_EXPORT UIResourceRequest { 17f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) public: 18f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) enum UIResourceRequestType { 19f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) UIResourceCreate, 20f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) UIResourceDelete, 21f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) UIResourceInvalidRequest 22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) }; 23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) UIResourceRequest(UIResourceRequestType type, UIResourceId id); 25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) UIResourceRequest(UIResourceRequestType type, 26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) UIResourceId id, 27f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const UIResourceBitmap& bitmap); 28f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) UIResourceRequest(const UIResourceRequest& request); 29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ~UIResourceRequest(); 31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) UIResourceRequestType GetType() const { return type_; } 33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) UIResourceId GetId() const { return id_; } 34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) UIResourceBitmap GetBitmap() const { 35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) DCHECK(bitmap_); 36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return *bitmap_.get(); 37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) } 38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 39f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) UIResourceRequest& operator=(const UIResourceRequest& request); 40f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 41f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) private: 42f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) UIResourceRequestType type_; 43f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) UIResourceId id_; 44f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) scoped_ptr<UIResourceBitmap> bitmap_; 45f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}; 46f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 47f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} // namespace cc 48f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 49f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#endif // CC_RESOURCES_UI_RESOURCE_REQUEST_H_ 50