88 int64_t d_length_ll = -1;
94 char *d_buf =
nullptr;
96 vector<BaseType *> d_compound_buf;
101 unsigned int d_capacity = 0;
102 uint64_t d_capacity_ll = 0;
104 bool d_too_big_for_dap2 =
false;
110 template <
typename T>
void value_worker(T *v)
const;
111 template <
typename T>
void value_ll_worker(T *v)
const;
112 template <
typename T>
void value_worker(vector<unsigned int> *indices, T *b)
const;
113 template <
typename T>
void value_ll_worker(vector<uint64_t> *indices, T *b)
const;
115 template <
typename T>
bool set_value_worker(T *v,
int sz);
116 template <
typename T>
bool set_value_ll_worker(T *v, int64_t sz);
117 template <
typename T>
bool set_value_worker(vector<T> &v,
int sz);
118 template <
typename T>
bool set_value_ll_worker(vector<T> &v, int64_t sz);
120 bool m_is_cardinal_type()
const;
121 int64_t m_create_cardinal_data_buffer_for_type(int64_t num_elements);
122 void m_delete_cardinal_data_buffer();
123 template <
class CardType>
void m_set_cardinal_values_internal(
const CardType* fromArray, int64_t num_elements);
126 void m_duplicate(
const Vector &v);
130 Vector(
const string &n,
const string &d,
BaseType *v,
const Type &t,
bool is_dap4 =
false);
168 return d_compound_buf;
171 virtual BaseType *prototype()
const {
return d_proto; }
195 unsigned int width(
bool constrained =
false)
const override
200 return length() * d_proto->width(constrained);
208 int64_t
width_ll(
bool constrained =
false)
const override
210 return length_ll() * d_proto->width_ll(constrained);
218 int length()
const override {
return d_length; }
226 int64_t
length_ll()
const override {
return d_length_ll; }
244 unsigned int val2buf(
void *val,
bool reuse =
false)
override;
245 unsigned int buf2val(
void **val)
override;
247 uint64_t val2buf_ll(
void *val,
bool reuse =
false);
248 uint64_t buf2val_ll(
void **val);
254 void set_vec_ll(uint64_t i,
BaseType *val);
255 void set_vec_nocopy_ll(uint64_t i,
BaseType * val);
258 void vec_resize_ll(int64_t l);
264 virtual uint64_t get_value_capacity_ll()
const;
266 void set_value_capacity(uint64_t l);
276 virtual bool set_value(dods_byte *val,
int sz);
277 virtual bool set_value(dods_int8 *val,
int sz);
278 virtual bool set_value(dods_int16 *val,
int sz);
279 virtual bool set_value(dods_uint16 *val,
int sz);
280 virtual bool set_value(dods_int32 *val,
int sz);
281 virtual bool set_value(dods_uint32 *val,
int sz);
282 virtual bool set_value(dods_int64 *val,
int sz);
283 virtual bool set_value(dods_uint64 *val,
int sz);
284 virtual bool set_value(dods_float32 *val,
int sz);
285 virtual bool set_value(dods_float64 *val,
int sz);
286 virtual bool set_value(
string *val,
int sz);
289 virtual bool set_value_ll(dods_byte *val, int64_t sz);
290 virtual bool set_value_ll(dods_int8 *val, int64_t sz);
291 virtual bool set_value_ll(dods_int16 *val, int64_t sz);
292 virtual bool set_value_ll(dods_uint16 *val, int64_t sz);
293 virtual bool set_value_ll(dods_int32 *val, int64_t sz);
294 virtual bool set_value_ll(dods_uint32 *val, int64_t sz);
295 virtual bool set_value_ll(dods_int64 *val, int64_t sz);
296 virtual bool set_value_ll(dods_uint64 *val, int64_t sz);
297 virtual bool set_value_ll(dods_float32 *val, int64_t sz);
298 virtual bool set_value_ll(dods_float64 *val, int64_t sz);
299 virtual bool set_value_ll(
string *val, int64_t sz);
301 virtual bool set_value(vector<dods_byte> &val,
int sz);
302 virtual bool set_value(vector<dods_int8> &val,
int sz);
303 virtual bool set_value(vector<dods_int16> &val,
int sz);
304 virtual bool set_value(vector<dods_uint16> &val,
int sz);
305 virtual bool set_value(vector<dods_int32> &val,
int sz);
306 virtual bool set_value(vector<dods_uint32> &val,
int sz);
307 virtual bool set_value(vector<dods_int64> &val,
int sz);
308 virtual bool set_value(vector<dods_uint64> &val,
int sz);
309 virtual bool set_value(vector<dods_float32> &val,
int sz);
310 virtual bool set_value(vector<dods_float64> &val,
int sz);
311 virtual bool set_value(vector<string> &val,
int sz);
313 virtual bool set_value_ll(vector<dods_byte> &val, int64_t sz);
314 virtual bool set_value_ll(vector<dods_int8> &val, int64_t sz);
315 virtual bool set_value_ll(vector<dods_int16> &val, int64_t sz);
316 virtual bool set_value_ll(vector<dods_uint16> &val, int64_t sz);
317 virtual bool set_value_ll(vector<dods_int32> &val, int64_t sz);
318 virtual bool set_value_ll(vector<dods_uint32> &val, int64_t sz);
319 virtual bool set_value_ll(vector<dods_int64> &val, int64_t sz);
320 virtual bool set_value_ll(vector<dods_uint64> &val, int64_t sz);
321 virtual bool set_value_ll(vector<dods_float32> &val, int64_t sz);
322 virtual bool set_value_ll(vector<dods_float64> &val, int64_t sz);
323 virtual bool set_value_ll(vector<string> &val, int64_t sz);
327 virtual void value(dods_byte *b)
const;
328 virtual void value(dods_int8 *b)
const;
329 virtual void value(dods_int16 *b)
const;
330 virtual void value(dods_uint16 *b)
const;
331 virtual void value(dods_int32 *b)
const;
332 virtual void value(dods_uint32 *b)
const;
333 virtual void value(dods_int64 *b)
const;
334 virtual void value(dods_uint64 *b)
const;
335 virtual void value(dods_float32 *b)
const;
336 virtual void value(dods_float64 *b)
const;
337 virtual void value(vector<string> &b)
const;
339 virtual void value(vector<unsigned int> *indices, dods_byte *b)
const;
340 virtual void value(vector<unsigned int> *indices, dods_int8 *b)
const;
341 virtual void value(vector<unsigned int> *indices, dods_int16 *b)
const;
342 virtual void value(vector<unsigned int> *indices, dods_uint16 *b)
const;
343 virtual void value(vector<unsigned int> *indices, dods_int32 *b)
const;
344 virtual void value(vector<unsigned int> *indices, dods_uint32 *b)
const;
345 virtual void value(vector<unsigned int> *indices, dods_int64 *b)
const;
346 virtual void value(vector<unsigned int> *indices, dods_uint64 *b)
const;
347 virtual void value(vector<unsigned int> *indices, dods_float32 *b)
const;
348 virtual void value(vector<unsigned int> *indices, dods_float64 *b)
const;
349 virtual void value(vector<unsigned int> *index, vector<string> &b)
const;
351 virtual void value_ll(vector<uint64_t> *indices, dods_byte *b)
const;
352 virtual void value_ll(vector<uint64_t> *indices, dods_int8 *b)
const;
353 virtual void value_ll(vector<uint64_t> *indices, dods_int16 *b)
const;
354 virtual void value_ll(vector<uint64_t> *indices, dods_uint16 *b)
const;
355 virtual void value_ll(vector<uint64_t> *indices, dods_int32 *b)
const;
356 virtual void value_ll(vector<uint64_t> *indices, dods_uint32 *b)
const;
357 virtual void value_ll(vector<uint64_t> *indices, dods_int64 *b)
const;
358 virtual void value_ll(vector<uint64_t> *indices, dods_uint64 *b)
const;
359 virtual void value_ll(vector<uint64_t> *indices, dods_float32 *b)
const;
360 virtual void value_ll(vector<uint64_t> *indices, dods_float64 *b)
const;
361 virtual void value_ll(vector<uint64_t> *index, vector<string> &b)
const;
364 virtual void *
value();
366 BaseType *
var(
const string &
name =
"",
bool exact_match =
true, btp_stack *s =
nullptr)
override;
370 virtual BaseType *var_ll(uint64_t i);
373 void add_var_nocopy(
BaseType *v,
Part p = nil)
override;
377 bool is_dap4_projected(std::vector<std::string> &projected_dap4_inventory)
override;
379 void dump(ostream &strm)
const override;