| Home | Libraries | People | FAQ | More

## Class template mapped_view

boost::compute::mapped_view — A mapped view of host memory.

## Synopsis

    // In header: <boost/compute/container/mapped_view.hpp>

    template<typename T>
    class mapped_view {
    public:
      // types
      typedef T                    value_type;
      typedef size_t               size_type;
      typedef ptrdiff_t            difference_type;
      typedef buffer_iterator< T > iterator;
      typedef buffer_iterator< T > const_iterator;

      // public member functions
      mapped_view();
      mapped_view(T *, size_type, const context & = system::default_context());
      mapped_view(const T *, size_type,
                  const context & = system::default_context());
      mapped_view(const mapped_view< T > &);
      mapped_view< T > & operator=(const mapped_view< T > &);
      ~mapped_view();
      iterator begin();
      const_iterator begin() const;
      const_iterator cbegin() const;
      iterator end();
      const_iterator end() const;
      const_iterator cend() const;
      size_type size() const;
      T * get_host_ptr();
      const T * get_host_ptr() const;
      void resize(size_type);
      bool empty() const;
      const buffer & get_buffer() const;
      void map(cl_map_flags, command_queue &);
      void map(command_queue &);
      void unmap(command_queue &);
    };

## Description

The mapped_view class simplifies mapping host-memory to a compute device. This allows for host-allocated memory to be used with the Boost.Compute algorithms.

The following example shows how to map a simple C-array containing data on the host to the device and run the reduce() algorithm to calculate the sum:

See Also: buffer

### `mapped_view` public member functions

1.     mapped_view();

   Creates a null mapped_view object.

2.     mapped_view(T * host_ptr, size_type n,
                   const context & context = system::default_context());

   Creates a mapped_view for `host_ptr` with `n` elements. After constructing a mapped_view the data is available for use by a compute device. Use the `unmap()` method to make the updated data available to the host.

3.     mapped_view(const T * host_ptr, size_type n,
                   const context & context = system::default_context());

   Creates a read-only mapped_view for `host_ptr` with `n` elements. After constructing a mapped_view the data is available for use by a compute device. Use the `unmap()` method to make the updated data available to the host.

4.     mapped_view(const mapped_view< T > & other);

   Creates a copy of `other`.

5.     mapped_view< T > & operator=(const mapped_view< T > & other);

   Copies the mapped buffer from `other`.

6.     ~mapped_view();

   Destroys the mapped_view object.

7.     iterator begin();

   Returns an iterator to the first element in the mapped_view.

8.     const_iterator begin() const;

   Returns a const_iterator to the first element in the mapped_view.

9.     const_iterator cbegin() const;

   Returns a const_iterator to the first element in the mapped_view.

10.     iterator end();

    Returns an iterator to one past the last element in the mapped_view.

11.     const_iterator end() const;

    Returns a const_iterator to one past the last element in the mapped_view.

12.     const_iterator cend() const;

    Returns a const_iterator to one past the last element in the mapped_view.

13.     size_type size() const;

    Returns the number of elements in the mapped_view.

14.     T * get_host_ptr();

    Returns the host data pointer.

15.     const T * get_host_ptr() const;

    Returns the host data pointer.

16.     void resize(size_type size);

    Resizes the mapped_view to `size` elements.

17.     bool empty() const;

    Returns `true` if the mapped_view is empty.

18.     const buffer & get_buffer() const;

    Returns the mapped buffer.

19.     void map(cl_map_flags flags, command_queue & queue);

    Maps the buffer into the host address space.

    See the documentation for

20.     void map(command_queue & queue);

    Maps the buffer into the host address space for reading and writing.

    Equivalent to:

        map(CL_MAP_READ | CL_MAP_WRITE, queue);

21.     void unmap(command_queue & queue);

    Unmaps the buffer from the host address space.

    See the documentation for