bes Updated for version 3.21.1
The Backend Server (BES) is the lower two tiers of the Hyrax data server
|
Base class for NcML element concrete classes. More...
#include <NCMLElement.h>
Classes | |
class | Factory |
Public Member Functions | |
void | addPreDeleteCB (UseCountHitZeroCB *pCB) |
virtual NCMLElement * | clone () const =0 |
virtual int | getRefCount () const |
virtual const std::string & | getTypeName () const =0 |
virtual void | handleBegin ()=0 |
virtual void | handleContent (const std::string &content) |
virtual void | handleEnd ()=0 |
int | line () const |
virtual int | ref () const |
virtual void | removeFromPool () const |
void | removePreDeleteCB (UseCountHitZeroCB *pCB) |
virtual void | setAttributes (const XMLAttributeMap &attrs)=0 |
void | setParser (NCMLParser *p) |
virtual std::string | toString () const =0 |
virtual int | unref () const |
virtual bool | validateAttributes (const XMLAttributeMap &attrs, const std::vector< std::string > &validAttrs, std::vector< std::string > *pInvalidAttrs=0, bool printInvalid=true, bool throwOnError=true) |
Static Public Member Functions | |
static bool | areAllAttributesValid (const XMLAttributeMap &attrMap, const std::vector< std::string > &validAttrs, std::vector< std::string > *pInvalidAttributes=0) |
static bool | isValidAttribute (const std::vector< std::string > &validAttrs, const std::string &attr) |
static std::string | printAttributeIfNotEmpty (const std::string &attrName, const std::string &attrValue) |
Protected Member Functions | |
NCMLElement (const NCMLElement &proto) | |
NCMLElement (NCMLParser *p) | |
Protected Attributes | |
NCMLParser * | _parser |
Base class for NcML element concrete classes.
Base class to define an NcML element for polymorphic dispatch in the NCMLParser. These concrete elements classes will be made friends of the NCMLParser in order to split the monolithic parser into chunks with specific functionality.
New concrete subclasses MUST be entered in the factory or they cannot be created.
We subclass RCObject since we sometimes need to keep elements around longer than just the SAX parser stack and need to keep track of whether other objects need to hang onto strong references to them.
Definition at line 61 of file NCMLElement.h.
|
inherited |
Add uniquely. If it is added agan, the second time is ignored.
|
static |
|
pure virtual |
Make and return a copy of this. Used by the factory from a prototype.
Implemented in ncml_module::AggregationElement, ncml_module::AttributeElement, ncml_module::DimensionElement, ncml_module::ExplicitElement, ncml_module::NetcdfElement, ncml_module::ReadMetadataElement, ncml_module::RemoveElement, ncml_module::ScanElement, ncml_module::ValuesElement, ncml_module::VariableAggElement, and ncml_module::VariableElement.
|
virtualinherited |
Get the current reference count
Implements agg_util::RCObjectInterface.
|
pure virtual |
Return the type of the element, which should be: the same as ConcreteClassName::getTypeName()
Implemented in ncml_module::AggregationElement, ncml_module::AttributeElement, ncml_module::DimensionElement, ncml_module::ExplicitElement, ncml_module::NetcdfElement, ncml_module::ReadMetadataElement, ncml_module::RemoveElement, ncml_module::ScanElement, ncml_module::ValuesElement, ncml_module::VariableAggElement, and ncml_module::VariableElement.
|
pure virtual |
Handle a begin on this element. Called after creation and it is assumed the attributes and _parser are already set.
Implemented in ncml_module::AggregationElement, ncml_module::AttributeElement, ncml_module::DimensionElement, ncml_module::ExplicitElement, ncml_module::NetcdfElement, ncml_module::ReadMetadataElement, ncml_module::RemoveElement, ncml_module::ScanElement, ncml_module::ValuesElement, ncml_module::VariableAggElement, and ncml_module::VariableElement.
|
virtual |
Handle the characters content for the element. Default impl throws if the content is not all whitespace. Subclasses that handle non-whitespace content should override.
content | the string of characters in the element content. |
Reimplemented in ncml_module::DimensionElement, ncml_module::ExplicitElement, ncml_module::NetcdfElement, ncml_module::ReadMetadataElement, ncml_module::RemoveElement, ncml_module::ScanElement, and ncml_module::ValuesElement.
|
pure virtual |
Handle the closing of this element.
Implemented in ncml_module::AggregationElement, ncml_module::AttributeElement, ncml_module::DimensionElement, ncml_module::ExplicitElement, ncml_module::NetcdfElement, ncml_module::ReadMetadataElement, ncml_module::RemoveElement, ncml_module::ScanElement, ncml_module::ValuesElement, ncml_module::VariableAggElement, and ncml_module::VariableElement.
|
static |
int ncml_module::NCMLElement::line | ( | ) | const |
Return the current parse line number. Shorthand
|
static |
Helper for subclasses implementing toString().
|
virtualinherited |
Increase the reference count by one. const since we do not consider the ref count part of the semantic constness of the rep
Implements agg_util::RCObjectInterface.
|
virtualinherited |
If the object is in an auto-delete pool, remove it from the pool and force it to only delete when it's ref count goes to 0. Useful when we desire a particular object stay around outside of the pool's lifetime.
Implements agg_util::RCObjectInterface.
|
inherited |
Remove it exists. If not, this unchanged.
|
pure virtual |
Set the attributes of this from the map.
attrs | the attribute map to set this class to. |
Implemented in ncml_module::AggregationElement, ncml_module::AttributeElement, ncml_module::DimensionElement, ncml_module::ExplicitElement, ncml_module::NetcdfElement, ncml_module::ReadMetadataElement, ncml_module::RemoveElement, ncml_module::ScanElement, ncml_module::ValuesElement, ncml_module::VariableAggElement, and ncml_module::VariableElement.
|
pure virtual |
Return a string describing the element
Reimplemented from agg_util::RCObject.
Implemented in ncml_module::AggregationElement, ncml_module::AttributeElement, ncml_module::DimensionElement, ncml_module::ExplicitElement, ncml_module::NetcdfElement, ncml_module::ReadMetadataElement, ncml_module::RemoveElement, ncml_module::ScanElement, ncml_module::ValuesElement, ncml_module::VariableAggElement, and ncml_module::VariableElement.
|
virtualinherited |
Decrease the reference count by one. If it goes from 1 to 0, delete this and this is no longer valid.
It is illegal to unref() an object with a count of 0. We don't throw to allow use in dtors, so the caller is assumed not to do it!
const since the reference count is not part of the semantic constness of the rep
Implements agg_util::RCObjectInterface.
|
virtual |
Check that the given attributes are all in the valid set, otherwise fill in *pInvalidAttrs with the problematic ones if it's not null. If pInvalidAttrs && printInvalid is set, we print the problematic attributes to BESDEBUG "ncml" channel If throwOnError is set, we throw a parse error instead of returning.
|
protected |
Definition at line 187 of file NCMLElement.h.