bes  Updated for version 3.20.13
Dimension.h
1 // This file is part of the "NcML Module" project, a BES module designed
3 // to allow NcML files to be used to be used as a wrapper to add
4 // AIS to existing datasets of any format.
5 //
6 // Copyright (c) 2009 OPeNDAP, Inc.
7 // Author: Michael Johnson <m.johnson@opendap.org>
8 //
9 // For more information, please also see the main website: http://opendap.org/
10 //
11 // This library is free software; you can redistribute it and/or
12 // modify it under the terms of the GNU Lesser General Public
13 // License as published by the Free Software Foundation; either
14 // version 2.1 of the License, or (at your option) any later version.
15 //
16 // This library is distributed in the hope that it will be useful,
17 // but WITHOUT ANY WARRANTY; without even the implied warranty of
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 // Lesser General Public License for more details.
20 //
21 // You should have received a copy of the GNU Lesser General Public
22 // License along with this library; if not, write to the Free Software
23 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
24 //
25 // Please see the files COPYING and COPYRIGHT for more information on the GLPL.
26 //
27 // You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
29 
30 #ifndef __AGG_UTIL__DIMENSION_H__
31 #define __AGG_UTIL__DIMENSION_H__
32 
33 #include <ostream>
34 #include <string>
35 #include <vector>
36 
37 namespace agg_util {
49 struct Dimension {
50 public:
51  Dimension() = default;
52  Dimension(std::string nameArg, unsigned int sizeArg, bool isSharedArg = false, bool isSizeConstantArg = true);
53  ~Dimension() = default;
54 
56  std::string toString() const;
57 
58  // The name of the dimension (merely mnemonic)
59  std::string name;
60 
61  // The cardinality of the dimension (number of elements)
62  unsigned int size {0};
63 
64  // Whether the dimension in considered as shared across objects
65  bool isShared {false};
66 
67  // whether the size is allowed to change or not, important for joinExisting, e.g.
68  bool isSizeConstant {false};
69 };
70 
72 std::ostream& operator<<(std::ostream& os, const Dimension& dim);
73 
74 /* Read back in */
75 std::istream& operator>>(std::istream& is, Dimension& dim);
76 }
77 
78 #endif /* __AGG_UTIL__DIMENSION_H__ */
Helper class for temporarily hijacking an existing dhi to load a DDX response for one particular file...
std::ostream & operator<<(std::ostream &os, const Dimension &dim)
Definition: Dimension.cc:52
std::string toString() const
Definition: Dimension.cc:45