Home | History | Annotate | Download | only in resources
      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 
     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