libdap++  Updated for version 3.8.2
DAS.h
Go to the documentation of this file.
1 
2 // -*- mode: c++; c-basic-offset:4 -*-
3 
4 // This file is part of libdap, A C++ implementation of the OPeNDAP Data
5 // Access Protocol.
6 
7 // Copyright (c) 2002,2003 OPeNDAP, Inc.
8 // Author: James Gallagher <jgallagher@opendap.org>
9 //
10 // This library is free software; you can redistribute it and/or
11 // modify it under the terms of the GNU Lesser General Public
12 // License as published by the Free Software Foundation; either
13 // version 2.1 of the License, or (at your option) any later version.
14 //
15 // This library is distributed in the hope that it will be useful,
16 // but WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 // Lesser General Public License for more details.
19 //
20 // You should have received a copy of the GNU Lesser General Public
21 // License along with this library; if not, write to the Free Software
22 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 //
24 // You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
25 
26 // (c) COPYRIGHT URI/MIT 1994-1999
27 // Please read the full copyright statement in the file COPYRIGHT_URI.
28 //
29 // Authors:
30 // jhrg,jimg James Gallagher <jgallagher@gso.uri.edu>
31 
32 // Using the DASVHMap class, build a parser for the DAS and add functions
33 // that provide access to the variables, their attributes and values.
34 //
35 // jhrg 7/25/94
36 
37 #ifndef _das_h
38 #define _das_h 1
39 
40 
41 #include <cstdio>
42 #include <string>
43 #include <iostream>
44 
45 //#include "Pix.h"
46 
47 #ifndef _attrtable_h
48 #include "AttrTable.h"
49 #endif
50 
51 using std::cout;
52 
53 namespace libdap
54 {
55 
123 class DAS : public DapObj
124 {
125 private:
126  AttrTable *d_container ;
127  string _container_name ;
128  AttrTable d_attrs ;
129 
130 protected:
131  //AttrTable *das_find(string name);
132 
133 public:
134  DAS();
135  //DAS(AttrTable *attr_table, string name);
136 
137  virtual ~DAS();
138 
139  virtual string container_name() ;
140  virtual void container_name( const string &cn ) ;
141  virtual AttrTable *container() ;
142 
150  {
151  if( d_container ) return d_container ;
152  return &d_attrs ;
153  }
154 
155  virtual void erase() ;
156 
157  virtual unsigned int get_size() const ;
158 
161 
162  string get_name(AttrTable::Attr_iter &i);
164 
165  virtual AttrTable *get_table(const string &name);
166 
167  virtual AttrTable *add_table(const string &name, AttrTable *at);
168 
170  virtual void parse(string fname);
171  virtual void parse(int fd);
172  virtual void parse(FILE *in = stdin);
173 
175  virtual void print(FILE *out, bool dereference = false);
176  virtual void print(ostream &out, bool dereference = false);
177 
178  virtual void dump(ostream &strm) const ;
179 };
180 
181 } // namespace libdap
182 
183 #endif // _das_h