rasdaman complete source
marraytype.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 /
33 #ifndef _D_MARRAY_TYPE_
34 #define _D_MARRAY_TYPE_
35 
36 #include "raslib/type.hh"
37 
38 class r_Base_Type;
39 class r_Error;
40 
41 //@ManMemo: Module: {\bf raslib}
42 
43 /*@Doc:
44  This class represents the marray type in the ODMG conformant
45  representation of the RasDaMan type system.
46 */
47 
48 
49 class r_Marray_Type : public r_Type
50 {
51 public:
53  r_Marray_Type(const r_Base_Type&);
54 
58  r_Marray_Type(const r_Marray_Type&) throw (r_Error);
59 
63  const r_Marray_Type& operator=(const r_Marray_Type&) throw (r_Error);
64 
65  bool isMarrayType() const;
66 
68  const r_Base_Type& base_type() const;
69 
71  virtual r_Type* clone() const;
72 
74  virtual r_Type::r_Type_Id type_id() const;
75 
77  virtual void convertToLittleEndian(char* cells, r_Area noCells) const;
78 
80  virtual void convertToBigEndian(char* cells, r_Area noCells) const;
81 
83  virtual void print_status(std::ostream& s = std::cout) const;
84 
87 
88 protected:
91  r_Marray_Type();
92 
95 };
96 
97 //@Doc: write the status of a marray type to a stream
98 extern std::ostream &operator<<( std::ostream &str, const r_Marray_Type &type );
99 
100 #endif
101 
Definition: marraytype.hh:49
Definition: raslib/basetype.hh:47
virtual void convertToLittleEndian(char *cells, r_Area noCells) const
converts array of cells from NT byte order to Unix byte order.
Definition: error.hh:88
Definition: raslib/type.hh:56
const r_Marray_Type & operator=(const r_Marray_Type &)
assignment operator if base type is NULL an exception will be raised. this is possible ...
~r_Marray_Type()
destructor
std::ostream & operator<<(std::ostream &str, const r_Marray_Type &type)
virtual void print_status(std::ostream &s=std::cout) const
writes state of object to specified stream
virtual r_Type * clone() const
clone operation
const r_Base_Type & base_type() const
get base type
virtual void convertToBigEndian(char *cells, r_Area noCells) const
converts array of cells from Unix byte order to NT byte order.
r_Base_Type * baseType
base type
Definition: marraytype.hh:94
uint64_t r_Area
Definition: mddtypes.hh:85
r_Type_Id
Definition: raslib/type.hh:61
r_Marray_Type()
default constructor should be used by noone
virtual r_Type::r_Type_Id type_id() const
retrieve id of the type.
bool isMarrayType() const
check, if type is a marray type.