ncdf4a13/cxx/ncvalues.h File Reference

#include <iostream>
#include <sstream>
#include <limits.h>
#include "netcdf.h"

Include dependency graph for ncvalues.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  NcValues

Defines

#define NC_UNSPECIFIED   ((nc_type)0)
#define ncBad_ncbyte   ncBad_byte
#define name2(a, b)   a ## b
#define declare(clas, t)   name2(clas,declare)(t)
#define implement(clas, t)   name2(clas,implement)(t)
#define makename2(z, y)   makename2_x(z, y)
#define makename2_x(z, y)   z##y
#define NcVal(TYPE)   makename2(NcValues_,TYPE)
#define NcValuesdeclare(TYPE)
#define NcTypeEnum(TYPE)   makename2(_nc__,TYPE)
#define _nc__ncbyte   ncByte
#define _nc__char   ncChar
#define _nc__short   ncShort
#define _nc__int   ncInt
#define _nc__nclong   ncLong
#define _nc__long   ncLong
#define _nc__float   ncFloat
#define _nc__double   ncDouble
#define NcValuesimplement(TYPE)
#define Ncbytes_for_one_implement(TYPE)
#define as_ncbyte_implement(TYPE)
#define as_char_implement(TYPE)
#define as_short_implement(TYPE)
#define NCINT_MIN   INT_MIN
#define NCINT_MAX   INT_MAX
#define as_int_implement(TYPE)
#define NCLONG_MIN   INT_MIN
#define NCLONG_MAX   INT_MAX
#define as_nclong_implement(TYPE)
#define as_long_implement(TYPE)
#define as_float_implement(TYPE)
#define as_double_implement(TYPE)
#define as_string_implement(TYPE)

Typedefs

typedef unsigned char ncbyte

Enumerations

enum  NcType {
  ncNoType = NC_UNSPECIFIED, ncByte = NC_BYTE, ncChar = NC_CHAR, ncShort = NC_SHORT,
  ncInt = NC_INT, ncLong = NC_LONG, ncFloat = NC_FLOAT, ncDouble = NC_DOUBLE
}

