48 #ifndef __ALGORITHM_TYPES_H__ 49 #define __ALGORITHM_TYPES_H__ 51 #include "services/daal_defines.h" 52 #include "data_management/data/data_archive.h" 53 #include "data_management/data/data_serialize.h" 54 #include "data_management/data/data_collection.h" 55 #include "services/error_handling.h" 91 virtual ~Parameter() {}
93 virtual services::Status check()
const {
return services::Status(); }
100 class DAAL_EXPORT Argument
106 Argument() : idx(0) {}
112 Argument(
const size_t n);
114 virtual ~Argument() {};
121 Argument &operator <<(
const data_management::SerializationIfacePtr &val)
133 return _storage->size();
141 Argument(
const Argument& other);
148 const data_management::SerializationIfacePtr &
get(
size_t index)
const;
156 void set(
size_t index,
const data_management::SerializationIfacePtr &value);
162 void setStorage(
const data_management::DataCollectionPtr& storage);
168 static data_management::DataCollectionPtr& getStorage(Argument& a);
174 static const data_management::DataCollectionPtr& getStorage(
const Argument& a);
177 template<
typename Archive,
bool onDeserialize>
178 services::Status serialImpl(Archive *arch)
181 arch->setObj(_storage.get());
183 return services::Status();
188 data_management::DataCollectionPtr _storage;
195 class SerializableArgument :
public data_management::SerializationIface,
public Argument
201 SerializableArgument() {}
207 SerializableArgument(
const size_t n) : Argument(n) {}
209 virtual ~SerializableArgument() {};
217 class Input :
public Argument
229 Input(
const size_t n) : Argument(n) {}
238 virtual services::Status check(
const Parameter *parameter,
int method)
const {
return services::Status(); }
245 Input(
const Input& other) : Argument(other){}
253 class PartialResult :
public SerializableArgument
259 PartialResult() : _initFlag(false) {};
265 PartialResult(
const size_t n) : SerializableArgument(n), _initFlag(false) {}
267 virtual ~PartialResult() {};
272 virtual int getSerializationTag()
const {
return 0; }
278 bool getInitFlag() {
return _initFlag; }
284 void setInitFlag(
bool flag) { _initFlag = flag; }
292 virtual services::Status check(
const Input *input,
const Parameter *parameter,
int method)
const 294 return services::Status();
302 virtual services::Status check(
const Parameter *parameter,
int method)
const {
return services::Status(); }
309 template<
typename Archive,
bool onDeserialize>
310 services::Status serialImpl(Archive *arch)
312 Argument::serialImpl<Archive, onDeserialize>(arch);
314 return services::Status();
316 virtual services::Status serializeImpl(data_management::InputDataArchive *archive)
318 return services::Status();
320 virtual services::Status deserializeImpl(
const data_management::OutputDataArchive *archive)
322 return services::Status();
331 class Result :
public SerializableArgument
343 Result(
const size_t n) : SerializableArgument(n) {}
345 virtual ~Result() {};
350 virtual int getSerializationTag()
const {
return 0; }
358 virtual services::Status check(
const Input *input,
const Parameter *parameter,
int method)
const 360 return services::Status();
369 virtual services::Status check(
const PartialResult *partialResult,
const Parameter *parameter,
int method)
const 371 return services::Status();
377 template<
typename Archive,
bool onDeserialize>
378 services::Status serialImpl(Archive *arch)
380 Argument::serialImpl<Archive, onDeserialize>(arch);
382 return services::Status();
384 virtual services::Status serializeImpl(data_management::InputDataArchive *archive)
386 return services::Status();
388 virtual services::Status deserializeImpl(
const data_management::OutputDataArchive *archive)
390 return services::Status();
398 class DAAL_EXPORT OptionalArgument :
public SerializableArgument
401 DECLARE_SERIALIZABLE_TAG();
404 OptionalArgument() : SerializableArgument(0) {}
410 OptionalArgument(
const size_t n) : SerializableArgument(n) {}
417 const data_management::SerializationIfacePtr &
get(
size_t index)
const {
return SerializableArgument::get(index); }
425 void set(
size_t index,
const data_management::SerializationIfacePtr &value) {
return SerializableArgument::set(index, value); }
429 template<
typename Archive,
bool onDeserialize>
430 services::Status serialImpl(Archive *arch)
432 Argument::serialImpl<Archive, onDeserialize>(arch);
434 return services::Status();
437 services::Status serializeImpl(data_management::InputDataArchive *arch) DAAL_C11_OVERRIDE
439 serialImpl<data_management::InputDataArchive, false>(arch);
441 return services::Status();
444 services::Status deserializeImpl(
const data_management::OutputDataArchive *arch) DAAL_C11_OVERRIDE
446 serialImpl<const data_management::OutputDataArchive, true>(arch);
448 return services::Status();
451 typedef services::SharedPtr<Input> InputPtr;
452 typedef services::SharedPtr<PartialResult> PartialResultPtr;
453 typedef services::SharedPtr<Result> ResultPtr;
454 typedef services::SharedPtr<OptionalArgument> OptionalArgumentPtr;
458 using interface1::Parameter;
459 using interface1::Argument;
460 using interface1::Input;
461 using interface1::InputPtr;
462 using interface1::PartialResult;
463 using interface1::PartialResultPtr;
464 using interface1::Result;
465 using interface1::ResultPtr;
466 using interface1::OptionalArgument;
467 using interface1::OptionalArgumentPtr;
daal::algorithms::interface1::PartialResult::getSerializationTag
virtual int getSerializationTag() const
Definition: algorithm_types.h:272
daal::services::interface1::Status
Class that holds the results of API calls. In case of API routine failure it contains the list of err...
Definition: error_handling.h:491
daal
Definition: algorithm_base_common.h:57
daal::algorithms::interface1::Argument::size
size_t size() const
Definition: algorithm_types.h:131
daal::algorithms::interface1::Result
Base class to represent final results of the computation. Algorithm-specific final results are repres...
Definition: algorithm_types.h:331
daal::algorithms::interface1::PartialResult
Base class to represent partial results of the computation. Algorithm-specific partial results are re...
Definition: algorithm_types.h:253
daal::algorithms::interface1::OptionalArgument
Base class to represent argument with serialization methods
Definition: algorithm_types.h:398
daal::algorithms::interface1::Result::serializeImpl
virtual services::Status serializeImpl(data_management::InputDataArchive *archive)
Definition: algorithm_types.h:384
daal::algorithms::interface1::Result::Result
Result(const size_t n)
Definition: algorithm_types.h:343
daal::algorithms::interface1::OptionalArgument::deserializeImpl
services::Status deserializeImpl(const data_management::OutputDataArchive *arch) DAAL_C11_OVERRIDE
Definition: algorithm_types.h:444
daal::algorithms::interface1::PartialResult::serializeImpl
virtual services::Status serializeImpl(data_management::InputDataArchive *archive)
Definition: algorithm_types.h:316
daal::algorithms::interface1::OptionalArgument::OptionalArgument
OptionalArgument()
Definition: algorithm_types.h:404
daal::algorithms::interface1::Parameter
Base class to represent computation parameters. Algorithm-specific parameters are represented as deri...
Definition: algorithm_types.h:86
daal::algorithms::interface1::Result::check
virtual services::Status check(const Input *input, const Parameter *parameter, int method) const
Definition: algorithm_types.h:358
daal::services::interface1::SharedPtr
Shared pointer that retains shared ownership of an object through a pointer. Several SharedPtr object...
Definition: daal_shared_ptr.h:187
daal::algorithms::interface1::Result::deserializeImpl
virtual services::Status deserializeImpl(const data_management::OutputDataArchive *archive)
Definition: algorithm_types.h:388
daal::algorithms::interface1::OptionalArgument::OptionalArgument
OptionalArgument(const size_t n)
Definition: algorithm_types.h:410
daal::data_management::interface1::OutputDataArchive
Provides methods to restore an object from its serialized counterpart and access the restored object...
Definition: data_archive.h:978
daal::algorithms::interface1::PartialResult::getInitFlag
bool getInitFlag()
Definition: algorithm_types.h:278
daal::algorithms::interface1::Result::Result
Result()
Definition: algorithm_types.h:337
daal::algorithms::interface1::OptionalArgument::serializeImpl
services::Status serializeImpl(data_management::InputDataArchive *arch) DAAL_C11_OVERRIDE
Definition: algorithm_types.h:437
daal::algorithms::interface1::Result::check
virtual services::Status check(const PartialResult *partialResult, const Parameter *parameter, int method) const
Definition: algorithm_types.h:369
daal::algorithms::interface1::Argument::Argument
Argument()
Definition: algorithm_types.h:106
daal::algorithms::interface1::PartialResult::check
virtual services::Status check(const Input *input, const Parameter *parameter, int method) const
Definition: algorithm_types.h:292
daal::algorithms::interface1::SerializableArgument
Base class to represent argument with serialization methods
Definition: algorithm_types.h:195
daal::algorithms::math::abs::value
Definition: abs_types.h:112
daal::algorithms::interface1::PartialResult::PartialResult
PartialResult(const size_t n)
Definition: algorithm_types.h:265
daal::algorithms::interface1::SerializableArgument::SerializableArgument
SerializableArgument()
Definition: algorithm_types.h:201
daal::algorithms::interface1::PartialResult::PartialResult
PartialResult()
Definition: algorithm_types.h:259
daal::algorithms::interface1::Argument
Base class to represent computation input and output arguments.
Definition: algorithm_types.h:100
daal::algorithms::interface1::Argument::get
const data_management::SerializationIfacePtr & get(size_t index) const
daal::algorithms::interface1::SerializableArgument::SerializableArgument
SerializableArgument(const size_t n)
Definition: algorithm_types.h:207
daal::data_management::interface1::SerializationIface
Abstract interface class that defines the interface for serialization and deserialization.
Definition: data_serialize.h:76
daal::algorithms::interface1::PartialResult::check
virtual services::Status check(const Parameter *parameter, int method) const
Definition: algorithm_types.h:302
daal::algorithms::interface1::Argument::set
void set(size_t index, const data_management::SerializationIfacePtr &value)
daal::algorithms::interface1::Result::getSerializationTag
virtual int getSerializationTag() const
Definition: algorithm_types.h:350
daal::algorithms::interface1::PartialResult::setInitFlag
void setInitFlag(bool flag)
Definition: algorithm_types.h:284
daal::algorithms::interface1::PartialResult::deserializeImpl
virtual services::Status deserializeImpl(const data_management::OutputDataArchive *archive)
Definition: algorithm_types.h:320