1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #ifndef BOOST_COMPUTE_CONTAINER_DETAIL_SCALAR_HPP
- #define BOOST_COMPUTE_CONTAINER_DETAIL_SCALAR_HPP
- #include <boost/compute/buffer.hpp>
- #include <boost/compute/event.hpp>
- #include <boost/compute/detail/read_write_single_value.hpp>
- namespace boost {
- namespace compute {
- namespace detail {
- template<class T>
- class scalar
- {
- public:
- typedef T value_type;
- scalar(const context &context)
- : m_buffer(context, sizeof(T))
- {
- }
- ~scalar()
- {
- }
- T read(command_queue &queue) const
- {
- return read_single_value<T>(m_buffer, 0, queue);
- }
- event write(const T &value, command_queue &queue)
- {
- return write_single_value<T>(value, m_buffer, 0, queue);
- }
- const buffer& get_buffer() const
- {
- return m_buffer;
- }
- private:
- buffer m_buffer;
- };
- }
- }
- }
- #endif
|