C++ API Reference for Intel® Data Analytics Acceleration Library 2018 Update 3

data_block.h
1 /* file: data_block.h */
2 /*******************************************************************************
3 * Copyright 2014-2018 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 the DataBlock type
19 //--
20 */
21 
22 #ifndef __DAAL_DATABLOCK_H__
23 #define __DAAL_DATABLOCK_H__
24 
25 #include "services/base.h"
26 #include "services/daal_shared_ptr.h"
27 
28 namespace daal
29 {
30 namespace data_management
31 {
32 
33 namespace interface1
34 {
44 class DataBlockIface : public Base
45 {
46 public:
47  virtual ~DataBlockIface() {}
52  virtual byte *getPtr() const = 0;
57  virtual services::SharedPtr<byte> getSharedPtr() const = 0;
62  virtual size_t getSize() const = 0;
67  virtual void setPtr(byte *ptr) = 0;
72  virtual void setPtr(const services::SharedPtr<byte> &ptr) = 0;
77  virtual void setSize(size_t size) = 0;
78 };
83 class DAAL_EXPORT DataBlock : public DataBlockIface
84 {
85 public:
89  DataBlock() : _ptr(), _size(0)
90  {}
96  DataBlock(byte * ptr, size_t size) : _ptr(ptr, services::EmptyDeleter()), _size(size)
97  {}
103  DataBlock(const services::SharedPtr<byte> &ptr, size_t size) : _ptr(ptr), _size(size)
104  {}
109  DataBlock(size_t size) : _ptr(), _size(size)
110  {}
115  DataBlock(const DataBlock &block)
116  {
117  _ptr = block._ptr;
118  _size = block._size;
119  }
120 
121  virtual ~DataBlock() {}
122 
123  virtual byte *getPtr() const DAAL_C11_OVERRIDE
124  {
125  return _ptr.get();
126  }
127 
128  virtual services::SharedPtr<byte> getSharedPtr() const DAAL_C11_OVERRIDE
129  {
130  return _ptr;
131  }
132 
133  virtual size_t getSize() const DAAL_C11_OVERRIDE
134  {
135  return _size;
136  }
137 
138  virtual void setPtr(byte *ptr) DAAL_C11_OVERRIDE
139  {
140  _ptr = services::SharedPtr<byte>(ptr, services::EmptyDeleter());
141  }
142 
143  virtual void setPtr(const services::SharedPtr<byte> &ptr) DAAL_C11_OVERRIDE
144  {
145  _ptr = ptr;
146  }
147 
148  virtual void setSize(size_t size) DAAL_C11_OVERRIDE
149  {
150  _size = size;
151  }
152 
153 private:
154  services::SharedPtr<byte> _ptr;
155  size_t _size;
156 };
157 typedef services::SharedPtr<DataBlock> DataBlockPtr;
159 } // namespace interface1
160 using interface1::DataBlock;
161 using interface1::DataBlockPtr;
162 using interface1::DataBlockIface;
163 }
164 }
165 
166 #endif
daal
Definition: algorithm_base_common.h:31
daal::data_management::interface1::DataBlock::getSharedPtr
virtual services::SharedPtr< byte > getSharedPtr() const DAAL_C11_OVERRIDE
Definition: data_block.h:128
daal::data_management::interface1::DataBlock::setSize
virtual void setSize(size_t size) DAAL_C11_OVERRIDE
Definition: data_block.h:148
daal::data_management::interface1::DataBlockIface
Abstract interface class for a data management component responsible for a pointer to a byte array an...
Definition: data_block.h:44
daal::data_management::interface1::DataBlock::getPtr
virtual byte * getPtr() const DAAL_C11_OVERRIDE
Definition: data_block.h:123
daal::data_management::interface1::DataBlock::setPtr
virtual void setPtr(byte *ptr) DAAL_C11_OVERRIDE
Definition: data_block.h:138
daal::data_management::interface1::DataBlock::getSize
virtual size_t getSize() const DAAL_C11_OVERRIDE
Definition: data_block.h:133
daal::data_management::interface1::DataBlockIface::setSize
virtual void setSize(size_t size)=0
daal::data_management::interface1::DataBlockIface::getSize
virtual size_t getSize() const =0
daal::data_management::interface1::DataBlock::DataBlock
DataBlock(const DataBlock &block)
Definition: data_block.h:115
daal::data_management::interface1::DataBlockIface::getPtr
virtual byte * getPtr() const =0
daal::data_management::interface1::DataBlock::DataBlock
DataBlock()
Definition: data_block.h:89
daal::data_management::interface1::DataBlockIface::getSharedPtr
virtual services::SharedPtr< byte > getSharedPtr() const =0
daal::data_management::interface1::DataBlockIface::setPtr
virtual void setPtr(byte *ptr)=0
daal::data_management::interface1::DataBlock::DataBlock
DataBlock(size_t size)
Definition: data_block.h:109
daal::data_management::interface1::DataBlock::DataBlock
DataBlock(byte *ptr, size_t size)
Definition: data_block.h:96
daal::data_management::interface1::DataBlock::setPtr
virtual void setPtr(const services::SharedPtr< byte > &ptr) DAAL_C11_OVERRIDE
Definition: data_block.h:143
daal::data_management::interface1::DataBlock::DataBlock
DataBlock(const services::SharedPtr< byte > &ptr, size_t size)
Definition: data_block.h:103
daal::Base
Base class for Intel(R) Data Analytics Acceleration Library objects
Definition: base.h:39
daal::data_management::interface1::DataBlock
Class that stores a pointer to a byte array and its size. Not responsible for memory management...
Definition: data_block.h:83

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