| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | //---------------------------------------------------------------------------//// Copyright (c) 2013-2014 Kyle Lutz <kyle.r.lutz@gmail.com>//// Distributed under the Boost Software License, Version 1.0// See accompanying file LICENSE_1_0.txt or copy at// http://www.boost.org/LICENSE_1_0.txt//// See http://boostorg.github.com/compute for more information.//---------------------------------------------------------------------------//#ifndef BOOST_COMPUTE_USER_EVENT_HPP#define BOOST_COMPUTE_USER_EVENT_HPP#include <boost/compute/event.hpp>#include <boost/compute/context.hpp>namespace boost {namespace compute {#if defined(BOOST_COMPUTE_CL_VERSION_1_1) || defined(BOOST_COMPUTE_DOXYGEN_INVOKED)/// \class user_event/// \brief An user-created event.////// \opencl_version_warning{1,1}////// \see eventclass user_event : public event{public:    /// Creates a new user-event object.    ///    /// \see_opencl_ref{clCreateUserEvent}    explicit user_event(const context &context)    {        cl_int error;        m_event = clCreateUserEvent(context.get(), &error);        if(!m_event){            BOOST_THROW_EXCEPTION(opencl_error(error));        }    }    /// Creates a new user-event from \p other.    user_event(const user_event &other)        : event(other)    {    }    /// Copies the user-event from \p other to \c *this.    user_event& operator=(const user_event &other)    {        event::operator=(other);        return *this;    }    #ifndef BOOST_COMPUTE_NO_RVALUE_REFERENCES    /// Move-constructs a new user event object from \p other.    user_event(user_event&& other) BOOST_NOEXCEPT        : event(std::move(other))    {    }    /// Move-assigns the user event from \p other to \c *this.    user_event& operator=(user_event&& other) BOOST_NOEXCEPT    {        event::operator=(std::move(other));        return *this;    }    #endif // BOOST_COMPUTE_NO_RVALUE_REFERENCES    /// Sets the execution status for the user-event.    ///    /// \see_opencl_ref{clSetUserEventStatus}    void set_status(cl_int execution_status)    {        cl_int ret = clSetUserEventStatus(m_event, execution_status);        if(ret != CL_SUCCESS){            BOOST_THROW_EXCEPTION(opencl_error(ret));        }    }};#endif // BOOST_COMPUTE_CL_VERSION_1_1} // end compute namespace} // end boost namespace#endif // BOOST_COMPUTE_EVENT_HPP
 |