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

engine_family.h
1 /* file: engine_family.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 engine.
19 //--
20 */
21 
22 #ifndef __ENGINE_FAMILY_H__
23 #define __ENGINE_FAMILY_H__
24 
25 #include "algorithms/engines/engine.h"
26 
27 namespace daal
28 {
29 namespace algorithms
30 {
31 namespace engines
32 {
37 namespace interface1
38 {
43 class DAAL_EXPORT FamilyBatchBase : public engines::BatchBase
44 {
45 public:
46  typedef engines::BatchBase super;
47 
48  typedef super::InputType InputType;
49  typedef super::ResultType ResultType;
50 
51  FamilyBatchBase();
52  virtual ~FamilyBatchBase() {}
53 
60  services::Status add(size_t numberOfStreams);
61 
68  services::SharedPtr<FamilyBatchBase> get(size_t i) const;
69 
75  size_t getNumberOfStreams() const;
76 
82  size_t getMaxNumberOfStreams() const;
83 
84 protected:
85  virtual services::Status addImpl(size_t numberOfStreams) { return services::Status(); }
86  virtual services::SharedPtr<FamilyBatchBase> getImpl(size_t i) const { return services::SharedPtr<FamilyBatchBase>(); }
87  virtual size_t getNumberOfStreamsImpl() const { return 0; }
88  virtual size_t getMaxNumberOfStreamsImpl() const { return 0; }
89 
90  FamilyBatchBase(const FamilyBatchBase &other);
91 };
92 typedef services::SharedPtr<FamilyBatchBase> FamilyEnginePtr;
93 
94 } // namespace interface1
95 using interface1::FamilyBatchBase;
96 using interface1::FamilyEnginePtr;
98 } // namespace engines
99 } // namespace algorithms
100 } // namespace daal
101 #endif
daal
Definition: algorithm_base_common.h:31
daal::algorithms::engines::interface1::FamilyBatchBase
Class representing an engine that has collection of independent streams obtained from RNGs from same ...
Definition: engine_family.h:43

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