C++ API Reference for Intel® Data Analytics Acceleration Library 2019 Update 4

buffer_view.h
1 /* file: buffer_view.h */
2 /*******************************************************************************
3 * Copyright 2014-2019 Intel Corporation.
4 *
5 * This software and the related documents are Intel copyrighted materials, and
6 * your use of them is governed by the express license under which they were
7 * provided to you (License). Unless the License provides otherwise, you may not
8 * use, modify, copy, publish, distribute, disclose or transmit this software or
9 * the related documents without Intel's prior written permission.
10 *
11 * This software and the related documents are provided as is, with no express
12 * or implied warranties, other than those that are expressly stated in the
13 * License.
14 *******************************************************************************/
15 
16 /*
17 //++
18 // Implementation of a dummy base class needed to fix ABI inconsistency between
19 // Visual Studio* 2012 and 2013.
20 //--
21 */
22 
23 #ifndef __DAAL_SERVICES_BUFFER_VIEW_H__
24 #define __DAAL_SERVICES_BUFFER_VIEW_H__
25 
26 #include "services/daal_defines.h"
27 #include "services/collection.h"
28 
29 namespace daal
30 {
31 namespace services
32 {
33 
37 namespace interface1
38 {
39 
52 template<typename T>
53 class BufferView : public Base
54 {
55 public:
59  BufferView() :
60  _buffer(NULL),
61  _size(0) { }
62 
68  explicit BufferView(T *buffer, size_t bufferSize) :
69  _buffer(buffer),
70  _size(bufferSize)
71  {
72  DAAL_ASSERT( _buffer );
73  }
74 
79  T *data() const
80  {
81  return _buffer;
82  }
83 
88  size_t size() const
89  {
90  return _size;
91  }
92 
97  bool empty() const
98  {
99  return (_buffer == NULL) || (_size == 0);
100  }
101 
107  const T &operator [] (size_t index) const
108  {
109  DAAL_ASSERT( index < _size );
110  return _buffer[index];
111  }
112 
118  T &operator [] (size_t index)
119  {
120  DAAL_ASSERT( index < _size );
121  return _buffer[index];
122  }
123 
130  BufferView getBlock(size_t offset, size_t size) const
131  {
132  DAAL_ASSERT( offset + size <= _size );
133  return BufferView<T>(_buffer + offset, size);
134  }
135 
136 private:
137  T *_buffer;
138  size_t _size;
139 };
140 
142 } // namespace interface1
143 
144 using interface1::BufferView;
145 
146 } // namespace services
147 } // namespace daal
148 
149 #endif
daal::services::interface1::BufferView::BufferView
BufferView(T *buffer, size_t bufferSize)
Definition: buffer_view.h:68
daal
Definition: algorithm_base_common.h:31
daal::services::interface1::BufferView::getBlock
BufferView getBlock(size_t offset, size_t size) const
Definition: buffer_view.h:130
daal::services::interface1::BufferView::operator[]
const T & operator[](size_t index) const
Definition: buffer_view.h:107
daal_defines.h
daal::services::interface1::BufferView::data
T * data() const
Definition: buffer_view.h:79
daal::services::interface1::BufferView::size
size_t size() const
Definition: buffer_view.h:88
daal::services::interface1::BufferView::empty
bool empty() const
Definition: buffer_view.h:97
daal::services::interface1::BufferView::BufferView
BufferView()
Definition: buffer_view.h:59
daal::services::interface1::BufferView
Class that refers to a contiguous sequence of objects, but doesn't control allocated memory buffer an...
Definition: buffer_view.h:53
daal::algorithms::implicit_als::training::offset
Definition: implicit_als_training_types.h:148
daal::Base
Base class for Intel(R) Data Analytics Acceleration Library objects
Definition: base.h:39

For more complete information about compiler optimizations, see our Optimization Notice.