bes Updated for version 3.20.13
HDFSP.h
1
2// This file is part of the hdf4 data handler for the OPeNDAP data server.
12// TRMM version 7 Level2
13// TRMM version 7 Level3
23
32
33
34//#include <libdap/InternalErr.h>
35#ifndef _HDFSP_H
36#define _HDFSP_H
37
38#include <iostream>
39#include <sstream>
40#include <string>
41#include <vector>
42#include <map>
43#include <set>
44#include <list>
45#include "mfhdf.h"
46#include "hdf.h"
47
48#include "HDFSPEnumType.h"
49
50#define MAX_FULL_PATH_LEN 1024
51//#define EOS_DATA_PATH "Data Fields"
52//#define EOS_GEO_PATH "Geolocation Fields"
53
54#define _HDF_CHK_TBL_CLASS "_HDF_CHK_TBL_"
55#define CERE_META_NAME "CERES_metadata"
56#define CERE_META_FIELD_NAME "LOCALGRANULEID"
57#define SENSOR_NAME "Sensor Name"
58#define PRO_NAME "Product Name"
59#define CER_AVG_NAME "CER_AVG"
60#define CER_ES4_NAME "CER_ES4"
61#define CER_CDAY_NAME "CER_ISCCP-D2like-Day"
62#define CER_CGEO_NAME "CER_ISCCP-D2like-GEO"
63#define CER_SRB_NAME "CER_SRBAVG3"
64#define CER_SYN_NAME "CER_SYN"
65#define CER_ZAVG_NAME "CER_ZAVG"
66
67
82
83
84
85namespace HDFSP
86{
89 class File;
90 class SD;
91 class VDATA;
92
93 class Exception:public std::exception
94 {
95 public:
96
98 explicit Exception (const std::string & msg)
99 : message (msg)
100 {
101 }
102
104 ~ Exception () throw () override = default;
105
107 const char *what () const throw () override
108 {
109 return this->message.c_str ();
110 }
111
113 virtual void setException (const std::string &exception_message)
114 {
115 this->message = exception_message;
116 }
117
118
119 private:
121 std::string message;
122 };
123
124
128 {
129 public:
130
132 const std::string & getName () const
133 {
134 return this->name;
135 }
136
138 int32 getSize () const
139 {
140 return this->dimsize;
141 }
142
145 int32 getType () const
146 {
147 return this->dimtype;
148 }
149
150 protected:
151 Dimension (const std::string & dim_name, int32 hdf4_dimsize, int32 hdf4_dimtype)
152 : name (dim_name), dimsize (hdf4_dimsize), dimtype (hdf4_dimtype)
153 {
154 }
155
156 private:
157 // dimension name
158 std::string name;
159
160 // dimension size
161 int32 dimsize;
162
164 int32 dimtype;
165
166 friend class SD;
167 friend class File;
168 friend class SDField;
169 };
170
173 {
174 public:
175
177 const std::string & getName () const
178 {
179 return this->name;
180 }
181
183 const std::string & getNewName () const
184 {
185 return this->newname;
186 }
187
189 int32 getType () const
190 {
191 return this->type;
192 }
193
195 int32 getCount () const
196 {
197 return this->count;
198 }
199
201 const std::vector < char >&getValue () const
202 {
203 return this->value;
204 }
205
206 private:
207
209 std::string name;
210
212 std::string newname;
213
215 int32 type;
216
218 int32 count;
219
221 std::vector < char >value;
222
223 friend class SD;
224 friend class VDATA;
225 friend class File;
226 friend class Field;
227 friend class VDField;
228 };
229
235
236 public:
237 AttrContainer() = default;
239
240
242 const std::string & getName () const
243 {
244 return this->name;
245 }
246
249#if 0
250 // const std::string & getNewName () const
251 //{
252 // return this->newname;
253 //}
254#endif
255 const std::vector < Attribute * >&getAttributes () const
256 {
257 return this->attrs;
258 }
259
260 private:
261
262 // The name of this attribute container(an attribute container is a DAP DAS table)
263 std:: string name;
264
265 // The attributes in this attribute container
266 std::vector < Attribute * >attrs;
267 friend class SD;
268 friend class File;
269
270 };
271
272
273 // This field class describes SDS or Vdata fields.
274 class Field
275 {
276 public:
277 Field () = default;
278
279 virtual ~ Field ();
280
282 const std::string & getName () const
283 {
284 return this->name;
285 }
286
288 const std::string & getNewName () const
289 {
290 return this->newname;
291 }
292
294 int32 getRank () const
295 {
296 return this->rank;
297 }
298
300 int32 getType () const
301 {
302 return this->type;
303 }
304
306 const std::vector < Attribute * >&getAttributes () const
307 {
308 return this->attrs;
309 }
310
311
312 protected:
313
315 std::string newname;
316
318 std::string name;
319
321 int32 type = -1;
322
324 int32 rank = -1;
325
327 std::vector < Attribute * >attrs;
328
329 friend class SD;
330 friend class VDATA;
331 friend class File;
332 };
333
335
336 class SDField:public Field
337 {
338 public:
339 SDField () = default;
340 ~SDField () override;
341
342
344 const std::vector < Dimension * >&getCorrectedDimensions () const
345 {
346 return this->correcteddims;
347 }
348
350 std::vector < Dimension * >*getCorrectedDimensionsPtr ()
351 {
352 return &(this->correcteddims);
353 }
354
356 void setCorrectedDimensions (const std::vector < Dimension * > &cor_dims)
357 {
358 correcteddims = cor_dims;
359 }
360
362 std::string getCoordinate () const
363 {
364 return this->coordinates;
365 }
366
368 void setCoordinates (const std::string& coor)
369 {
370 coordinates = coor;
371 }
372
374 std::string getUnits () const
375 {
376 return this->units;
377 }
378
379 // Set the "units" attribute
380 void setUnits (const std::string &uni)
381 {
382 units = uni;
383 }
384
385 // Get the field type
386 int getFieldType () const
387 {
388 return this->fieldtype;
389 }
390
391 // Get the SDS reference number
392 int32 getFieldRef () const
393 {
394 return this->fieldref;
395 }
396
398 const std::vector < Dimension * >&getDimensions () const
399 {
400 return this->dims;
401 }
402
404 const std::vector < AttrContainer * >&getDimInfo () const
405 {
406 return this->dims_info;
407 }
408
409
411 bool IsDimNoScale() const
412 {
413 return is_noscale_dim;
414 }
415
417 bool IsDimScale() const
418 {
419 return is_dim_scale;
420 }
421
423 std::string getSpecFullPath() const
424 {
425 return special_product_fullpath;
426 }
427 private:
428
430 std::vector < Dimension * >dims;
431
435 std::vector < Dimension * >correcteddims;
436
438 std::vector<AttrContainer *>dims_info;
439
440 std::string coordinates;
441
448 int fieldtype = 0;
449
451 std::string units;
452
463 std::string special_product_fullpath;
464
466 int32 fieldref = -1;
467
468#if 0
470 bool condenseddim = false;
471#endif
472
475 bool is_noscale_dim = false;
476
478 bool is_dim_scale = false;
479
482 std::string rootfieldname;
483
484 friend class File;
485 friend class SD;
486 };
487
489 class VDField:public Field
490 {
491 public:
492 VDField () = default;
493 ~VDField () override = default;
494
496 int32 getFieldOrder ()const
497 {
498 return this->order;
499 }
500
502 int32 getFieldsize () const
503 {
504 return this->size;
505 }
506
508 int32 getNumRec () const
509 {
510 return this->numrec;
511 }
512
514 const std::vector < char >&getValue () const
515 {
516 return this->value;
517 }
518
520 void ReadAttributes (int32 vdata_id, int32 fieldindex) throw (Exception);
521
522 private:
523
525 int32 order = -1;
526
528 int32 numrec = -1;
529
531 int32 size = -1;
532
534 std::vector < char >value;
535
536 friend class File;
537 friend class VDATA;
538 };
539
541 class SD
542 {
543 public:
544
546 static SD *Read (int32 sdfileid, int32 hfileid) throw (Exception);
547
549 static SD *Read_Hybrid (int32 sdfileid, int32 hfileid) throw (Exception);
550
552#if 0
554 const std::string & getPath () const
555 {
556 return this->path;
557 }
558#endif
559
561 const std::vector < SDField * >&getFields () const
562 {
563 return this->sdfields;
564 }
565
567 const std::vector < Attribute * >&getAttributes () const
568 {
569 return this->attrs;
570 }
571
573 void obtain_noneos2_sds_path(int32,char*,int32) throw(Exception);
574
575
577 ~SD ();
578
579 SD() = default;
580#if 0
581 SD (int32 sdfileid, int32 hfileid)
582 : sdfd (sdfileid), fileid (hfileid)
583 {
584 }
585#endif
586
587 private:
589 std::vector < SDField * >sdfields;
590
592 std::vector < Attribute * >attrs;
593
595 std::list <int32> sds_ref_list;
596
598 std::map < int32, int >refindexlist;
599
602 std::map < std::string, int32 > n1dimnamelist;
603
605 std::map < std::string, std::string > n2dimnamelist;
606
608 std::set < std::string > fulldimnamelist;
609
613 std::set < std::string > nonmisscvdimnamelist;
614
616 std::map < std::string, std::string > dimcvarlist;
617
618#if 0
619 private:
620
622 int32 sdfd;
624 int32 fileid;
625#endif
626 friend class File;
627 };
628
630 class VDATA
631 {
632 public:
633
634 ~VDATA ();
635
637 static VDATA *Read (int32 vdata_id, int32 obj_ref) throw (Exception);
638
640 void ReadAttributes (int32 vdata_id) throw (Exception);
641
643 const std::string & getNewName () const
644 {
645 return this->newname;
646 }
647
649 const std::string & getName () const
650 {
651 return this->name;
652 }
653
655 const std::vector < VDField * >&getFields () const
656 {
657 return this->vdfields;
658 }
659
661 const std::vector < Attribute * >&getAttributes () const
662 {
663 return this->attrs;
664 }
665
669 bool getTreatAsAttrFlag () const
670 {
671 return TreatAsAttrFlag;
672 }
673
675 int32 getObjRef () const
676 {
677 return vdref;
678 }
679
680#if 0
681 VDATA (int32 vdata_myid, int32 obj_ref)
682 :vdref(obj_ref),vdata_id (vdata_myid) {
683 }
684#endif
685 VDATA (int32 obj_ref)
686 :vdref(obj_ref){
687 }
688
689 private:
691 std::string newname;
692
694 std::string name;
695
697 std::vector < VDField * >vdfields;
698
700 std::vector < Attribute * >attrs;
701
703 int32 vdref;
704
706 bool TreatAsAttrFlag = true;
707
708#if 0
710 int32 vdata_id;
711#endif
712
713 friend class File;
714 };
715
718 class File
719 {
720 public:
721
723 static File *Read (const char *path, int32 sdid,int32 fileid) throw (Exception);
724
727 static File *Read_Hybrid (const char *path, int32 sdid,
728 int32 fileid) throw (Exception);
729
733 void Prepare() throw(Exception);
734
735 bool Check_update_special(const std::string &gridname) throw(Exception);
736
737 void Handle_AIRS_L23() throw(Exception);
738
739
741 SPType getSPType () const
742 {
743 return this->sptype;
744 }
745
747
749 {
750 return this->OTHERHDF_Has_Dim_NoScale_Field;
751 }
752
753 // Destructor
754 ~File ();
755
757 const std::string & getPath () const
758 {
759 return this->path;
760 }
761
763 SD *getSD () const
764 {
765 return this->sd;
766 }
767
769 const std::vector < VDATA * >&getVDATAs () const
770 {
771 return this->vds;
772 }
773
775 const std::vector<AttrContainer *> &getVgattrs () const
776 {
777 return this->vg_attrs;
778 }
779
780
781
782 protected:
783 explicit File (const char *hdf4file_path)
784 : path (hdf4file_path)
785 {
786 }
787
788
789#if 0
791 std::string path;
792
794 SD *sd;
795
797 std::vector < VDATA * >vds;
798
800 std::vector<AttrContainer *>vg_attrs;
801#endif
802
805 void handle_sds_fakedim_names() throw(Exception);
806
809
812
814 void handle_sds_final_dim_names() throw(Exception);
815
817 void handle_sds_names(bool & COARDFLAG , std::string & lldimname1, std::string &lldimname2) throw(Exception);
818
820 void handle_sds_coords(bool & COARDFLAG, std::string &lldimname1,std::string &lldimname2) throw(Exception);
821
823 void handle_vdata() throw(Exception);
824
826 void CheckSDType () throw (Exception);
827
829 void PrepareTRMML2_V6 () throw (Exception);
830
832 void PrepareTRMML3A_V6 () throw (Exception);
833
835 void PrepareTRMML3B_V6 () throw (Exception);
836
838 void PrepareTRMML3C_V6 () throw (Exception);
839
841 void Obtain_TRMML3S_V7_latlon_size(int &latsize, int&lonsize);
842
843 bool Obtain_TRMM_V7_latlon_name(const SDField* sdfield, const int latsize, const int lonsize, std::string& latname, std::string& lonname) throw(Exception);
844
846 void PrepareTRMML2_V7 () throw (Exception);
847
849 void PrepareTRMML3S_V7 () throw (Exception);
850
852 void PrepareTRMML3M_V7 () ;
853
854
857 void PrepareCERAVGSYN () throw (Exception);
858
861 void PrepareCERES4IG () throw (Exception);
862
866 void PrepareCERSAVGID () throw (Exception);
867
869 void PrepareCERZAVG () throw (Exception);
870
872 void PrepareOBPGL2 () throw (Exception);
873
875 void PrepareOBPGL3 () throw (Exception);
876
879 void PrepareMODISARNSS () throw (Exception);
880
882 void PrepareOTHERHDF () throw (Exception);
883
885 void ReadLoneVdatas(File*) throw(Exception);
886
889 void ReadHybridNonLoneVdatas(File*) throw(Exception);
890
892 void ReadVgattrs(int32 vgroup_id, const char *fullpath) throw(Exception);
893
895 void InsertOrigFieldPath_ReadVgVdata () throw (Exception);
896
898 void obtain_path (int32 file_id, int32 sd_id, char *full_path, int32 pobj_ref) throw (Exception);
899
901 void obtain_vdata_path(int32 file_id, char *full_path, int32 pobj_ref) throw (Exception);
902
903
904 private:
905
907 std::string path;
908
910 SD *sd = nullptr;
911
913 std::vector < VDATA * >vds;
914
916 std::vector<AttrContainer *>vg_attrs;
917
918
920 int32 sdfd = -1;
921
923 int32 fileid = -1;
924
926 SPType sptype = OTHERHDF;
927
929 bool OTHERHDF_Has_Dim_NoScale_Field = false;
930
933 bool EOS2Swathflag = false;
934 };
935
936}
937
938
939#endif
const std::vector< Attribute * > & getAttributes() const
Definition: HDFSP.h:255
const std::string & getName() const
Get the name of this attribute container.
Definition: HDFSP.h:242
Representing one attribute in grid or swath.
Definition: HDFSP.h:173
const std::string & getName() const
Get the attribute name.
Definition: HDFSP.h:177
int32 getType() const
Get the attribute datatype.
Definition: HDFSP.h:189
const std::vector< char > & getValue() const
Get the attribute value.
Definition: HDFSP.h:201
const std::string & getNewName() const
Get the CF attribute name(special characters are replaced by underscores)
Definition: HDFSP.h:183
int32 getCount() const
Get the number of elements of this attribute.
Definition: HDFSP.h:195
const std::string & getName() const
Get dimension name.
Definition: HDFSP.h:132
int32 getSize() const
Get dimension size.
Definition: HDFSP.h:138
int32 getType() const
Definition: HDFSP.h:145
const char * what() const override
Return exception message.
Definition: HDFSP.h:107
Exception(const std::string &msg)
Constructor.
Definition: HDFSP.h:98
virtual void setException(const std::string &exception_message)
Set exception message.
Definition: HDFSP.h:113
const std::vector< Attribute * > & getAttributes() const
Get the attributes of this field.
Definition: HDFSP.h:306
int32 rank
The rank of this field.
Definition: HDFSP.h:324
std::vector< Attribute * > attrs
The attributes of this field.
Definition: HDFSP.h:327
std::string newname
The CF full path(special characters replaced by underscores) of this field.
Definition: HDFSP.h:315
int32 type
The datatype of this field.
Definition: HDFSP.h:321
int32 getType() const
Get the data type of this field.
Definition: HDFSP.h:300
const std::string & getNewName() const
Get the CF name(special characters replaced by underscores) of this field.
Definition: HDFSP.h:288
std::string name
The original name of this field.
Definition: HDFSP.h:318
int32 getRank() const
Get the dimension rank of this field.
Definition: HDFSP.h:294
const std::string & getName() const
Get the name of this field.
Definition: HDFSP.h:282
static File * Read(const char *path, int32 sdid, int32 fileid)
Retrieve SDS and Vdata information from the HDF4 file.
Definition: HDFSP.cc:208
void handle_sds_final_dim_names()
Create the final CF-compliant dimension name list for each field.
Definition: HDFSP.cc:3720
void PrepareTRMML3M_V7()
Special method to prepare TRMM multiple grid Level 3 geolocation fields(latitude,longitude,...
Definition: HDFSP.cc:4785
void handle_sds_coords(bool &COARDFLAG, std::string &lldimname1, std::string &lldimname2)
Create "coordinates", "units" CF attributes.
Definition: HDFSP.cc:3953
void handle_vdata()
Handle Vdata.
Definition: HDFSP.cc:4037
void Prepare()
Definition: HDFSP.cc:4089
const std::vector< VDATA * > & getVDATAs() const
Public interface to Obtain Vdata.
Definition: HDFSP.h:769
const std::vector< AttrContainer * > & getVgattrs() const
Get attributes for all vgroups.
Definition: HDFSP.h:775
void PrepareMODISARNSS()
Definition: HDFSP.cc:6198
void handle_sds_missing_fields()
Add the missing coordinate variables based on the corrected dimension name list.
Definition: HDFSP.cc:3684
void PrepareTRMML3S_V7()
Special method to prepare TRMM single grid Level 3 geolocation fields(latitude,longitude,...
Definition: HDFSP.cc:4449
bool Has_Dim_NoScale_Field() const
This file has a field that is a SDS dimension but no dimension scale.
Definition: HDFSP.h:748
void CheckSDType()
This method will check if the HDF4 file is one of TRMM or OBPG products we supported.
Definition: HDFSP.cc:1283
SD * getSD() const
Public interface to Obtain SD.
Definition: HDFSP.h:763
void ReadVgattrs(int32 vgroup_id, const char *fullpath)
Obtain vgroup attributes.
Definition: HDFSP.cc:2654
void PrepareTRMML2_V7()
Latitude and longitude are stored in different fields. Need to separate.
Definition: HDFSP.cc:4299
void PrepareCERAVGSYN()
Definition: HDFSP.cc:5775
void Obtain_TRMML3S_V7_latlon_size(int &latsize, int &lonsize)
void Obtain_TRMML3S_V7_latlon_size(int &latsize, int&lonsize) throw(Exception);
Definition: HDFSP.cc:4249
void PrepareTRMML3C_V6()
Special method to prepare TRMM Level 3 CSH latitude,longitude and Height information.
Definition: HDFSP.cc:5372
static File * Read_Hybrid(const char *path, int32 sdid, int32 fileid)
Definition: HDFSP.cc:263
void handle_sds_fakedim_names()
Definition: HDFSP.cc:3592
void PrepareOBPGL3()
Special method to prepare OBPG Level 3 latitude and longitude information. The latitude and longitude...
Definition: HDFSP.cc:5616
void ReadHybridNonLoneVdatas(File *)
Definition: HDFSP.cc:564
void obtain_vdata_path(int32 file_id, char *full_path, int32 pobj_ref)
The internal function used to obtain the path for hybrid non-lone vdata.
Definition: HDFSP.cc:3372
void handle_sds_names(bool &COARDFLAG, std::string &lldimname1, std::string &lldimname2)
Create the final CF-compliant field name list.
Definition: HDFSP.cc:3768
SPType getSPType() const
Obtain special HDF4 product type.
Definition: HDFSP.h:741
void PrepareCERES4IG()
Definition: HDFSP.cc:5862
void PrepareOTHERHDF()
We still provide a hook for other HDF data product although no CF compliant is followed.
Definition: HDFSP.cc:6250
void ReadLoneVdatas(File *)
Handle non-attribute lone vdatas.
Definition: HDFSP.cc:329
void PrepareTRMML3A_V6()
Special method to prepare TRMM Level 3A46 latitude and longitude information.
Definition: HDFSP.cc:5202
void PrepareTRMML3B_V6()
Special method to prepare TRMM Level 3B latitude and longitude information.
Definition: HDFSP.cc:5094
void InsertOrigFieldPath_ReadVgVdata()
The full path of SDS and Vdata will be obtained.
Definition: HDFSP.cc:2708
void PrepareCERSAVGID()
Definition: HDFSP.cc:6002
void PrepareOBPGL2()
Special method to prepare OBPG Level 2 latitude and longitude information. The latitude and longitude...
Definition: HDFSP.cc:5531
void create_sds_dim_name_list()
Create the new dimension name set and the dimension name to size map.
Definition: HDFSP.cc:3664
void obtain_path(int32 file_id, int32 sd_id, char *full_path, int32 pobj_ref)
The internal function used by InsertOrigFieldPath_ReadVgVdata.
Definition: HDFSP.cc:3033
void PrepareCERZAVG()
Special method to prepare CERES Zonal Average latitude and longitude information.
Definition: HDFSP.cc:6147
void PrepareTRMML2_V6()
Latitude and longitude are stored in one array(geolocation). Need to separate.
Definition: HDFSP.cc:4937
const std::string & getPath() const
Obtain the path of the file.
Definition: HDFSP.h:757
One instance of this class represents one SDS object.
Definition: HDFSP.h:337
void setCorrectedDimensions(const std::vector< Dimension * > &cor_dims)
Set the list of the corrected dimensions.
Definition: HDFSP.h:356
const std::vector< Dimension * > & getCorrectedDimensions() const
Get the list of the corrected dimensions.
Definition: HDFSP.h:344
std::string getSpecFullPath() const
This function returns the full path of some special products that have a very long path.
Definition: HDFSP.h:423
bool IsDimScale() const
Is this field a dimension scale field?
Definition: HDFSP.h:417
std::vector< Dimension * > * getCorrectedDimensionsPtr()
Get the list of the corrected dimension ptrs.
Definition: HDFSP.h:350
const std::vector< AttrContainer * > & getDimInfo() const
Get the list of OHTERHDF dimension attribute container information.
Definition: HDFSP.h:404
const std::vector< Dimension * > & getDimensions() const
Get the list of dimensions.
Definition: HDFSP.h:398
std::string getCoordinate() const
Get the "coordinates" attribute.
Definition: HDFSP.h:362
std::string getUnits() const
Get the "units" attribute.
Definition: HDFSP.h:374
bool IsDimNoScale() const
Is this field a dimension without dimension scale(or empty[no data]dimension variable)
Definition: HDFSP.h:411
void setCoordinates(const std::string &coor)
Set the coordinate attribute.
Definition: HDFSP.h:368
This class retrieves all SDS objects and SD file attributes.
Definition: HDFSP.h:542
const std::vector< Attribute * > & getAttributes() const
Public interface to obtain the SD(file) attributes.
Definition: HDFSP.h:567
~SD()
Destructor.
Definition: HDFSP.cc:161
static SD * Read_Hybrid(int32 sdfileid, int32 hfileid)
Read the information of all hybrid SDS objects from the HDF4 file.
Definition: HDFSP.cc:1921
const std::vector< SDField * > & getFields() const
Redundant member function.
Definition: HDFSP.h:561
static SD * Read(int32 sdfileid, int32 hfileid)
Read the information of all SDS objects from the HDF4 file.
Definition: HDFSP.cc:1575
void obtain_noneos2_sds_path(int32, char *, int32)
Obtain SDS path, this is like a clone of obtain_path in File class, except the Vdata and some minor p...
Definition: HDFSP.cc:3265
This class retrieves all information of one Vdata.
Definition: HDFSP.h:631
bool getTreatAsAttrFlag() const
Definition: HDFSP.h:669
int32 getObjRef() const
Obtain Vdata reference number, this is necessary for retrieving Vdata information from HDF4.
Definition: HDFSP.h:675
const std::vector< VDField * > & getFields() const
Obtain Vdata fields.
Definition: HDFSP.h:655
const std::string & getNewName() const
Obtain new names(with the path and special characters and name clashing handlings)
Definition: HDFSP.h:643
void ReadAttributes(int32 vdata_id)
Retrieve all attributes of this Vdata.
Definition: HDFSP.cc:2528
const std::string & getName() const
Obtain the original vdata name.
Definition: HDFSP.h:649
static VDATA * Read(int32 vdata_id, int32 obj_ref)
Retrieve all information of this Vdata.
Definition: HDFSP.cc:2346
const std::vector< Attribute * > & getAttributes() const
Obtain Vdata attributes.
Definition: HDFSP.h:661
One instance of this class represents one Vdata field.
Definition: HDFSP.h:490
void ReadAttributes(int32 vdata_id, int32 fieldindex)
Read vdata field attributes.
Definition: HDFSP.cc:2590
int32 getNumRec() const
Get the number of record.
Definition: HDFSP.h:508
const std::vector< char > & getValue() const
Get the vdata field values.
Definition: HDFSP.h:514
int32 getFieldOrder() const
Get the order of this field.
Definition: HDFSP.h:496
int32 getFieldsize() const
Get the field size.
Definition: HDFSP.h:502
Definition: HDFSP.h:86