bes Updated for version 3.21.1
The Backend Server (BES) is the lower two tiers of the Hyrax data server
BESDapResponse.h
1// BESDapResponse.h
2
3// This file is part of bes, A C++ back-end server implementation framework
4// for the OPeNDAP Data Access Protocol.
5
6// Copyright (c) 2004-2009 University Corporation for Atmospheric Research
7// Author: Patrick West <pwest@ucar.edu> and Jose Garcia <jgarcia@ucar.edu>
8//
9// This library is free software; you can redistribute it and/or
10// modify it under the terms of the GNU Lesser General Public
11// License as published by the Free Software Foundation; either
12// version 2.1 of the License, or (at your option) any later version.
13//
14// This library is distributed in the hope that it will be useful,
15// but WITHOUT ANY WARRANTY; without even the implied warranty of
16// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17// Lesser General Public License for more details.
18//
19// You should have received a copy of the GNU Lesser General Public
20// License along with this library; if not, write to the Free Software
21// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22//
23// You can contact University Corporation for Atmospheric Research at
24// 3080 Center Green Drive, Boulder, CO 80301
25
26// (c) COPYRIGHT University Corporation for Atmospheric Research 2004-2005
27// Please read the full copyright statement in the file COPYRIGHT_UCAR.
28//
29// Authors:
30// pwest Patrick West <pwest@ucar.edu>
31// jgarcia Jose Garcia <jgarcia@ucar.edu>
32
33#ifndef I_BESDapResponse
34#define I_BESDapResponse 1
35
36#include "BESResponseObject.h"
37#include "BESDataHandlerInterface.h"
38
41class BESDapResponse: public BESResponseObject {
42private:
43 std::string d_dap_client_protocol;
44 bool d_explicit_containers;
45
46 std::string d_request_xml_base;
47
48protected:
49 bool is_dap2();
50 void read_contexts();
51
52public:
53 BESDapResponse() :
54 BESResponseObject(), d_dap_client_protocol("2.0"), d_explicit_containers(true), d_request_xml_base("")
55 {
57 }
58
59 virtual ~BESDapResponse()
60 {
61 }
62
64 std::string get_dap_client_protocol() const
65 {
66 return d_dap_client_protocol;
67 }
68
71 {
72 return d_explicit_containers;
73 }
74
76 std::string get_request_xml_base() const
77 {
78 return d_request_xml_base;
79 }
80
81 virtual void set_constraint(BESDataHandlerInterface &dhi);
84
85 virtual void set_container(const std::string &cn) = 0;
86 virtual void clear_container() = 0;
87
88 virtual void dump(std::ostream &strm) const;
89};
90
91#endif // I_BESDapResponse
void read_contexts()
Extract the dap protocol from the setContext information This method checks four contexts: dap_explic...
virtual void set_dap4_function(BESDataHandlerInterface &dhi)
set the constraint depending on the context
virtual void set_dap4_constraint(BESDataHandlerInterface &dhi)
set the constraint depending on the context
virtual void set_constraint(BESDataHandlerInterface &dhi)
set the constraint depending on the context
std::string get_dap_client_protocol() const
Return the dap version string sent by the client (e.g., the OLFS)
virtual void dump(std::ostream &strm) const
dumps information about this object
bool get_explicit_containers() const
Should containers be explicitly represented in the DD* responses?
bool is_dap2()
See get_explicit_containers()
std::string get_request_xml_base() const
Return the xml:base URL for this request.
Structure storing information used by the BES to handle the request.