Functions

 declare (NcValues, ncbyte) declare(NcValues
char declare (NcValues, short) declare(NcValues
char int declare (NcValues, nclong) declare(NcValues
char int long declare (NcValues, float) declare(NcValues

Variables

static const ncbyte ncBad_byte = NC_FILL_BYTE
static const char ncBad_char = NC_FILL_CHAR
static const short ncBad_short = NC_FILL_SHORT
static const nclong ncBad_nclong = FILL_LONG
static const int ncBad_int = NC_FILL_INT
static const long ncBad_long = FILL_LONG
static const float ncBad_float = NC_FILL_FLOAT
static const double ncBad_double = NC_FILL_DOUBLE


Define Documentation

#define _nc__char   ncChar
 

Definition at line 85 of file ncvalues.h.

#define _nc__double   ncDouble
 

Definition at line 91 of file ncvalues.h.

#define _nc__float   ncFloat
 

Definition at line 90 of file ncvalues.h.

#define _nc__int   ncInt
 

Definition at line 87 of file ncvalues.h.

#define _nc__long   ncLong
 

Definition at line 89 of file ncvalues.h.

#define _nc__ncbyte   ncByte
 

Definition at line 84 of file ncvalues.h.

#define _nc__nclong   ncLong
 

Definition at line 88 of file ncvalues.h.

#define _nc__short   ncShort
 

Definition at line 86 of file ncvalues.h.

#define as_char_implement TYPE   ) 
 

Value:

char NcVal(TYPE)::as_char( long n ) const                                     \
{                                                                             \
    if (the_values[n] < CHAR_MIN || the_values[n] > CHAR_MAX)                 \
      return ncBad_char;                                                      \
    return (char) the_values[n];                                              \
}

Definition at line 162 of file ncvalues.h.

#define as_double_implement TYPE   ) 
 

Value:

inline double NcVal(TYPE)::as_double( long n ) const                          \
{                                                                             \
    return (double) the_values[n];                                            \
}

Definition at line 212 of file ncvalues.h.

#define as_float_implement TYPE   ) 
 

Value:

inline float NcVal(TYPE)::as_float( long n ) const                            \
{                                                                             \
    return (float) the_values[n];                                             \
}

Definition at line 206 of file ncvalues.h.

#define as_int_implement TYPE   ) 
 

Value:

int NcVal(TYPE)::as_int( long n ) const                               \
{                                                                             \
    if (the_values[n] < NCINT_MIN || the_values[n] > NCINT_MAX)       \
      return ncBad_int;                                               \
    return (int) the_values[n];                                       \
}

Definition at line 180 of file ncvalues.h.

#define as_long_implement TYPE   ) 
 

Value:

long NcVal(TYPE)::as_long( long n ) const                                     \
{                                                                             \
    if (the_values[n] < LONG_MIN || the_values[n] > LONG_MAX)                 \
      return ncBad_long;                                                      \
    return (long) the_values[n];                                              \
}

Definition at line 198 of file ncvalues.h.

#define as_ncbyte_implement TYPE   ) 
 

Value:

ncbyte NcVal(TYPE)::as_ncbyte( long n ) const                                 \
{                                                                             \
    if (the_values[n] < 0 || the_values[n] > UCHAR_MAX)                       \
      return ncBad_byte;                                                      \
    return (ncbyte) the_values[n];                                            \
}

Definition at line 154 of file ncvalues.h.

#define as_nclong_implement TYPE   ) 
 

Value:

nclong NcVal(TYPE)::as_nclong( long n ) const                                 \
{                                                                             \
    if (the_values[n] < NCLONG_MIN || the_values[n] > NCLONG_MAX)             \
      return ncBad_nclong;                                                    \
    return (nclong) the_values[n];                                            \
}

Definition at line 190 of file ncvalues.h.

#define as_short_implement TYPE   ) 
 

Value:

short NcVal(TYPE)::as_short( long n ) const                                   \
{                                                                             \
    if (the_values[n] < SHRT_MIN || the_values[n] > SHRT_MAX)                 \
      return ncBad_short;                                                     \
    return (short) the_values[n];                                             \
}

Definition at line 170 of file ncvalues.h.

#define as_string_implement TYPE   ) 
 

Value:

char* NcVal(TYPE)::as_string( long n ) const                                  \
{                                                                             \
    char* s = new char[32];                                                   \
    std::ostringstream ostr;                                                  \
    ostr << the_values[n];                                            \
    ostr.str().copy(s, std::string::npos);                                               \
    s[ostr.str().length()] = 0;                                                     \
    return s;                                                                 \
}

Definition at line 218 of file ncvalues.h.

#define declare clas,
 )     name2(clas,declare)(t)
 

Definition at line 46 of file ncvalues.h.

#define implement clas,
 )     name2(clas,implement)(t)
 

Definition at line 47 of file ncvalues.h.

#define makename2 z,
 )     makename2_x(z, y)
 

Definition at line 51 of file ncvalues.h.

#define makename2_x z,
 )     z##y
 

Definition at line 52 of file ncvalues.h.

#define name2 a,
 )     a ## b
 

Definition at line 45 of file ncvalues.h.

Referenced by alien_visitor().

#define NC_UNSPECIFIED   ((nc_type)0)
 

Definition at line 20 of file ncvalues.h.

Referenced by v1h_get_NC_attrarray(), v1h_get_NC_dimarray(), v1h_get_NC_vararray(), v1h_put_NC_attrarray(), v1h_put_NC_dimarray(), v1h_put_NC_vararray(), and yyparse().

#define ncBad_ncbyte   ncBad_byte
 

Definition at line 34 of file ncvalues.h.

#define Ncbytes_for_one_implement TYPE   ) 
 

Value:

int NcVal(TYPE)::bytes_for_one( void ) const                                  \
{                                                                             \
    return nctypelen((nc_type) NcTypeEnum(TYPE));                             \
}

Definition at line 148 of file ncvalues.h.

#define NCINT_MAX   INT_MAX
 

Definition at line 179 of file ncvalues.h.

#define NCINT_MIN   INT_MIN
 

