/usr/include/boost/compute
NameSizeModeActions
algorithm/-0755rm
allocator/-0755rm
async/-0755rm
container/-0755rm
detail/-0755rm
exception/-0755rm
experimental/-0755rm
functional/-0755rm
image/-0755rm
interop/-0755rm
iterator/-0755rm
lambda/-0755rm
memory/-0755rm
random/-0755rm
types/-0755rm
type_traits/-0755rm
utility/-0755rm
algorithm.hpp43990644editdlrm
allocator.hpp7480644editdlrm
async.hpp7030644editdlrm
buffer.hpp67830644editdlrm
cl.hpp16250644editdlrm
closure.hpp101110644editdlrm
cl_ext.hpp6640644editdlrm
command_queue.hpp625000644editdlrm
config.hpp23590644editdlrm
container.hpp10210644editdlrm
context.hpp65940644editdlrm
core.hpp11410644editdlrm
device.hpp212030644editdlrm
event.hpp102800644editdlrm
exception.hpp8580644editdlrm
function.hpp121380644editdlrm
functional.hpp13430644editdlrm
image.hpp8940644editdlrm
image2d.hpp5490644editdlrm
image3d.hpp5490644editdlrm
image_format.hpp5590644editdlrm
image_sampler.hpp5610644editdlrm
iterator.hpp11400644editdlrm
kernel.hpp175800644editdlrm
lambda.hpp8620644editdlrm
memory.hpp7170644editdlrm
memory_object.hpp69940644editdlrm
pipe.hpp40080644editdlrm
platform.hpp74200644editdlrm
program.hpp253420644editdlrm
random.hpp11480644editdlrm
source.hpp5510644editdlrm
svm.hpp19690644editdlrm
system.hpp93880644editdlrm
types.hpp8700644editdlrm
type_traits.hpp11060644editdlrm
user_event.hpp24140644editdlrm
utility.hpp8230644editdlrm
version.hpp6650644editdlrm
wait_list.hpp5570644editdlrm
Edit: /usr/include/boost/compute/pipe.hpp (4008B)
//---------------------------------------------------------------------------// // Copyright (c) 2013-2014 Kyle Lutz // // 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_PIPE_HPP #define BOOST_COMPUTE_PIPE_HPP #include #include #include #include #include // pipe objects require opencl 2.0 #if defined(BOOST_COMPUTE_CL_VERSION_2_0) || defined(BOOST_COMPUTE_DOXYGEN_INVOKED) namespace boost { namespace compute { /// \class pipe /// \brief A FIFO data pipe /// /// \opencl_version_warning{2,0} /// /// \see memory_object class pipe : public memory_object { public: /// Creates a null pipe object. pipe() : memory_object() { } /// Creates a pipe object for \p mem. If \p retain is \c true, the /// reference count for \p mem will be incremented. explicit pipe(cl_mem mem, bool retain = true) : memory_object(mem, retain) { } /// Creates a new pipe in \p context. pipe(const context &context, uint_ pipe_packet_size, uint_ pipe_max_packets, cl_mem_flags flags = read_write, const cl_pipe_properties *properties = 0) { cl_int error = 0; m_mem = clCreatePipe(context, flags, pipe_packet_size, pipe_max_packets, properties, &error); if(!m_mem){ BOOST_THROW_EXCEPTION(opencl_error(error)); } } /// Creates a new pipe object as a copy of \p other. pipe(const pipe &other) : memory_object(other) { } /// Copies the pipe object from \p other to \c *this. pipe& operator=(const pipe &other) { if(this != &other){ memory_object::operator=(other); } return *this; } #ifndef BOOST_COMPUTE_NO_RVALUE_REFERENCES /// Move-constructs a new pipe object from \p other. pipe(pipe&& other) BOOST_NOEXCEPT : memory_object(std::move(other)) { } /// Move-assigns the pipe from \p other to \c *this. pipe& operator=(pipe&& other) BOOST_NOEXCEPT { memory_object::operator=(std::move(other)); return *this; } #endif // BOOST_COMPUTE_NO_RVALUE_REFERENCES /// Destroys the pipe object. ~pipe() { } /// Returns the packet size. uint_ packet_size() const { return get_info(CL_PIPE_PACKET_SIZE); } /// Returns the max number of packets. uint_ max_packets() const { return get_info(CL_PIPE_MAX_PACKETS); } /// Returns information about the pipe. /// /// \see_opencl2_ref{clGetPipeInfo} template T get_info(cl_pipe_info info) const { return detail::get_object_info(clGetPipeInfo, m_mem, info); } /// \overload template typename detail::get_object_info_type::type get_info() const; }; /// \internal_ define get_info() specializations for pipe BOOST_COMPUTE_DETAIL_DEFINE_GET_INFO_SPECIALIZATIONS(pipe, ((cl_uint, CL_PIPE_PACKET_SIZE)) ((cl_uint, CL_PIPE_MAX_PACKETS)) ) namespace detail { // set_kernel_arg specialization for pipe template<> struct set_kernel_arg { void operator()(kernel &kernel_, size_t index, const pipe &pipe_) { kernel_.set_arg(index, pipe_.get()); } }; } // end detail namespace } // end compute namespace } // end boost namespace #endif // BOOST_COMPUTE_CL_VERSION_2_0 #endif // BOOST_COMPUTE_PIPE_HPP