OPeNDAP Hyrax Back End Server (BES)  Updated for version 3.8.3
FONcStructure Class Reference

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

#include <FONcStructure.h>

Inheritance diagram for FONcStructure:
Inheritance graph
Collaboration diagram for FONcStructure:
Collaboration graph

Public Member Functions

virtual void clear_embedded ()
 Clears the list of embedded variable names. More...
 
virtual void convert (vector< string > embed)
 Creates the FONc objects for each variable of the structure. More...
 
virtual void define (int ncid)
 Define the members of the structure in the netcdf file. More...
 
virtual void dump (ostream &strm) const
 dumps information about this object for debugging purposes More...
 
 FONcStructure (BaseType *b)
 Constructor for FONcStructure that takes a DAP Structure. More...
 
virtual bool isNetCDF4 ()
 Returns true if NetCDF4 features will be required. More...
 
virtual string name ()
 Returns the name of the structure. More...
 
virtual void setVersion (string version)
 Identifies variable with use of NetCDF4 features. More...
 
virtual nc_type type ()
 Returns the type of data of this variable. More...
 
virtual int varid ()
 
virtual void write (int ncid)
 write the member variables of the structure to the netcdf file More...
 
virtual ~FONcStructure ()
 Destructor that cleans up the structure. More...
 

Protected Attributes

bool _defined
 
vector< string > _embed
 
string _ncVersion
 
string _orig_varname
 
int _varid
 
string _varname
 

Detailed Description

A DAP Structure with file out netcdf information included.

This class represents a DAP Structure with additional information needed to write it out to a netcdf file. Includes a reference to the actual DAP Structure being converted. Keeps the list of converted BaseTypes as FONcBaseType instances.

Definition at line 48 of file FONcStructure.h.

Constructor & Destructor Documentation

FONcStructure::FONcStructure ( BaseType *  b)

Constructor for FONcStructure that takes a DAP Structure.

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

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

Definition at line 47 of file FONcStructure.cc.

FONcStructure::~FONcStructure ( )
virtual

Destructor that cleans up the structure.

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

Definition at line 64 of file FONcStructure.cc.

Member Function Documentation

void FONcBaseType::clear_embedded ( )
virtualinherited

Clears the list of embedded variable names.

Definition at line 95 of file FONcBaseType.cc.

References FONcBaseType::_embed.

Referenced by FONcMap::clear_embedded().

void FONcStructure::convert ( vector< string >  embed)
virtual

Creates the FONc objects for each variable of the structure.

For each of the variables of the DAP Structure we convert to a similar FONc object. Because NetCDF does not support structures, 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.

It only converts the variables that are to be sent

Parameters
embedThe parent names of this structure.
Exceptions
BESInternalErrorif there is a problem converting this structure

Reimplemented from FONcBaseType.

Definition at line 102 of file FONcStructure.cc.

References BESDEBUG, FONcBaseType::convert(), FONcUtils::convert(), and name().

Here is the call graph for this function:

void FONcStructure::define ( int  ncid)
virtual

Define the members of the structure in the netcdf file.

Since netcdf does not support structures, we define the members of the structure to include the name of the structure in their name.

Parameters
ncidThe id of the netcdf file
Exceptions
BESInternalErrorif there is a problem defining the structure

Reimplemented from FONcBaseType.

Definition at line 131 of file FONcStructure.cc.

References FONcBaseType::_defined, FONcBaseType::_varname, BESDEBUG, FONcBaseType::define(), and FONcBaseType::name().

Here is the call graph for this function:

void FONcStructure::dump ( ostream &  strm) const
virtual

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

Implements FONcBaseType.

Definition at line 195 of file FONcStructure.cc.

References FONcBaseType::dump(), BESIndent::Indent(), BESIndent::LMarg(), and BESIndent::UnIndent().

Here is the call graph for this function:

bool FONcBaseType::isNetCDF4 ( )
virtualinherited

Returns true if NetCDF4 features will be required.

Definition at line 112 of file FONcBaseType.cc.

References FONcBaseType::_ncVersion, FONcBaseType::_varname, FONcUtils::handle_error(), RETURNAS_NETCDF, and RETURNAS_NETCDF4.

Referenced by FONcArray::define().

Here is the call graph for this function:

string FONcStructure::name ( )
virtual

Returns the name of the structure.

Returns
The name of the structure

Implements FONcBaseType.

Definition at line 181 of file FONcStructure.cc.

Referenced by convert().

void FONcBaseType::setVersion ( string  version)
virtualinherited

Identifies variable with use of NetCDF4 features.

Definition at line 102 of file FONcBaseType.cc.

References FONcBaseType::_ncVersion, and BESDEBUG.

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 FONcStr, FONcByte, FONcDouble, FONcFloat, FONcInt, and FONcShort.

Definition at line 87 of file FONcBaseType.cc.

Referenced by FONcBaseType::define().

virtual int FONcBaseType::varid ( )
inlinevirtualinherited

Definition at line 70 of file FONcBaseType.h.

void FONcStructure::write ( int  ncid)
virtual

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.

Reimplemented from FONcBaseType.

Definition at line 161 of file FONcStructure.cc.

References FONcBaseType::_varname, BESDEBUG, and FONcBaseType::write().

Here is the call graph for this function:

Member Data Documentation

vector<string> FONcBaseType::_embed
protectedinherited
string FONcBaseType::_ncVersion
protectedinherited

Definition at line 56 of file FONcBaseType.h.

Referenced by FONcBaseType::isNetCDF4(), and FONcBaseType::setVersion().


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