bes  Updated for version 3.20.6
HDFTypeFactory.h
1 // -*- mode: c++; c-basic-offset:4 -*-
2 
3 // This file is part of nc_handler, a data handler for the OPeNDAP data
4 // server.
5 
6 // Copyright (c) 2002,2003 OPeNDAP, Inc.
7 // Author: James Gallagher <jgallagher@opendap.org>
8 //
9 // This is free software; you can redistribute it and/or modify it under the
10 // terms of the GNU Lesser General Public License as published by the Free
11 // Software Foundation; either version 2.1 of the License, or (at your
12 // option) any later version.
13 //
14 // This software is distributed in the hope that it will be useful, but
15 // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
17 // License for more details.
18 //
19 // You should have received a copy of the GNU Lesser General Public
20 // License along with this software; if not, write to the Free Software
21 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 //
23 // You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
24 
25 #ifndef nc_type_factory_h
26 #define nc_type_factory_h
27 
28 #include <string>
29 
30 using std::string ;
31 
32 #include "BaseTypeFactory.h"
33 
34 using namespace libdap;
35 
36 // Class declarations; Make sure to include the corresponding headers in the
37 // implementation file.
38 
39 class HDFByte;
40 class HDFInt16;
41 class HDFUInt16;
42 class HDFInt32;
43 class HDFUInt32;
44 class HDFFloat32;
45 class HDFFloat64;
46 class HDFStr;
47 class HDFUrl;
48 class HDFArray;
49 class HDFStructure;
50 class HDFSequence;
51 class HDFGrid;
52 
57 class HDFTypeFactory:public BaseTypeFactory {
58 private:
59  string d_filename ;
60  HDFTypeFactory() {}
61 public:
62  explicit HDFTypeFactory( const string &filename ) : d_filename( filename ) {}
63  virtual ~HDFTypeFactory() {}
64 
65  virtual Byte *NewByte(const string & n = "") const;
66  virtual Int16 *NewInt16(const string & n = "") const;
67  virtual UInt16 *NewUInt16(const string & n = "") const;
68  virtual Int32 *NewInt32(const string & n = "") const;
69  virtual UInt32 *NewUInt32(const string & n = "") const;
70  virtual Float32 *NewFloat32(const string & n = "") const;
71  virtual Float64 *NewFloat64(const string & n = "") const;
72 
73  virtual Str *NewStr(const string & n = "") const;
74  virtual Url *NewUrl(const string & n = "") const;
75 
76  virtual Array *NewArray(const string & n = "", BaseType * v = 0) const;
77  virtual Structure *NewStructure(const string & n = "") const;
78  virtual Sequence *NewSequence(const string & n = "") const;
79  virtual Grid *NewGrid(const string & n = "") const;
80 };
81 
82 #endif
83 
HDFGrid
Definition: HDFGrid.h:56
HDFFloat64
Definition: HDFFloat64.h:50
HDFStructure
Definition: HDFStructure.h:52
HDFStr
Definition: HDFStr.h:51
HDFInt16
Definition: HDFInt16.h:37
HDFUInt32
Definition: HDFUInt32.h:50
HDFSequence
Definition: HDFSequence.h:53
HDFFloat32
Definition: HDFFloat32.h:38
HDFArray
Definition: HDFArray.h:55
libdap
Definition: BESDapFunctionResponseCache.h:35
HDFUrl
Definition: HDFUrl.h:50
HDFByte
Definition: HDFByte.h:50
HDFTypeFactory
Definition: HDFTypeFactory.h:57
HDFUInt16
Definition: HDFUInt16.h:38
HDFInt32
Definition: HDFInt32.h:50