NetCDF-C++ 4.3.1
netCDF::NcCompoundType Class Reference

Class represents a netCDF compound type. More...

#include "ncCompoundType.h"

Inheritance diagram for netCDF::NcCompoundType:
netCDF::NcType

Public Types

enum  ncType {
  nc_BYTE = NC_BYTE , nc_CHAR = NC_CHAR , nc_SHORT = NC_SHORT , nc_INT = NC_INT ,
  nc_FLOAT = NC_FLOAT , nc_DOUBLE = NC_DOUBLE , nc_UBYTE = NC_UBYTE , nc_USHORT = NC_USHORT ,
  nc_UINT = NC_UINT , nc_INT64 = NC_INT64 , nc_UINT64 = NC_UINT64 , nc_STRING = NC_STRING ,
  nc_VLEN = NC_VLEN , nc_OPAQUE = NC_OPAQUE , nc_ENUM = NC_ENUM , nc_COMPOUND = NC_COMPOUND
}
 List of netCDF types that can be represented. More...
 

Public Member Functions

 NcCompoundType ()
 Constructor generates a null object. More...
 
 NcCompoundType (const NcCompoundType &rhs)
 The copy constructor. More...
 
 NcCompoundType (const NcGroup &grp, const std::string &name)
 Constructor. More...
 
 NcCompoundType (const NcType &ncType)
 Constructor. More...
 
 ~NcCompoundType ()
 destructor More...
 
void addMember (const std::string &memName, const NcType &newMemberType, size_t offset)
 
void addMember (const std::string &memName, const NcType &newMemberType, size_t offset, const std::vector< int > &shape)
 Adds a named array field. More...
 
nc_type getId () const
 The netCDF Id of this type. More...
 
NcType getMember (int memberIndex) const
 Returns a NcType object for a single member. More...
 
size_t getMemberCount () const
 Returns number of members in this NcCompoundType object. More...
 
int getMemberDimCount (int memberIndex) const
 Returns the number of dimensions of a member with the given index. More...
 
int getMemberIndex (const std::string &memberName) const
 Returns index of named member field. More...
 
std::string getMemberName (int memberIndex) const
 Returns name of member field. More...
 
size_t getMemberOffset (const int index) const
 Returns the offset of the member with given index. More...
 
std::vector< int > getMemberShape (int memberIndex) const
 Returns the shape of a given member. More...
 
std::string getName () const
 The name of this type. More...
 
netCDF::NcGroup getParentGroup () const
 Gets parent group. More...
 
size_t getSize () const
 The size in bytes. More...
 
ncType getTypeClass () const
 The type class returned as enumeration type. More...
 
std::string getTypeClassName () const
 Return a string containing the name of the enumerated type. More...
 
