libdap++ Updated for version 3.8.2

libdap::BaseTypeFactory Class Reference

#include <BaseTypeFactory.h>

List of all members.

Public Member Functions

 BaseTypeFactory ()
virtual ArrayNewArray (const string &n="", BaseType *v=0) const
virtual ByteNewByte (const string &n="") const
virtual Float32NewFloat32 (const string &n="") const
virtual Float64NewFloat64 (const string &n="") const
virtual GridNewGrid (const string &n="") const
virtual Int16NewInt16 (const string &n="") const
virtual Int32NewInt32 (const string &n="") const
virtual SequenceNewSequence (const string &n="") const
virtual StrNewStr (const string &n="") const
virtual StructureNewStructure (const string &n="") const
virtual UInt16NewUInt16 (const string &n="") const
virtual UInt32NewUInt32 (const string &n="") const
virtual UrlNewUrl (const string &n="") const
virtual ~BaseTypeFactory ()

Detailed Description

A factory to create instances of the leaf nodes of BaseType (Byte, ... Grid). Clients of libdap++ which require special behavior for the types should subclass this factory and provide an implementation which creates instances of those specializations. Make sure to pass a reference to the new factory to DDS's constructor since by default it uses this factory.

To define and use your own factory, first make sure that you are not using the compile time constant 'DEFAULT_BASETYPE_FACTORY.' Then pass a pointer to an instance of your factory to the DDS/DataDDS constructors. When the parser is used to build a DDS from a DAP response, the factory will be used to instantiate the different variable-type classes.

Note:
The easiest way to subclass this is to follow the pattern of using a separate class declaration and implementation. It's possible to use one file to hold both, but that is complicated somewhat because DDS.h, which includes this class, also includes many of the type classes (Array.h, ..., Grid.h) and the order of their inclusion can create compilation problems where the Vector and/or Constructor base classes are not defined. It's easiest to split the declaration and implementation and include forward declarations of the type classes in the declaration (.h) file and then include the type class' headers in the implementation (.cc) file.
Author:
James Gallagher
See also:
DDS

Definition at line 77 of file BaseTypeFactory.h.


Constructor & Destructor Documentation

libdap::BaseTypeFactory::BaseTypeFactory ( ) [inline]

Definition at line 80 of file BaseTypeFactory.h.

virtual libdap::BaseTypeFactory::~BaseTypeFactory ( ) [inline, virtual]

Definition at line 82 of file BaseTypeFactory.h.


Member Function Documentation

Array * libdap::BaseTypeFactory::NewArray ( const string &  n = "",
BaseType v = 0 
) const [virtual]

Definition at line 104 of file BaseTypeFactory.cc.

Byte * libdap::BaseTypeFactory::NewByte ( const string &  n = "") const [virtual]

Definition at line 49 of file BaseTypeFactory.cc.

Float32 * libdap::BaseTypeFactory::NewFloat32 ( const string &  n = "") const [virtual]

Definition at line 80 of file BaseTypeFactory.cc.

Float64 * libdap::BaseTypeFactory::NewFloat64 ( const string &  n = "") const [virtual]

Definition at line 86 of file BaseTypeFactory.cc.

Grid * libdap::BaseTypeFactory::NewGrid ( const string &  n = "") const [virtual]

Definition at line 123 of file BaseTypeFactory.cc.

Int16 * libdap::BaseTypeFactory::NewInt16 ( const string &  n = "") const [virtual]

Definition at line 55 of file BaseTypeFactory.cc.

Int32 * libdap::BaseTypeFactory::NewInt32 ( const string &  n = "") const [virtual]

Definition at line 67 of file BaseTypeFactory.cc.

References DBG.

Sequence * libdap::BaseTypeFactory::NewSequence ( const string &  n = "") const [virtual]

Definition at line 116 of file BaseTypeFactory.cc.

References DBG.

Str * libdap::BaseTypeFactory::NewStr ( const string &  n = "") const [virtual]

Definition at line 92 of file BaseTypeFactory.cc.

Structure * libdap::BaseTypeFactory::NewStructure ( const string &  n = "") const [virtual]

Definition at line 110 of file BaseTypeFactory.cc.

UInt16 * libdap::BaseTypeFactory::NewUInt16 ( const string &  n = "") const [virtual]

Definition at line 61 of file BaseTypeFactory.cc.

UInt32 * libdap::BaseTypeFactory::NewUInt32 ( const string &  n = "") const [virtual]

Definition at line 74 of file BaseTypeFactory.cc.

Url * libdap::BaseTypeFactory::NewUrl ( const string &  n = "") const [virtual]

Definition at line 98 of file BaseTypeFactory.cc.


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