Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef _constructor_h
00027 #define _constructor_h 1
00028
00029 #include <vector>
00030
00031 #ifndef _basetype_h
00032 #include "BaseType.h"
00033 #endif
00034
00035 #define FILE_METHODS 1
00036
00037 namespace libdap
00038 {
00039
00041 class Constructor: public BaseType
00042 {
00043 private:
00044 Constructor();
00045 BaseType *find_hdf4_dimension_attribute_home(AttrTable::entry *source);
00046
00047 protected:
00048 std::vector<BaseType *> _vars;
00049
00050 void _duplicate(const Constructor &s);
00051 #if 0
00052 virtual AttrTable *find_matching_container(AttrTable::entry *source,
00053 BaseType **dest_variable);
00054 #endif
00055 Constructor(const string &n, const Type &t);
00056 Constructor(const string &n, const string &d, const Type &t);
00057
00058 Constructor(const Constructor ©_from);
00059 public:
00060 typedef std::vector<BaseType *>::const_iterator Vars_citer ;
00061 typedef std::vector<BaseType *>::iterator Vars_iter ;
00062 typedef std::vector<BaseType *>::reverse_iterator Vars_riter ;
00063
00064 virtual ~Constructor();
00065
00066 Constructor &operator=(const Constructor &rhs);
00067 #if 0
00068 virtual void transfer_attributes(AttrTable::entry *entry);
00069 #endif
00070 virtual void transfer_attributes(AttrTable *at_container);
00071
00072 Vars_iter var_begin();
00073 Vars_iter var_end();
00074 Vars_riter var_rbegin();
00075 Vars_riter var_rend();
00076 Vars_iter get_vars_iter(int i);
00077 BaseType *get_var_index(int i);
00078
00079 virtual bool is_linear();
00080
00081 virtual void print_decl(ostream &out, string space = " ",
00082 bool print_semi = true,
00083 bool constraint_info = false,
00084 bool constrained = false);
00085
00086 virtual void print_xml(ostream &out, string space = " ",
00087 bool constrained = false);
00088
00089 #if FILE_METHODS
00090 virtual void print_decl(FILE *out, string space = " ",
00091 bool print_semi = true,
00092 bool constraint_info = false,
00093 bool constrained = false);
00094 virtual void print_xml(FILE *out, string space = " ",
00095 bool constrained = false);
00096 #endif
00097
00098 virtual void dump(ostream &strm) const ;
00099 };
00100
00101 }
00102
00103 #endif // _constructor_h