rasdaman client API  10.6.3
The Array Analytics Engine: Datacubes at Your Fingertips
storagelayout.hh
Go to the documentation of this file.
1 /*
2 * This file is part of rasdaman community.
3 *
4 * Rasdaman community is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * Rasdaman community is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with rasdaman community. If not, see <http://www.gnu.org/licenses/>.
16 *
17 * Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
18 rasdaman GmbH.
19 *
20 * For more information please see <http://www.rasdaman.org>
21 * or contact Peter Baumann via <baumann@rasdaman.com>.
22 */
23 
24 #ifndef _R_STORAGELAYOUT_HH_
25 #define _R_STORAGELAYOUT_HH_
26 
27 #include "raslib/mddtypes.hh"
28 
29 #include <iosfwd>
30 #include <vector>
31 #include <string>
32 
33 // forward declarations
34 class r_Storage_Layout;
35 class r_GMarray;
36 class r_Tiling;
37 class r_Minterval;
38 template <typename T>
39 class r_Set;
40 
41 //@ManMemo: Module: {\bf rasodmg}
42 
61 {
62 public:
64  r_Storage_Layout(r_Data_Format init_format = r_Array, const char *formatParams = NULL);
65 
67  r_Storage_Layout(r_Tiling *ts, r_Data_Format init_format = r_Array, const char *formatParams = NULL);
68 
71 
73  virtual r_Storage_Layout *clone() const;
74 
76  virtual ~r_Storage_Layout();
77 
79  const r_Tiling *get_tiling() const;
80 
83 
85  const char *get_storage_format_params() const;
86 
88  virtual r_Set<r_GMarray *> decomposeMDD(const r_GMarray *mar) const;
89 
91  virtual std::vector<r_Minterval> decomposeMDD(const r_Minterval &domain, const r_Bytes cell_size) const;
92 
94  void print_status(std::ostream &s) const;
95 
97  virtual bool is_compatible(const r_Minterval &obj_domain, r_Bytes celltypesize) const;
98 
99 protected:
101  r_Tiling *til{NULL};
102 
105 
106  std::string storage_params;
107 };
108 
109 //@ManMemo: Module: {\bf rasodmg }
113 extern std::ostream &operator<<(std::ostream &s, const r_Storage_Layout &sl);
114 
115 #endif
r_Storage_Layout::~r_Storage_Layout
virtual ~r_Storage_Layout()
virtual destructor
mddtypes.hh
r_Storage_Layout::storage_format
r_Data_Format storage_format
the dataformat is not used. please use the database methods for this purpose.
Definition: storagelayout.hh:104
r_Storage_Layout::is_compatible
virtual bool is_compatible(const r_Minterval &obj_domain, r_Bytes celltypesize) const
r_Storage_Layout::print_status
void print_status(std::ostream &s) const
writes the state of the object to the specified stream
r_Tiling
The r_Tiling class is used to specify in which way the tiling is done by the system.
Definition: tiling.hh:52
r_Bytes
size_t r_Bytes
number of bytes in an tile or mdd or type.
Definition: mddtypes.hh:43
r_Data_Format
r_Data_Format
\begin{tabular}{ll} <tt>r_Array</tt> && no compression, row-major memory representation\...
Definition: mddtypes.hh:93
r_Array
@ r_Array
Definition: mddtypes.hh:95
r_Set
The class implements a set container.
Definition: oqlquery.hh:31
r_Storage_Layout::get_tiling
const r_Tiling * get_tiling() const
r_Storage_Layout::clone
virtual r_Storage_Layout * clone() const
operator<<
std::ostream & operator<<(std::ostream &s, const r_Storage_Layout &sl)
Output stream operator for objects of type const r_Storage_Layout.
r_Storage_Layout::r_Storage_Layout
r_Storage_Layout(r_Data_Format init_format=r_Array, const char *formatParams=NULL)
the dataformat is not used. please use the database methods for this purpose.
r_GMarray
The class represents a generic MDD in the sense that it is independent of the cell base type.
Definition: gmarray.hh:65
r_Storage_Layout::decomposeMDD
virtual r_Set< r_GMarray * > decomposeMDD(const r_GMarray *mar) const
Function for decomposing large MDDs into a set of smaller tiles.
r_Storage_Layout::til
r_Tiling * til
Tiling scheme.
Definition: storagelayout.hh:101
r_Minterval
The spatial domain of an MDD is represented by an object of class r_Minterval.
Definition: minterval.hh:225
r_Storage_Layout::get_storage_format
r_Data_Format get_storage_format() const
this does not do anything important. please use the database methods for this purpose.
r_Storage_Layout
The r_Storage_Layout class is used to express the storage options for r_Marray objects.
Definition: storagelayout.hh:60
r_Storage_Layout::storage_params
std::string storage_params
Definition: storagelayout.hh:106
r_Storage_Layout::get_storage_format_params
const char * get_storage_format_params() const
this does not do anything important. please use the database methods for this purpose.