bes Updated for version 3.21.1
The Backend Server (BES) is the lower two tiers of the Hyrax data server
FONcArrayStructure Class Referenceabstract

A array of DAP Structure with file out netcdf information included. More...

#include <FONcArrayStructure.h>

Inheritance diagram for FONcArrayStructure:
Inheritance graph
Collaboration diagram for FONcArrayStructure:
Collaboration graph

Public Member Functions

virtual void clear_embedded ()
 Clears the list of embedded variable names.
 
void convert (vector< string > embed, bool _dap4=true, bool is_dap4_group=false) override
 Creates the FONc objects for each variable of the DAP array of structure.
 
void convert (std::vector< std::string > embed)
 
void convert (std::vector< std::string > embed, bool is_dap4)
 
virtual void convert (std::vector< std::string > embed, bool is_dap4, bool is_dap4_group)
 
void define (int ncid) override
 Define the members of the array of structure in the netcdf file.
 
void dump (ostream &strm) const override
 dumps information about this object for debugging purposes
 
void dump (std::ostream &strm) const override=0
 dump the contents of this object to the specified ostream
 
 FONcArrayStructure (libdap::BaseType *b)
 Constructor for FONcArrayStructure that takes a DAP Array Structure.
 
libdap::DDS * get_dds () const
 
libdap::ConstraintEvaluator * get_eval () const
 
bool get_fdio_flag () const
 
virtual libdap::AttrType getAttrType (nc_type t)
 
virtual D4AttributeType getD4AttrType (nc_type t)
 
virtual bool isNetCDF4 ()
 Returns true if NetCDF4 features will be required.
 
bool isNetCDF4_ENHANCED ()
 
string name () override
 Returns the name of the structure.
 
void set_dds (libdap::DDS *dds)
 
void set_eval (libdap::ConstraintEvaluator *eval)
 
void set_fdio_flag (bool dio_flag_value=true)
 
virtual void set_is_dap4 (bool set_dap4)
 
virtual void setNC4DataModel (const string &nc4_datamodel)
 Identifies the netCDF4 data model (CLASSIC or ENHANCED)
 
virtual void setVersion (const std::string &version)
 Identifies variable with use of NetCDF4 features.
 
virtual nc_type type ()
 Returns the type of data of this variable.
 
virtual void updateAttrType (libdap::AttrTable &attrs, nc_type t)
 
virtual void updateD4AttrType (libdap::D4Attributes *d4_attrs, nc_type t)
 
virtual int varid () const
 
void write (int ncid) override
 write the member variables of the structure to the netcdf file
 
 ~FONcArrayStructure () override
 Destructor that cleans up the array of structure.
 

Protected Attributes

libdap::DDS * d_dds = nullptr
 
bool d_defined = false
 
std::vector< std::string > d_embed
 
libdap::ConstraintEvaluator * d_eval = nullptr
 
bool d_is_dap4 = false
 
bool d_is_dap4_group = false
 
std::string d_nc4_datamodel
 
std::string d_ncVersion
 
std::string d_orig_varname
 
int d_varid = 0
 
std::string d_varname
 
bool fdio_flag = false
 

Detailed Description

A array of DAP Structure with file out netcdf information included.

This class represents an array of DAP Structure with additional information needed to write it out to a netcdf file. Keeps the list of the structure members as a vector of FONcArrayStructureField instances.

Definition at line 47 of file FONcArrayStructure.h.

Constructor & Destructor Documentation

◆ FONcArrayStructure()

FONcArrayStructure::FONcArrayStructure ( libdap::BaseType * b)
explicit

Constructor for FONcArrayStructure that takes a DAP Array Structure.

This constructor takes a DAP BaseType and makes sure that it is a DAP Array Structure instance. If not, it throws an exception

Parameters
bA DAP BaseType that should be an array of Structure
Exceptions
BESInternalErrorif the BaseType is not a an array

Definition at line 41 of file FONcArrayStructure.cc.

◆ ~FONcArrayStructure()

FONcArrayStructure::~FONcArrayStructure ( )
override

Destructor that cleans up the array of structure.

Delete each of the FONcBaseType instances that is a part of this structure.

Definition at line 59 of file FONcArrayStructure.cc.

Member Function Documentation

◆ clear_embedded()

void FONcBaseType::clear_embedded ( )
virtualinherited

Clears the list of embedded variable names.

Definition at line 93 of file FONcBaseType.cc.

◆ convert() [1/4]

