bes Updated for version 3.21.1
The Backend Server (BES) is the lower two tiers of the Hyrax data server
|
Classes | |
struct | Entry |
Public Types | |
enum | ScopeType { GLOBAL =0 , VARIABLE_ATOMIC , VARIABLE_CONSTRUCTOR , ATTRIBUTE_ATOMIC , ATTRIBUTE_CONTAINER , NUM_SCOPE_TYPES } |
Public Member Functions | |
void | clear () |
bool | empty () const |
std::string | getFullyQualifiedName () const |
std::string | getScopeString () const |
std::string | getTypedScopeString () const |
bool | isCurrentScope (ScopeType type) const |
void | pop () |
void | push (const std::string &name, ScopeType type) |
int | size () const |
const Entry & | top () const |
const std::string & | topName () const |
ScopeType | topType () const |
Definition at line 53 of file ScopeStack.h.
The current scope is either global attribute table, within a variable's attribute table, or within an attribute container. Additionally, we can be "within" an atomic attribute if the <attribute>values here</attribute> form is used.
Definition at line 60 of file ScopeStack.h.
ncml_module::ScopeStack::ScopeStack | ( | ) |
Definition at line 59 of file ScopeStack.cc.
|
virtual |
Definition at line 64 of file ScopeStack.cc.
void ncml_module::ScopeStack::clear | ( | ) |
Definition at line 70 of file ScopeStack.cc.
bool ncml_module::ScopeStack::empty | ( | ) | const |
If there are no entries pushed. If empty(), we assume isCurrentScope(GLOBAL) is true.
Definition at line 86 of file ScopeStack.cc.
|
inline |
Definition at line 114 of file ScopeStack.h.
string ncml_module::ScopeStack::getScopeString | ( | ) | const |
Return a fully qualifed name for the scope, such as "" for global scope or "MetaData.Info.Name" for an attribute container, etc.
Definition at line 96 of file ScopeStack.cc.
string ncml_module::ScopeStack::getTypedScopeString | ( | ) | const |
Similar to getScopeString(), but appends the type of the scope to the name in the form "Name<TYPE>" for better debugging. For example, "MetaData<Attribute_Container>.Info<Attribute_Container>.Name<Attribute_Atomic>" gives more information about the context.
Definition at line 109 of file ScopeStack.cc.
Is the current scope of the given type? Note that isCurrentScope(GLOBAL) == empty(). In other words, an empty stack implicitly means global scope.
Definition at line 122 of file ScopeStack.cc.
void ncml_module::ScopeStack::pop | ( | ) |
Definition at line 75 of file ScopeStack.cc.
|
inline |
Definition at line 95 of file ScopeStack.h.
int ncml_module::ScopeStack::size | ( | ) | const |
How many things are on the stack. This is useful for knowing if an atomic attribute is being added at the top level of the DAS/DDS (which DAP2 does not allow, but DAP4 will).
Definition at line 91 of file ScopeStack.cc.
const ScopeStack::Entry & ncml_module::ScopeStack::top | ( | ) | const |
Definition at line 81 of file ScopeStack.cc.
|
inline |
Definition at line 100 of file ScopeStack.h.
|
inline |
Definition at line 99 of file ScopeStack.h.