25 #ifndef D4_FUNCTION_DRIVER_H_ 26 #define D4_FUNCTION_DRIVER_H_ 38 class ServerFunctionsList;
50 bool d_trace_scanning;
59 std::stack<BaseType*> d_basetype_stack;
61 unsigned long long d_arg_length_hint;
65 std::string *expression()
72 d_basetype_stack.push(btp);
76 return d_basetype_stack.empty() ? 0 : d_basetype_stack.top();
80 d_basetype_stack.pop();
83 D4RValue *build_rvalue(
const std::string &
id);
85 friend class D4FunctionParser;
89 d_trace_scanning(
false), d_trace_parsing(
false), d_expr(
""), d_dmr(0), d_sf_list(0), d_result(0), d_arg_length_hint(
94 d_trace_scanning(
false), d_trace_parsing(
false), d_expr(
""), d_dmr(dmr), d_sf_list(sf_list), d_result(0), d_arg_length_hint(
103 bool parse(
const std::string &expr);
105 bool trace_scanning()
const 107 return d_trace_scanning;
109 void set_trace_scanning(
bool ts)
111 d_trace_scanning = ts;
114 bool trace_parsing()
const 116 return d_trace_parsing;
118 void set_trace_parsing(
bool tp)
120 d_trace_parsing = tp;
138 unsigned long long get_arg_length_hint()
const 140 return d_arg_length_hint;
142 void set_arg_length_hint(
unsigned long long alh)
144 d_arg_length_hint = alh;
151 void set_dmr(
DMR *dmr)
165 template<
typename t> std::vector<t> *init_arg_list(t val);
167 void error(
const libdap::location &l,
const std::string &m);
top level DAP object to house generic methods
D4RValueList * result() const
bool parse(const std::string &expr)
The basic data type for the DODS DAP types.