void FONcArrayStructure::convert ( vector< string > embed,
bool _dap4 = true,
bool is_dap4_group = false )
override

Creates the FONc objects for each variable of the DAP array of structure.

For each of the variables of the DAP Structure we convert to a similar FONc object. We still follow the current way to map structure to netCDF-3. We must flatten out the structures. To do this, we embed the name of the structure as part of the name of the children variables. For example, if the structure, called s1, contains an array called a1 and an int called i1, then two variables are created in the netcdf file called s1.a1 and s1.i1.

Note
This method only converts the variables that are to be sent. This keeps the convert() and write() methods below from operating on DAP variables that should not be sent.
Parameters
embedThe parent names of this structure.
Exceptions
BESInternalErrorif there is a problem converting this structure

Definition at line 85 of file FONcArrayStructure.cc.

◆ convert() [2/4]

void FONcBaseType::convert ( std::vector< std::string > embed)
inlineinherited

Definition at line 97 of file FONcBaseType.h.

◆ convert() [3/4]

void FONcBaseType::convert ( std::vector< std::string > embed,
bool is_dap4 )
inlineinherited

Definition at line 100 of file FONcBaseType.h.

◆ convert() [4/4]

virtual void FONcBaseType::convert ( std::vector< std::string > embed,
bool is_dap4,
bool is_dap4_group )
virtualinherited

Reimplemented in FONcArray.

◆ define()

void FONcArrayStructure::define ( int ncid)
overridevirtual

Define the members of the array of structure in the netcdf file.

We still follow the current structure implementation to define the members of the structure to include the name of the structure in their name.

Note
This will call the FONcArrayStructureField's define() method for individual member. Because the FONcArrayStructure::convert() method above only builds a FONcArrayStructure for elements of the DAP Structure with send_p true, the code is protected from trying to operate on DAP variables that should not be sent. This is important because those variables likely don't contain any values!
Parameters
ncidThe id of the netcdf file
Exceptions
BESInternalErrorif there is a problem defining the structure

Reimplemented from FONcBaseType.

Definition at line 162 of file FONcArrayStructure.cc.

◆ dump() [1/2]

void FONcArrayStructure::dump ( ostream & strm) const
override

dumps information about this object for debugging purposes

Displays the pointer value of this instance plus instance data, including the members of the structure by calling dump on those FONc objects.

Parameters
strmC++ i/o stream to dump the information to

Definition at line 222 of file FONcArrayStructure.cc.

◆ dump() [2/2]

void FONcBaseType::dump ( std::ostream & strm) const
overridepure virtualinherited

dump the contents of this object to the specified ostream

This method is implemented by all derived classes to dump their contents, in other words, any state they might have, private variables, etc...

The inline function below can be used to dump the contents of an OPeNDAPObj object. For example, the object Animal is derived from BESObj. A user could do the following:

Animal *a = new dog( "Sparky" ) ; cout << a << endl ;

And the dump method for dog could display the name passed into the constructor, the (this) pointer of the object, etc...

Parameters
strmC++ i/o stream to dump the object to

Implements BESObj.

Implemented in FONcArray, and FONcArrayStructureField.

◆ get_dds()

libdap::DDS * FONcBaseType::get_dds ( ) const
inlineinherited

Definition at line 89 of file FONcBaseType.h.

◆ get_eval()

libdap::ConstraintEvaluator * FONcBaseType::get_eval ( ) const
inlineinherited

Definition at line 92 of file FONcBaseType.h.

◆ get_fdio_flag()

bool FONcBaseType::get_fdio_flag ( ) const
inlineinherited

Definition at line 129 of file FONcBaseType.h.

◆ getAttrType()

libdap::AttrType FONcBaseType::getAttrType ( nc_type t)
virtualinherited

Definition at line 163 of file FONcBaseType.cc.

◆ getD4AttrType()

D4AttributeType FONcBaseType::getD4AttrType ( nc_type t)
virtualinherited

Definition at line 211 of file FONcBaseType.cc.

◆ isNetCDF4()

bool FONcBaseType::isNetCDF4 ( )
virtualinherited

Returns true if NetCDF4 features will be required.

Definition at line 118 of file FONcBaseType.cc.

◆ isNetCDF4_ENHANCED()

bool FONcBaseType::isNetCDF4_ENHANCED ( )
inherited

Definition at line 123 of file FONcBaseType.cc.

◆ name()

string FONcArrayStructure::name ( )
overridevirtual

Returns the name of the structure.

Returns
The name of the structure

Implements FONcBaseType.

