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

csv/modifier.h
1 /* file: modifier.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 #ifndef __DATA_SOURCE_MODIFIERS_CSV_MODIFIER_H__
19 #define __DATA_SOURCE_MODIFIERS_CSV_MODIFIER_H__
20 
21 #include "services/daal_string.h"
22 #include "data_management/data_source/modifiers/modifier.h"
23 
24 namespace daal
25 {
26 namespace data_management
27 {
28 namespace modifiers
29 {
33 namespace csv
34 {
38 namespace interface1
39 {
51 class ConfigIface : public modifiers::ConfigIface
52 {
53 public:
59  virtual features::FeatureType getInputFeatureDetectedType(size_t inputFeatureIndex) const = 0;
60 };
61 
67 class Config : public Base, public ConfigIface { };
68 
73 class ContextIface : public modifiers::ContextIface
74 {
75 public:
80  virtual size_t getNumberOfTokens() const = 0;
81 
87  virtual services::StringView getToken(size_t index) const = 0;
88 };
89 
95 class Context : public Base, public ContextIface
96 {
97 public:
104  template<typename T>
105  T getTokenAs(size_t index) const;
106 };
107 
112 class FeatureModifierIface : public modifiers::FeatureModifierIface<Config, Context> { };
113 typedef services::SharedPtr<FeatureModifierIface> FeatureModifierIfacePtr;
114 
119 class FeatureModifier : public Base, public FeatureModifierIface
120 {
121 public:
126  virtual void initialize(Config &config) DAAL_C11_OVERRIDE { }
127 
132  virtual void finalize(Config &config) DAAL_C11_OVERRIDE { }
133 };
134 typedef services::SharedPtr<FeatureModifier> FeatureModifierPtr;
135 
136 
137 /* Specifications of the Context::getTokenAs method */
138 
139 template<>
140 inline float Context::getTokenAs<float>(size_t index) const
141 {
142  return (float)services::daal_string_to_float(getToken(index).c_str(), 0);
143 }
144 
145 template<>
146 inline double Context::getTokenAs<double>(size_t index) const
147 {
148  return (double)services::daal_string_to_float(getToken(index).c_str(), 0);
149 }
150 
151 template<>
152 inline services::StringView Context::getTokenAs<services::StringView>(size_t index) const
153 {
154  return getToken(index);
155 }
156 
157 template<>
158 inline std::string Context::getTokenAs<std::string>(size_t index) const
159 {
160  services::StringView token = getToken(index);
161  return std::string(token.begin(), token.end());
162 }
163 
165 } // namespace interface1
166 
167 using interface1::Config;
168 using interface1::Context;
169 using interface1::FeatureModifierIface;
170 using interface1::FeatureModifierIfacePtr;
171 using interface1::FeatureModifier;
172 using interface1::FeatureModifierPtr;
173 
174 } // namespace csv
175 } // namespace modifiers
176 } // namespace data_management
177 } // namespace daal
178 
179 #endif
daal::data_management::modifiers::csv::interface1::Context::getTokenAs
T getTokenAs(size_t index) const
daal::data_management::modifiers::csv::interface1::ContextIface::getToken
virtual services::StringView getToken(size_t index) const =0
daal::Base
Base class for Intel(R) Data Analytics Acceleration Library objects
Definition: base.h:41
daal::data_management::modifiers::csv::interface1::ContextIface
Abstract class that defines interface of modifier context.
Definition: csv/modifier.h:73
daal::data_management::modifiers::csv::interface1::FeatureModifier::initialize
virtual void initialize(Config &config) DAAL_C11_OVERRIDE
Definition: csv/modifier.h:126
daal::data_management::modifiers::csv::interface1::FeatureModifier
Base class for feature modifier, intended for inheritance from the user side.
Definition: csv/modifier.h:119
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:95
daal::data_management::modifiers::csv::interface1::ContextIface::getNumberOfTokens
virtual size_t getNumberOfTokens() const =0
daal::data_management::modifiers::csv::interface1::FeatureModifier::finalize
virtual void finalize(Config &config) DAAL_C11_OVERRIDE
Definition: csv/modifier.h:132
daal::data_management::modifiers::csv::interface1::ConfigIface
Abstract class that defines interface of modifier configuration.
Definition: csv/modifier.h:51
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:67
daal::data_management::modifiers::csv::interface1::ConfigIface::getInputFeatureDetectedType
virtual features::FeatureType getInputFeatureDetectedType(size_t inputFeatureIndex) const =0
daal::data_management::modifiers::csv::interface1::FeatureModifierIface
Specialization of modifiers::FeatureModifierIface for CSV feature modifier.
Definition: csv/modifier.h:112

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