bool isNull () const
 Returns true if this object is null (i.e. More...
 
bool operator!= (const NcType &) const
 != operator More...
 
NcCompoundTypeoperator= (const NcCompoundType &rhs)
 assignment operator More...
 
NcCompoundTypeoperator= (const NcType &rhs)
 Assignment operator. More...
 
bool operator== (const NcCompoundType &rhs)
 equivalence operator More...
 
bool operator== (const NcType &) const
 equivalence operator More...
 

Protected Attributes

int g_fileId
 An ncid associated with a particular open file (returned from nc_open). More...
 
int groupId
 the group Id More...
 
nc_type myId
 the type Id More...
 
bool nullObject
 

Detailed Description

Class represents a netCDF compound type.

Definition at line 17 of file ncCompoundType.h.

Member Enumeration Documentation

◆ ncType

enum netCDF::NcType::ncType
inherited

List of netCDF types that can be represented.

The enumeration list contains the complete set of netCDF variable types. In addition, the type NC_TYPE is included. This enables the user to instantiate a netCDF type object without explcitly needing to know it precise type.

Enumerator
nc_BYTE 

signed 1 byte integer

nc_CHAR 

ISO/ASCII character.

nc_SHORT 

signed 2 byte integer

nc_INT 

signed 4 byte integer

nc_FLOAT 

single precision floating point number

nc_DOUBLE 

double precision floating point number

nc_UBYTE 

unsigned 1 byte int

nc_USHORT 

unsigned 2-byte int

nc_UINT 

unsigned 4-byte int

nc_INT64 

signed 8-byte int

nc_UINT64 

unsigned 8-byte int

nc_STRING 

string

nc_VLEN 

"NcVlen type"

nc_OPAQUE 

"NcOpaque type"

nc_ENUM 

"NcEnum type"

nc_COMPOUND 

"NcCompound type"

Definition at line 25 of file ncType.h.

Constructor & Destructor Documentation

◆ NcCompoundType() [1/4]

NcCompoundType::NcCompoundType ( )

Constructor generates a null object.

Definition at line 60 of file ncCompoundType.cpp.

◆ NcCompoundType() [2/4]

netCDF::NcCompoundType::NcCompoundType ( const NcGroup grp,
const std::string &  name 
)

Constructor.

The compound Type must already exist in the netCDF file. New netCDF compound types can be added using NcGroup::addNcCompoundType();

Parameters
grpThe parent group where this type is defined.
nameName of new type.

◆ NcCompoundType() [3/4]

NcCompoundType::NcCompoundType ( const NcType ncType)

Constructor.

Constructs from the base type NcType object. Will throw an exception if the NcType is not the base of a Compound type.

Parameters
ncTypeA Nctype object.

Definition at line 72 of file ncCompoundType.cpp.

◆ NcCompoundType() [4/4]

NcCompoundType::NcCompoundType ( const NcCompoundType rhs)

The copy constructor.

Definition at line 44 of file ncCompoundType.cpp.

◆ ~NcCompoundType()

netCDF::NcCompoundType::~NcCompoundType ( )
inline

destructor

Definition at line 56 of file ncCompoundType.h.

Member Function Documentation

◆ addMember() [1/2]

void netCDF::NcCompoundType::addMember ( const std::string &  memName,
const NcType newMemberType,
size_t  offset 
)
  Adds a named field.
  \param memName       Name of new field.
  \param newMemberType The type of the new member.
  \param offset        Offset of this member in bytes, obtained by a call to offsetof. For example 

the offset of a member "mem4" in structure struct1 is: offsetof(struct1,mem4).

◆ addMember() [2/2]

void netCDF::NcCompoundType::addMember ( const std::string &  memName,
const NcType newMemberType,
size_t  offset,
const std::vector< int > &  shape 
)

Adds a named array field.

Parameters
memNameName of new field.
newMemberTypeThe type of the new member.
offsetOffset of this member in bytes, obtained by a call to offsetof. For example the offset of a member "mem4" in structure struct1 is: offsetof(struct1,mem4).
shapeThe shape of the array field.

◆ getId()

nc_type netCDF::NcType::getId ( ) const
inlineinherited

The netCDF Id of this type.

Definition at line 88 of file ncType.h.

◆ getMember()

NcType NcCompoundType::getMember ( int  memberIndex) const

Returns a NcType object for a single member.

Definition at line 108 of file ncCompoundType.cpp.

◆ getMemberCount()

size_t NcCompoundType::getMemberCount ( ) const

Returns number of members in this NcCompoundType object.

Definition at line 99 of file ncCompoundType.cpp.

◆ getMemberDimCount()

int NcCompoundType::getMemberDimCount ( int  memberIndex) const

Returns the number of dimensions of a member with the given index.

Parameters
Indexof member (numbering starts at zero).
Returns
The number of dimensions of the field. Non-array fields have 0 dimensions.

Definition at line 147 of file ncCompoundType.cpp.

◆ getMemberIndex()

int NcCompoundType::getMemberIndex ( const std::string &  memberName) const

Returns index of named member field.

Definition at line 140 of file ncCompoundType.cpp.

◆ getMemberName()

std::string NcCompoundType::getMemberName ( int  memberIndex) const

Returns name of member field.

Definition at line 132 of file ncCompoundType.cpp.

◆ getMemberOffset()

size_t NcCompoundType::getMemberOffset ( const int  index) const

Returns the offset of the member with given index.

Definition at line 167 of file ncCompoundType.cpp.

◆ getMemberShape()

vector< int > NcCompoundType::getMemberShape ( int  memberIndex) const

Returns the shape of a given member.

Parameters
Indexof member (numbering starts at zero).
Returns
The size of the dimensions of the field. Non-array fields have 0 dimensions.

Definition at line 156 of file ncCompoundType.cpp.

◆ getName()

string NcType::getName ( ) const
inherited

The name of this type.

For atomic types, the CDL type names are returned. These are as follows:

  • NcByte String returned is "byte".
  • NcUbyte String returned is "ubyte".
  • NcChar String returned is "char".
  • NcShort String returned is "short".
  • NcUshort String returned is "ushort".
  • NcInt String returned is "int".
  • NcUint String returned is "uint".
  • NcInt64 String returned is "int64".
  • NcUint64 String returned is "uint64".
  • NcFloat String returned is "float".
  • NcDouble String returned is "double".
  • NcString String returned is "string".

Definition at line 94 of file ncType.cpp.

◆ getParentGroup()

NcGroup NcType::getParentGroup ( ) const
inherited

Gets parent group.

For an atomic type, returns a Null object.

Definition at line 89 of file ncType.cpp.

◆ getSize()

size_t NcType::getSize ( ) const
inherited

The size in bytes.

This function will work on any type, including atomic and any user defined type, whether compound, opaque, enumeration, or variable length array.

Definition at line 108 of file ncType.cpp.

◆ getTypeClass()

NcType::ncType NcType::getTypeClass ( ) const
inherited

The type class returned as enumeration type.

Valid for all types, whether atomic or user-defined. User-defined types are returned as one of the following enumeration types: nc_VLEN, nc_OPAQUE, nc_ENUM, or nc_COMPOUND.

Definition at line 116 of file ncType.cpp.

◆ getTypeClassName()

string NcType::getTypeClassName ( ) const
inherited

Return a string containing the name of the enumerated type.

(ie one of the following strings: "nc_BYTE", "nc_CHAR", "nc_SHORT", "nc_INT", "nc_FLOAT", "nc_DOUBLE", "nc_UBYTE", "nc_USHORT", "nc_UINT", "nc_INT64", "nc_UINT64", "nc_STRING", "nc_VLEN", "nc_OPAQUE", "nc_ENUM", "nc_COMPOUND"

Definition at line 144 of file ncType.cpp.

◆ isNull()

bool netCDF::NcType::isNull ( ) const
inlineinherited

Returns true if this object is null (i.e.

it has no contents); otherwise returns false.

Definition at line 133 of file ncType.h.

◆ operator!=()

bool NcType::operator!= ( const NcType rhs) const
inherited

!= operator

Definition at line 83 of file ncType.cpp.

◆ operator=() [1/2]

NcCompoundType & NcCompoundType::operator= ( const NcCompoundType rhs)

assignment operator

Definition at line 25 of file ncCompoundType.cpp.

◆ operator=() [2/2]

NcCompoundType & NcCompoundType::operator= ( const NcType rhs)

Assignment operator.

This assigns from the base type NcType object. Will throw an exception if the NcType is not the base of a Compound type.

Definition at line 32 of file ncCompoundType.cpp.

◆ operator==() [1/2]

bool NcCompoundType::operator== ( const NcCompoundType rhs)

equivalence operator

Definition at line 51 of file ncCompoundType.cpp.

◆ operator==() [2/2]

bool NcType::operator== ( const NcType rhs) const
inherited

equivalence operator

Definition at line 74 of file ncType.cpp.

Field Documentation

◆ g_fileId

int netCDF::NcType::g_fileId
protectedinherited

An ncid associated with a particular open file (returned from nc_open).

This is required by many of the functions ncType uses, such as nc_inq_type

Definition at line 158 of file ncType.h.

◆ groupId

int netCDF::NcType::groupId
protectedinherited

the group Id

Definition at line 152 of file ncType.h.

◆ myId

nc_type netCDF::NcType::myId
protectedinherited

the type Id

Definition at line 149 of file ncType.h.

◆ nullObject

bool netCDF::NcType::nullObject
protectedinherited

Definition at line 146 of file ncType.h.


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

Return to the Main Unidata NetCDF page.
Generated on Wed Nov 10 2021 15:25:08 for NetCDF-C++. NetCDF is a Unidata library.