C++ API Reference for Intel® Data Analytics Acceleration Library 2020 Update 1

data_block.h
1 /* file: data_block.h */
2 /*******************************************************************************
3 * Copyright 2014-2020 Intel Corporation
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *******************************************************************************/
17 
18 /*
19 //++
20 // Implementation of the DataBlock type
21 //--
22 */
23 
24 #ifndef __DAAL_DATABLOCK_H__
25 #define __DAAL_DATABLOCK_H__
26 
27 #include "services/base.h"
28 #include "services/daal_shared_ptr.h"
29 
30 namespace daal
31 {
32 namespace data_management
33 {
34 
35 namespace interface1
36 {
46 class DataBlockIface : public Base
47 {
48 public:
49  virtual ~DataBlockIface() {}
54  virtual byte *getPtr() const = 0;
59  virtual services::SharedPtr<byte> getSharedPtr() const = 0;
64  virtual size_t getSize() const = 0;
69  virtual void setPtr(byte *ptr) = 0;
74  virtual void setPtr(const services::SharedPtr<byte> &ptr) = 0;
79  virtual void setSize(size_t size) = 0;
80 };
85 class DAAL_EXPORT DataBlock : public DataBlockIface
86 {
87 public:
91  DataBlock() : _ptr(), _size(0)
92  {}
98  DataBlock(byte * ptr, size_t size) : _ptr(ptr, services::EmptyDeleter()), _size(size)
99  {}
105  DataBlock(const services::SharedPtr<byte> &ptr, size_t size) : _ptr(ptr), _size(size)
106  {}
111  DataBlock(size_t size) : _ptr(), _size(size)
112  {}
117  DataBlock(const DataBlock &block)
118  {
119  _ptr = block._ptr;
120  _size = block._size;
121  }
122 
123  virtual ~DataBlock() {}
124 
125  virtual byte *getPtr() const DAAL_C11_OVERRIDE
126  {
127  return _ptr.get();
128  }
129 
130  virtual services::SharedPtr<byte> getSharedPtr() const DAAL_C11_OVERRIDE
131  {
132  return _ptr;
133  }
134 
135  virtual size_t getSize() const DAAL_C11_OVERRIDE
136  {
137  return _size;
138  }
139 
140  virtual void setPtr(byte *ptr) DAAL_C11_OVERRIDE
141  {
142  _ptr = services::SharedPtr<byte>(ptr, services::EmptyDeleter());
143  }
144 
145  virtual void setPtr(const services::SharedPtr<byte> &ptr) DAAL_C11_OVERRIDE
146  {
147  _ptr = ptr;
148  }
149 
150  virtual void setSize(size_t size) DAAL_C11_OVERRIDE
151  {
152  _size = size;
153  }
154 
155 private:
156  services::SharedPtr<byte> _ptr;
157  size_t _size;
158 };
159 typedef services::SharedPtr<DataBlock> DataBlockPtr;
161 } // namespace interface1
162 using interface1::DataBlock;
163 using interface1::DataBlockPtr;
164 using interface1::DataBlockIface;
165 }
166 }
167 
168 #endif
daal::data_management::interface1::DataBlock::setPtr
virtual void setPtr(byte *ptr) DAAL_C11_OVERRIDE
Definition: data_block.h:140
daal::Base
Base class for Intel(R) Data Analytics Acceleration Library objects
Definition: base.h:41
daal::data_management::interface1::DataBlock::getSharedPtr
virtual services::SharedPtr< byte > getSharedPtr() const DAAL_C11_OVERRIDE
Definition: data_block.h:130
daal::data_management::interface1::DataBlock::getSize
virtual size_t getSize() const DAAL_C11_OVERRIDE
Definition: data_block.h:135
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:117
daal::data_management::interface1::DataBlockIface::setSize
virtual void setSize(size_t size)=0
daal::data_management::interface1::DataBlock::getPtr
virtual byte * getPtr() const DAAL_C11_OVERRIDE
Definition: data_block.h:125
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:85
daal::data_management::interface1::DataBlock::setSize
virtual void setSize(size_t size) DAAL_C11_OVERRIDE
Definition: data_block.h:150
daal::data_management::interface1::DataBlock::DataBlock
DataBlock(size_t size)
Definition: data_block.h:111
daal::data_management::interface1::DataBlockIface::getPtr
virtual byte * getPtr() const =0
daal::data_management::interface1::DataBlockIface::setPtr
virtual void setPtr(byte *ptr)=0
daal::data_management::interface1::DataBlock::DataBlock
DataBlock(byte *ptr, size_t size)
Definition: data_block.h:98
daal::data_management::interface1::DataBlock::DataBlock
DataBlock()
Definition: data_block.h:91
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:46
daal::data_management::interface1::DataBlockIface::getSharedPtr
virtual services::SharedPtr< byte > getSharedPtr() const =0
daal::data_management::interface1::DataBlock::setPtr
virtual void setPtr(const services::SharedPtr< byte > &ptr) DAAL_C11_OVERRIDE
Definition: data_block.h:145
daal::data_management::interface1::DataBlock::DataBlock
DataBlock(const services::SharedPtr< byte > &ptr, size_t size)
Definition: data_block.h:105

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