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 14 namespace cc { 15 16 class 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 GetType()32 UIResourceRequestType GetType() const { return type_; } GetId()33 UIResourceId GetId() const { return id_; } GetBitmap()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