Definition at line 178 of file ncvalues.h.

#define NCLONG_MAX   INT_MAX
 

Definition at line 189 of file ncvalues.h.

#define NCLONG_MIN   INT_MIN
 

Definition at line 188 of file ncvalues.h.

#define NcTypeEnum TYPE   )     makename2(_nc__,TYPE)
 

Definition at line 83 of file ncvalues.h.

Referenced by NcVar_get_index().

#define NcVal TYPE   )     makename2(NcValues_,TYPE)
 

Definition at line 54 of file ncvalues.h.

#define NcValuesdeclare TYPE   ) 
 

Value:

class NcVal(TYPE) : public NcValues                                           \
{                                                                             \
  public:                                                                     \
    NcVal(TYPE)( void );                                                      \
    NcVal(TYPE)(long num);                                                    \
    NcVal(TYPE)(long num, const TYPE* vals);                                  \
    NcVal(TYPE)(const NcVal(TYPE)&);                                          \
    virtual NcVal(TYPE)& operator=(const NcVal(TYPE)&);                       \
    virtual ~NcVal(TYPE)( void );                                             \
    virtual void* base( void ) const;                                         \
    virtual int bytes_for_one( void ) const;                                  \
    virtual ncbyte as_ncbyte( long n ) const;                                 \
    virtual char as_char( long n ) const;                                     \
    virtual short as_short( long n ) const;                                   \
    virtual int as_int( long n ) const;                               \
    virtual int as_nclong( long n ) const;                                    \
    virtual long as_long( long n ) const;                                     \
    virtual float as_float( long n ) const;                                   \
    virtual double as_double( long n ) const;                                 \
    virtual char* as_string( long n ) const;                                  \
    virtual int invalid( void ) const;                                        \
  private:                                                                    \
    TYPE* the_values;                                                         \
    std::ostream& print(std::ostream&) const;                                         \
};

Definition at line 56 of file ncvalues.h.

#define NcValuesimplement TYPE   ) 
 

Definition at line 92 of file ncvalues.h.


Typedef Documentation

typedef unsigned char ncbyte
 

Definition at line 18 of file ncvalues.h.


Enumeration Type Documentation

enum NcType
 

Enumerator:
ncNoType 
ncByte 
ncChar 
ncShort 
ncInt 
ncLong 
ncFloat 
ncDouble 

Definition at line 22 of file ncvalues.h.

00023 {
00024   ncNoType = NC_UNSPECIFIED, 
00025   ncByte = NC_BYTE, 
00026   ncChar = NC_CHAR, 
00027   ncShort = NC_SHORT, 
00028   ncInt = NC_INT,
00029   ncLong = NC_LONG,             // deprecated, someday want to use for 64-bit ints
00030   ncFloat = NC_FLOAT, 
00031   ncDouble = NC_DOUBLE
00032 };


Function Documentation

char int long declare NcValues  ,
float 
 

char int declare NcValues  ,
nclong 
 

char declare NcValues  ,
short 
 

declare NcValues  ,
ncbyte 
 


Variable Documentation

const ncbyte ncBad_byte = NC_FILL_BYTE [static]
 

Definition at line 35 of file ncvalues.h.

const char ncBad_char = NC_FILL_CHAR [static]
 

Definition at line 36 of file ncvalues.h.

Referenced by as_char_implement().

const double ncBad_double = NC_FILL_DOUBLE [static]
 

Definition at line 42 of file ncvalues.h.

const float ncBad_float = NC_FILL_FLOAT [static]
 

Definition at line 41 of file ncvalues.h.

const int ncBad_int = NC_FILL_INT [static]
 

Definition at line 39 of file ncvalues.h.

const long ncBad_long = FILL_LONG [static]
 

Definition at line 40 of file ncvalues.h.

const nclong ncBad_nclong = FILL_LONG [static]
 

Definition at line 38 of file ncvalues.h.

const short ncBad_short = NC_FILL_SHORT [static]
 

Definition at line 37 of file ncvalues.h.


Generated on Thu Mar 16 18:10:21 2006 for nco by  doxygen 1.4.4