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 /
18rasdaman 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
35class r_GMarray;
36class r_Tiling;
37class r_Minterval;
38template <typename T>
39class r_Set;
40
41//@ManMemo: Module: {\bf rasodmg}
42
61{
62public:
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
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
99protected:
101 r_Tiling *til{NULL};
102
105
106 std::string storage_params;
107};
108
109//@ManMemo: Module: {\bf rasodmg }
113extern std::ostream &operator<<(std::ostream &s, const r_Storage_Layout &sl);
114
115#endif
The class represents a generic MDD in the sense that it is independent of the cell base type.
Definition gmarray.hh:66
The spatial domain of an MDD is represented by an object of class r_Minterval.
Definition minterval.hh:226
The class implements a set container.
Definition set.hh:42
The r_Storage_Layout class is used to express the storage options for r_Marray objects.
Definition storagelayout.hh:61
const char * get_storage_format_params() const
this does not do anything important. please use the database methods for this purpose.
void print_status(std::ostream &s) const
writes the state of the object to the specified stream
r_Storage_Layout(r_Tiling *ts, r_Data_Format init_format=r_Array, const char *formatParams=NULL)
the dataformat is not used. please use the database methods for this purpose.
virtual r_Set< r_GMarray * > decomposeMDD(const r_GMarray *mar) const
Function for decomposing large MDDs into a set of smaller tiles.
virtual r_Storage_Layout * clone() const
virtual ~r_Storage_Layout()
virtual destructor
r_Storage_Layout(const r_Storage_Layout &sl)
Copy constructor.
virtual std::vector< r_Minterval > decomposeMDD(const r_Minterval &domain, const r_Bytes cell_size) const
Function for decomposing large MDDs into a set of smaller tiles.
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(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_Data_Format get_storage_format() const
this does not do anything important. please use the database methods for this purpose.
const r_Tiling * get_tiling() const
r_Tiling * til
Tiling scheme.
Definition storagelayout.hh:101
std::string storage_params
Definition storagelayout.hh:106
virtual bool is_compatible(const r_Minterval &obj_domain, r_Bytes celltypesize) const
The r_Tiling class is used to specify in which way the tiling is done by the system.
Definition tiling.hh:53
size_t r_Bytes
number of bytes in an tile or mdd or type.
Definition mddtypes.hh:43
r_Data_Format
\begin{tabular}{ll} <tt>r_Array</tt> && no compression, row-major memory representation\...
Definition mddtypes.hh:94
@ r_Array
Definition mddtypes.hh:95
std::ostream & operator<<(std::ostream &s, const r_Storage_Layout &sl)
Output stream operator for objects of type const r_Storage_Layout.