rasdaman complete source
qtmarrayop2.hh
Go to the documentation of this file.
1 #ifndef _QTMARRAYOP2_
2 #define _QTMARRAYOP2_
3 
4 /*
5 * This file is part of rasdaman community.
6 *
7 * Rasdaman community is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * Rasdaman community is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with rasdaman community. If not, see <http://www.gnu.org/licenses/>.
19 *
20 * Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
21 rasdaman GmbH.
22 *
23 * For more information please see <http://www.rasdaman.org>
24 * or contact Peter Baumann via <baumann@rasdaman.com>.
25 */
26 /*************************************************************
27  *
28  *
29  * COMMENTS:
30  *
31  ************************************************************/
32 
33 //@ManMemo: Module: {\bf qlparser}
34 
35 /*@Doc:
36 
37  The class represents the root of a fake marray expression.
38 
39 */
40 
41 #include "raslib/minterval.hh"
42 
43 #ifndef CPPSTDLIB
44 #include <ospace/string.h> // STL<ToolKit>
45 #else
46 #include <string>
47 #endif
48 
49 #include <vector>
50 #include "qlparser/qtoperation.hh"
52 #include "qlparser/qtvariable.hh"
53 #include "qlparser/qtatomicdata.hh"
54 #include "qlparser/qtpointop.hh"
55 #include "qlparser/qtconst.hh"
56 
58 {
59 public:
63  std::string greatIterator;
64 
66  typedef struct
67  {
68  std::string variable;
72 
74  typedef vector<mddIntervalType> mddIntervalListType;
75 
77  QtMarrayOp2( mddIntervalListType* & aList, QtOperation* & cellExp );
78 
80  virtual ~QtMarrayOp2();
81 
83  virtual bool concatenateIntervals();
84  virtual void rewriteVars();
85  inline QtOperation *getInput() const;
87  inline const ParseInfo& getParseInfo();
89  inline void setParseInfo( const ParseInfo &info );
91  inline void setOldMarray( bool value );
92 
93 protected:
96 
97 private:
99  mddIntervalListType iterators;
100 
102  QtOperation *qtOperation;
103 
105  virtual void traverse(QtOperation *&node);
106 
108  bool oldMarray;
109 
110 };
111 
112 #include "qlparser/qtmarrayop2.icc"
113 
114 #endif
115 
pair (Identifier, Interval)
Definition: qtmarrayop2.hh:66
std::string variable
Definition: qtmarrayop2.hh:68
ParseInfo parseInfo
attribute for parser info
Definition: qtmarrayop2.hh:95
void setParseInfo(const ParseInfo &info)
Definition: qtmarrayop2.hh:57
virtual void rewriteVars()
Definition: parseinfo.hh:51
std::string greatIterator
Definition: qtmarrayop2.hh:63
virtual bool concatenateIntervals()
optimizing load access
unsigned int r_Dimension
Definition: mddtypes.hh:118
QtOperation * tree
Definition: qtmarrayop2.hh:69
r_Minterval greatDomain
Definition: qtmarrayop2.hh:62
QtMarrayOp2(mddIntervalListType *&aList, QtOperation *&cellExp)
constructor getting iterator, minterval expression, and cell expression
vector< mddIntervalType > mddIntervalListType
list storing pairs (Identifier, Interval)
Definition: qtmarrayop2.hh:74
ParseInfo parseInfo
Definition: qtmarrayop2.hh:70
virtual ~QtMarrayOp2()
destructor
const ParseInfo & getParseInfo()
r_Dimension greatDimension
variables to pass to old marray
Definition: qtmarrayop2.hh:61
QtOperation * getInput() const
void setOldMarray(bool value)
Definition: qtoperation.hh:57
Definition: minterval.hh:249