31 #include "DmrppByte.h"
33 #include "DmrppInt8.h"
35 #include "DmrppInt16.h"
36 #include "DmrppUInt16.h"
37 #include "DmrppInt32.h"
38 #include "DmrppUInt32.h"
40 #include "DmrppInt64.h"
41 #include "DmrppUInt64.h"
43 #include "DmrppFloat32.h"
44 #include "DmrppFloat64.h"
49 #include "DmrppD4Enum.h"
51 #include "DmrppD4Opaque.h"
53 #include "DmrppArray.h"
54 #include "DmrppStructure.h"
56 #include "DmrppD4Sequence.h"
57 #include "DmrppD4Group.h"
59 #include "DmrppTypeFactory.h"
64 #define prolog string("DmrppTypeFactory::").append(__func__).append("() - ")
65 #define MODULE "dmrpp"
69 BaseType *DmrppTypeFactory::NewVariable(
Type t,
const string &name)
const
78 return NewUInt8(name);
83 return NewInt16(name);
85 return NewUInt16(name);
87 return NewInt32(name);
89 return NewUInt32(name);
92 return NewInt64(name);
94 return NewUInt64(name);
97 return NewFloat32(name);
99 return NewFloat64(name);
107 return NewEnum(name);
110 return NewOpaque(name);
113 return NewArray(name);
115 case dods_structure_c:
116 return NewStructure(name);
118 case dods_sequence_c:
119 return NewD4Sequence(name);
122 return NewGroup(name);
125 throw BESError(
"Unimplemented type in DAP4.", BES_INTERNAL_ERROR, __FILE__, __LINE__);
130 DmrppTypeFactory::NewByte(
const string &n)
const
132 BESDEBUG(MODULE, prolog <<
"Making a new DmrppByte object named: " << n << endl);
133 return new DmrppByte(n, d_dmz);
137 DmrppTypeFactory::NewChar(
const string &n)
const
139 BESDEBUG(MODULE, prolog <<
"Making a new DmrppByte object named: " << n << endl);
140 Byte *b =
new DmrppByte(n, d_dmz);
141 b->set_type(dods_char_c);
146 DmrppTypeFactory::NewUInt8(
const string &n)
const
148 BESDEBUG(MODULE, prolog <<
"Making a new DmrppUInt8 object named: " << n << endl);
149 Byte *b =
new DmrppByte(n, d_dmz);
150 b->set_type(dods_uint8_c);
155 DmrppTypeFactory::NewInt8(
const string &n)
const
157 BESDEBUG(MODULE, prolog <<
"Making a new DmrppInt8 object named: " << n << endl);
158 return new DmrppInt8(n, d_dmz);
162 DmrppTypeFactory::NewInt16(
const string &n)
const
164 BESDEBUG(MODULE, prolog <<
"Making a new DmrppInt16 object named: " << n << endl);
165 return new DmrppInt16(n, d_dmz);
169 DmrppTypeFactory::NewUInt16(
const string &n)
const
171 BESDEBUG(MODULE, prolog <<
"Making a new DmrppUInt16 object named: " << n << endl);
172 return new DmrppUInt16(n, d_dmz);
176 DmrppTypeFactory::NewInt32(
const string &n)
const
178 BESDEBUG(MODULE, prolog <<
"Making a new DmrppInt32 object named: " << n << endl);
179 return new DmrppInt32(n, d_dmz);
183 DmrppTypeFactory::NewUInt32(
const string &n)
const
185 BESDEBUG(MODULE, prolog <<
"Making a new DmrppUInt32 object named: " << n << endl);
186 return new DmrppUInt32(n, d_dmz);
190 DmrppTypeFactory::NewInt64(
const string &n)
const
192 BESDEBUG(MODULE, prolog <<
"Making a new DmrppInt64 object named: " << n << endl);
193 return new DmrppInt64(n, d_dmz);
197 DmrppTypeFactory::NewUInt64(
const string &n)
const
199 BESDEBUG(MODULE, prolog <<
"Making a new DmrppUInt64 object named: " << n << endl);
200 return new DmrppUInt64(n, d_dmz);
204 DmrppTypeFactory::NewFloat32(
const string &n)
const
206 BESDEBUG(MODULE, prolog <<
"Making a new DmrppFloat32 object named: " << n << endl);
207 return new DmrppFloat32(n, d_dmz);
211 DmrppTypeFactory::NewFloat64(
const string &n)
const
213 BESDEBUG(MODULE, prolog <<
"Making a new DmrppFloat64 object named: " << n << endl);
214 return new DmrppFloat64(n, d_dmz);
218 DmrppTypeFactory::NewStr(
const string &n)
const
220 BESDEBUG(MODULE, prolog <<
"Making a new DmrppStr object named: " << n << endl);
221 return new DmrppStr(n, d_dmz);
225 DmrppTypeFactory::NewUrl(
const string &n)
const
227 return new DmrppUrl(n, d_dmz);
233 DmrppTypeFactory::NewURL(
const string &n)
const
239 DmrppTypeFactory::NewOpaque(
const string &n)
const
245 DmrppTypeFactory::NewEnum(
const string &name,
Type type)
const
247 return new DmrppD4Enum(name, type);
251 DmrppTypeFactory::NewArray(
const string &n, BaseType *v)
const
253 return new DmrppArray(n, v, d_dmz);
257 DmrppTypeFactory::NewStructure(
const string &n)
const
259 return new DmrppStructure(n, d_dmz);
263 DmrppTypeFactory::NewD4Sequence(
const string &n)
const
265 return new DmrppD4Sequence(n, d_dmz);
269 DmrppTypeFactory::NewGroup(
const string &n)
const
271 return new DmrppD4Group(n, d_dmz);
Abstract exception class for the BES with basic string message.