Home | History | Annotate | Download | only in dev
      1 // Copyright (c) 2011 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 PPAPI_CPP_DEV_BUFFER_DEV_H_
      6 #define PPAPI_CPP_DEV_BUFFER_DEV_H_
      7 
      8 #include "ppapi/cpp/resource.h"
      9 
     10 namespace pp {
     11 
     12 class InstanceHandle;
     13 
     14 class Buffer_Dev : public Resource {
     15  public:
     16   // Creates an is_null() Buffer object.
     17   Buffer_Dev();
     18   Buffer_Dev(const Buffer_Dev& other);
     19   explicit Buffer_Dev(PP_Resource resource);
     20 
     21   // Creates & Maps a new Buffer in the browser with the given size. The
     22   // resulting object will be is_null() if either Create() or Map() fails.
     23   Buffer_Dev(const InstanceHandle& instance, uint32_t size);
     24 
     25   // Constructor used when the buffer resource already has a reference count
     26   // assigned. No additional reference is taken.
     27   Buffer_Dev(PassRef, PP_Resource resource);
     28 
     29   // Unmap the underlying shared memory.
     30   virtual ~Buffer_Dev();
     31 
     32   Buffer_Dev& operator=(const Buffer_Dev& rhs);
     33 
     34   uint32_t size() const { return size_; }
     35   void* data() const { return data_; }
     36 
     37  private:
     38   void Init();
     39 
     40   void* data_;
     41   uint32_t size_;
     42 };
     43 
     44 }  // namespace pp
     45 
     46 #endif  // PPAPI_CPP_DEV_BUFFER_DEV_H_
     47