2011-08-18 02:56:14 +08:00
|
|
|
#include "ncOpaqueType.h"
|
|
|
|
#include "ncGroup.h"
|
|
|
|
#include "ncCheck.h"
|
|
|
|
#include "ncException.h"
|
|
|
|
#include <netcdf.h>
|
|
|
|
using namespace std;
|
|
|
|
using namespace netCDF;
|
|
|
|
using namespace netCDF::exceptions;
|
|
|
|
|
|
|
|
// Class represents a netCDF variable.
|
|
|
|
using namespace netCDF;
|
|
|
|
|
|
|
|
// assignment operator
|
|
|
|
NcOpaqueType& NcOpaqueType::operator=(const NcOpaqueType& rhs)
|
|
|
|
{
|
|
|
|
// assign base class parts
|
|
|
|
NcType::operator=(rhs);
|
|
|
|
return *this;
|
|
|
|
}
|
|
|
|
|
|
|
|
// assignment operator
|
|
|
|
NcOpaqueType& NcOpaqueType::operator=(const NcType& rhs)
|
|
|
|
{
|
|
|
|
if (&rhs != this) {
|
|
|
|
// check the rhs is the base of an Opaque type
|
2013-12-17 00:40:06 +08:00
|
|
|
if(getTypeClass() != NC_OPAQUE) throw NcException("The NcType object must be the base of an Opaque type.",__FILE__,__LINE__);
|
2011-08-18 02:56:14 +08:00
|
|
|
// assign base class parts
|
|
|
|
NcType::operator=(rhs);
|
|
|
|
}
|
|
|
|
return *this;
|
|
|
|
}
|
|
|
|
|
|
|
|
// The copy constructor.
|
|
|
|
NcOpaqueType::NcOpaqueType(const NcOpaqueType& rhs):
|
|
|
|
NcType(rhs)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Constructor generates a null object.
|
|
|
|
NcOpaqueType::NcOpaqueType() :
|
|
|
|
NcType() // invoke base class constructor
|
|
|
|
{}
|
|
|
|
|
|
|
|
|
|
|
|
// constructor
|
|
|
|
NcOpaqueType::NcOpaqueType(const NcGroup& grp, const string& name) :
|
|
|
|
NcType(grp,name)
|
|
|
|
{}
|
|
|
|
|
|
|
|
|
|
|
|
// constructor
|
|
|
|
NcOpaqueType::NcOpaqueType(const NcType& ncType) :
|
|
|
|
NcType(ncType)
|
|
|
|
{
|
|
|
|
// check the nctype object is the base of a Opaque type
|
2013-12-17 00:40:06 +08:00
|
|
|
if(getTypeClass() != NC_OPAQUE) throw NcException("The NcType object must be the base of an Opaque type.",__FILE__,__LINE__);
|
2011-08-18 02:56:14 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
// Returns the size of the opaque type in bytes.
|
|
|
|
size_t NcOpaqueType::getTypeSize() const
|
|
|
|
{
|
|
|
|
char* charName;
|
|
|
|
charName=NULL;
|
|
|
|
size_t sizep;
|
|
|
|
ncCheck(nc_inq_opaque(groupId,myId,charName,&sizep),__FILE__,__LINE__);
|
|
|
|
return sizep;
|
|
|
|
}
|