Definition at line 209 of file FONcArrayStructure.cc.

◆ set_dds()

void FONcBaseType::set_dds ( libdap::DDS * dds)
inlineinherited

Definition at line 90 of file FONcBaseType.h.

◆ set_eval()

void FONcBaseType::set_eval ( libdap::ConstraintEvaluator * eval)
inlineinherited

Definition at line 93 of file FONcBaseType.h.

◆ set_fdio_flag()

void FONcBaseType::set_fdio_flag ( bool dio_flag_value = true)
inlineinherited

Definition at line 130 of file FONcBaseType.h.

◆ set_is_dap4()

virtual void FONcBaseType::set_is_dap4 ( bool set_dap4)
inlinevirtualinherited

Definition at line 121 of file FONcBaseType.h.

◆ setNC4DataModel()

void FONcBaseType::setNC4DataModel ( const string & nc4_datamodel)
virtualinherited

Identifies the netCDF4 data model (CLASSIC or ENHANCED)

Definition at line 109 of file FONcBaseType.cc.

◆ setVersion()

void FONcBaseType::setVersion ( const std::string & version)
virtualinherited

Identifies variable with use of NetCDF4 features.

Definition at line 100 of file FONcBaseType.cc.

◆ type()

nc_type FONcBaseType::type ( )
virtualinherited

Returns the type of data of this variable.

This implementation of the method returns the default type of data. Subclasses of FONcBaseType will return the specific type of data for simple types

Reimplemented in FONcArrayStructureField, FONcByte, FONcDouble, FONcFloat, FONcInt64, FONcInt8, FONcInt, FONcShort, FONcStr, FONcUByte, FONcUInt64, FONcUInt, and FONcUShort.

Definition at line 86 of file FONcBaseType.cc.

◆ updateAttrType()

void FONcBaseType::updateAttrType ( libdap::AttrTable & attrs,
nc_type t )
virtualinherited

Definition at line 144 of file FONcBaseType.cc.

◆ updateD4AttrType()

void FONcBaseType::updateD4AttrType ( libdap::D4Attributes * d4_attrs,
nc_type t )
virtualinherited

Definition at line 128 of file FONcBaseType.cc.

◆ varid()

virtual int FONcBaseType::varid ( ) const
inlinevirtualinherited

Definition at line 113 of file FONcBaseType.h.

◆ write()

void FONcArrayStructure::write ( int ncid)
overridevirtual

write the member variables of the structure to the netcdf file

Parameters
ncidThe id of the netcdf file
Exceptions
BESInternalErrorif there is a problem writing out the members of the structure.

Implements FONcBaseType.

Definition at line 187 of file FONcArrayStructure.cc.

Member Data Documentation

◆ d_dds

libdap::DDS* FONcBaseType::d_dds = nullptr
protectedinherited

Definition at line 76 of file FONcBaseType.h.

◆ d_defined

bool FONcBaseType::d_defined = false
protectedinherited

Definition at line 66 of file FONcBaseType.h.

◆ d_embed

std::vector<std::string> FONcBaseType::d_embed
protectedinherited

Definition at line 65 of file FONcBaseType.h.

◆ d_eval

libdap::ConstraintEvaluator* FONcBaseType::d_eval = nullptr
protectedinherited

Definition at line 77 of file FONcBaseType.h.

◆ d_is_dap4

bool FONcBaseType::d_is_dap4 = false
protectedinherited

Definition at line 71 of file FONcBaseType.h.

◆ d_is_dap4_group

bool FONcBaseType::d_is_dap4_group = false
protectedinherited

Definition at line 74 of file FONcBaseType.h.

◆ d_nc4_datamodel

std::string FONcBaseType::d_nc4_datamodel
protectedinherited

Definition at line 68 of file FONcBaseType.h.

◆ d_ncVersion

std::string FONcBaseType::d_ncVersion
protectedinherited

Definition at line 67 of file FONcBaseType.h.

◆ d_orig_varname

std::string FONcBaseType::d_orig_varname
protectedinherited

Definition at line 64 of file FONcBaseType.h.

◆ d_varid

int FONcBaseType::d_varid = 0
protectedinherited

Definition at line 62 of file FONcBaseType.h.

◆ d_varname

std::string FONcBaseType::d_varname
protectedinherited

Definition at line 63 of file FONcBaseType.h.

◆ fdio_flag

bool FONcBaseType::fdio_flag = false
protectedinherited

Definition at line 82 of file FONcBaseType.h.


The documentation for this class was generated from the following files: