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

csv/modifier.h
1 /* file: modifier.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 #ifndef __DATA_SOURCE_MODIFIERS_CSV_MODIFIER_H__
17 #define __DATA_SOURCE_MODIFIERS_CSV_MODIFIER_H__
18 
19 #include "services/daal_string.h"
20 #include "data_management/data_source/modifiers/modifier.h"
21 
22 namespace daal
23 {
24 namespace data_management
25 {
26 namespace modifiers
27 {
31 namespace csv
32 {
36 namespace interface1
37 {
49 class ConfigIface : public modifiers::ConfigIface
50 {
51 public:
57  virtual features::FeatureType getInputFeatureDetectedType(size_t inputFeatureIndex) const = 0;
58 };
59 
65 class Config : public Base, public ConfigIface { };
66 
71 class ContextIface : public modifiers::ContextIface
72 {
73 public:
78  virtual size_t getNumberOfTokens() const = 0;
79 
85  virtual services::StringView getToken(size_t index) const = 0;
86 };
87 
93 class Context : public Base, public ContextIface
94 {
95 public:
102  template<typename T>
103  T getTokenAs(size_t index) const;
104 };
105 
110 class FeatureModifierIface : public modifiers::FeatureModifierIface<Config, Context> { };
111 typedef services::SharedPtr<FeatureModifierIface> FeatureModifierIfacePtr;
112 
117 class FeatureModifier : public Base, public FeatureModifierIface
118 {
119 public:
124  virtual void initialize(Config &config) DAAL_C11_OVERRIDE { }
125 
130  virtual void finalize(Config &config) DAAL_C11_OVERRIDE { }
131 };
132 typedef services::SharedPtr<FeatureModifier> FeatureModifierPtr;
133 
134 
135 /* Specifications of the Context::getTokenAs method */
136 
137 template<>
138 inline float Context::getTokenAs<float>(size_t index) const
139 {
140  return (float)services::daal_string_to_float(getToken(index).c_str(), 0);
141 }
142 
143 template<>
144 inline double Context::getTokenAs<double>(size_t index) const
145 {
146  return (double)services::daal_string_to_float(getToken(index).c_str(), 0);
147 }
148 
149 template<>
150 inline services::StringView Context::getTokenAs<services::StringView>(size_t index) const
151 {
152  return getToken(index);
153 }
154 
155 template<>
156 inline std::string Context::getTokenAs<std::string>(size_t index) const
157 {
158  services::StringView token = getToken(index);
159  return std::string(token.begin(), token.end());
160 }
161 
163 } // namespace interface1
164 
165 using interface1::Config;
166 using interface1::Context;
167 using interface1::FeatureModifierIface;
168 using interface1::FeatureModifierIfacePtr;
169 using interface1::FeatureModifier;
170 using interface1::FeatureModifierPtr;
171 
172 } // namespace csv
173 } // namespace modifiers
174 } // namespace data_management
175 } // namespace daal
176 
177 #endif
daal::data_management::modifiers::csv::interface1::FeatureModifier::initialize
virtual void initialize(Config &config) DAAL_C11_OVERRIDE
Definition: csv/modifier.h:124
daal
Definition: algorithm_base_common.h:31
daal::data_management::modifiers::csv::interface1::Context
Base class that represents modifier context, object of that class is passed to the modifier as an arg...
Definition: csv/modifier.h:93
daal::data_management::modifiers::csv::interface1::Config
Base class that represents modifier configuration, object of that class is passed to the modifier on ...
Definition: csv/modifier.h:65
daal::data_management::modifiers::csv::interface1::Context::getTokenAs
T getTokenAs(size_t index) const
daal::data_management::modifiers::csv::interface1::ConfigIface::getInputFeatureDetectedType
virtual features::FeatureType getInputFeatureDetectedType(size_t inputFeatureIndex) const =0
daal::data_management::modifiers::csv::interface1::ContextIface
Abstract class that defines interface of modifier context.
Definition: csv/modifier.h:71
daal::data_management::modifiers::csv::interface1::ConfigIface
Abstract class that defines interface of modifier configuration.
Definition: csv/modifier.h:49
daal::data_management::modifiers::csv::interface1::FeatureModifier::finalize
virtual void finalize(Config &config) DAAL_C11_OVERRIDE
Definition: csv/modifier.h:130
daal::data_management::modifiers::csv::interface1::FeatureModifierIface
Specialization of modifiers::FeatureModifierIface for CSV feature modifier.
Definition: csv/modifier.h:110
daal::data_management::modifiers::csv::interface1::ContextIface::getToken
virtual services::StringView getToken(size_t index) const =0
daal::data_management::modifiers::csv::interface1::FeatureModifier
Base class for feature modifier, intended for inheritance from the user side.
Definition: csv/modifier.h:117
daal::data_management::modifiers::csv::interface1::ContextIface::getNumberOfTokens
virtual size_t getNumberOfTokens() const =0
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.