Flow123d  jenkins-Flow123d-linux-release-multijob-282
storage_transpose.hh
Go to the documentation of this file.
1 /*
2  * storage_modifier.hh
3  *
4  * Created on: Feb 13, 2014
5  * Author: jb
6  */
7 
8 #ifndef STORAGE_TRANSPOSE_HH_
9 #define STORAGE_TRANSPOSE_HH_
10 
11 #include "input/storage.hh"
12 #include "input/type_base.hh"
13 #include "input/type_record.hh"
14 
15 namespace Input {
16 
18 public:
19  /**
20  * Constructor
21  */
22  StorageTranspose(const Type::TypeBase *target_type, const Type::TypeBase *source_type,
23  StorageBase const *source_storage, unsigned int vec_size);
24 
25  StorageBase *get_item(unsigned int index);
26 
27 private:
28  StorageBase * modify_storage(const Type::TypeBase *target_type, const Type::TypeBase *source_type,
29  StorageBase const *source_storage, unsigned int index);
30 
31  StorageBase * modify_storage(const Type::TypeBase *target_type, const Type::Record *source_type,
32  StorageBase const *source_storage, unsigned int index);
33  StorageBase * modify_storage(const Type::TypeBase *target_type, const Type::AbstractRecord *source_type,
34  StorageBase const *source_storage, unsigned int index);
35  StorageBase * modify_storage(const Type::TypeBase *target_type, const Type::Array *source_type,
36  StorageBase const *source_storage, unsigned int index);
37 
41  unsigned int vec_size_;
42 };
43 
44 
45 } /* namespace Input */
46 
47 #endif /* STORAGE_TRANSPOSE_HH_ */
StorageBase * modify_storage(const Type::TypeBase *target_type, const Type::TypeBase *source_type, StorageBase const *source_storage, unsigned int index)
Base of classes for declaring structure of the input data.
Definition: type_base.hh:63
Base class for nodes of a data storage tree.
Definition: storage.hh:57
const StorageBase * source_storage_
StorageTranspose(const Type::TypeBase *target_type, const Type::TypeBase *source_type, StorageBase const *source_storage, unsigned int vec_size)
Class for declaration of inputs sequences.
Definition: type_base.hh:239
const Type::TypeBase * source_type_
const Type::TypeBase * target_type_
Class for declaration of polymorphic Record.
Definition: type_record.hh:487
StorageBase * get_item(unsigned int index)
Record type proxy class.
Definition: type_record.hh:169