libdap++  Updated for version 3.12.0
D4Dimensions.h
Go to the documentation of this file.
1 /*
2  * D4Dimensions.h
3  *
4  * Created on: Sep 26, 2012
5  * Author: jimg
6  */
7 
8 #ifndef D4DIMENSIONS_H_
9 #define D4DIMENSIONS_H_
10 
11 #include <string>
12 #include <vector>
13 
14 using namespace std;
15 
16 namespace libdap {
17 
27 class D4Dimensions {
28  struct dimension {
29  string name;
30  unsigned long size;
31 
32  dimension(const string &n, const unsigned long s) :
33  name(n), size(s) {}
34  };
35 
36  vector<dimension> d_dims;
37 
38 public:
39  D4Dimensions();
40  virtual ~D4Dimensions();
41 
42  typedef vector<dimension>::iterator D4DimensionsIter;
43 
44  void add_dim(const string &name, const unsigned long size) {
45  d_dims.push_back(dimension(name, size));
46  }
47  void add_dim(const string &name) {
48  d_dims.push_back(dimension(name, 0));
49  }
50  void add_dim(const unsigned long size) {
51  d_dims.push_back(dimension("", size));
52  }
53 
54  string get_dim_name(int i) { return d_dims.at(i).name; }
55  unsigned long get_dim_size(int i) { return d_dims.at(i).size; }
56 
57  D4DimensionsIter maps_begin() { return d_dims.begin(); }
58  D4DimensionsIter maps_end() { return d_dims.end(); }
59  string get_dim_name(D4DimensionsIter i) { return (*i).name; }
60  unsigned long get_dim_size(D4DimensionsIter i) { return (*i).size; }
61 };
62 
63 } /* namespace libdap */
64 #endif /* D4DIMENSIONS_H_ */
vector< dimension >::iterator D4DimensionsIter
Definition: D4Dimensions.h:42
void add_dim(const unsigned long size)
Definition: D4Dimensions.h:50
string get_dim_name(int i)
Definition: D4Dimensions.h:54
string get_dim_name(D4DimensionsIter i)
Definition: D4Dimensions.h:59
void add_dim(const string &name)
Definition: D4Dimensions.h:47
void add_dim(const string &name, const unsigned long size)
Definition: D4Dimensions.h:44
unsigned long get_dim_size(int i)
Definition: D4Dimensions.h:55
D4DimensionsIter maps_end()
Definition: D4Dimensions.h:58
unsigned long get_dim_size(D4DimensionsIter i)
Definition: D4Dimensions.h:60
D4DimensionsIter maps_begin()
Definition: D4Dimensions.h:57