bes Updated for version 3.21.1
The Backend Server (BES) is the lower two tiers of the Hyrax data server
ugrid_restrict.h
1// This file is part of libdap, A C++ implementation of the OPeNDAP Data
2// Access Protocol.
3
4// Copyright (c) 2002,2003,2011,2012 OPeNDAP, Inc.
5// Authors: Nathan Potter <ndp@opendap.org>
6// James Gallagher <jgallagher@opendap.org>
7// Scott Moe <smeest1@gmail.com>
8// Bill Howe <billhowe@cs.washington.edu>
9//
10// This library is free software; you can redistribute it and/or
11// modify it under the terms of the GNU Lesser General Public
12// License as published by the Free Software Foundation; either
13// version 2.1 of the License, or (at your option) any later version.
14//
15// This library is distributed in the hope that it will be useful,
16// but WITHOUT ANY WARRANTY; without even the implied warranty of
17// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18// Lesser General Public License for more details.
19//
20// You should have received a copy of the GNU Lesser General Public
21// License along with this library; if not, write to the Free Software
22// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23//
24// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
25
26// NOTE: This file is built only when the gridfields library is linked with
27// the netcdf_handler (i.e., the handler's build is configured using the
28// --with-gridfields=... option to the 'configure' script).
29
30#ifndef UGR5_H_
31#define UGR5_H_
32
33#include <libdap/BaseType.h>
34#include <libdap/DDS.h>
35#include <libdap/ServerFunction.h>
36
37namespace ugrid {
38
43void ugnr(int argc, libdap::BaseType * argv[], libdap::DDS &dds, libdap::BaseType **btpp);
44
49void uger(int argc, libdap::BaseType * argv[], libdap::DDS &dds, libdap::BaseType **btpp);
50
55void ugfr(int argc, libdap::BaseType * argv[], libdap::DDS &dds, libdap::BaseType **btpp);
56
61class UGNR: public libdap::ServerFunction {
62
63private:
64
65public:
66 UGNR()
67{
68 setName("ugnr");
69 setDescriptionString(
70 ((string)"This function can subset the range variables of a two dimensional triangular mesh unstructured grid ") +
71 "by applying a filter expression to the values of the grid associated with the nodes.");
72 setUsageString("ugnr(node_var [,node_var_2,...,node_var_n], 'relational query over domain')");
73 setRole("https://services.opendap.org/dap4/server-side-function/unstructured_grids/ugrid_restrict");
74 setDocUrl("https://docs.opendap.org/index.php?title=OPULS:_UGrid_Subsetting#ugnr:_Subset_by_node_value.");
75 setFunction(ugrid::ugnr);
76 setVersion("1.0");
77}
78 virtual ~UGNR()
79 {
80 }
81
82};
83class UGER: public libdap::ServerFunction {
84
85private:
86
87public:
88 UGER()
89{
90 setName("uger");
91 setDescriptionString(
92 ((string)"This function can subset the range variables of a two dimensional triangular mesh unstructured grid ") +
93 "by applying a filter expression to the values of the grid associated with the edges.");
94 setUsageString("uger(node_var [,node_var_2,...,node_var_n], 'relational query over domain')");
95 setRole("https://services.opendap.org/dap4/server-side-function/unstructured_grids/ugrid_restrict");
96 setDocUrl("https://docs.opendap.org/index.php?title=OPULS:_UGrid_Subsetting#uger:_Subset_by_edge_value.");
97 setFunction(ugrid::uger);
98 setVersion("1.0");
99}
100 virtual ~UGER()
101 {
102 }
103
104};
105class UGFR: public libdap::ServerFunction {
106
107private:
108
109public:
110 UGFR()
111{
112 setName("ugfr");
113 setDescriptionString(
114 ((string)"This function can subset the range variables of a two dimensional triangular mesh unstructured grid ") +
115 "by applying a filter expression to the values of the grid associated with the faces.");
116 setUsageString("ugfr(node_var [,node_var_2,...,node_var_n], 'relational query over domain')");
117 setRole("https://services.opendap.org/dap4/server-side-function/unstructured_grids/ugrid_restrict");
118 setDocUrl("https://docs.opendap.org/index.php?title=OPULS:_UGrid_Subsetting#ugfr:_Subset_by_face_value.");
119 setFunction(ugrid::ugfr);
120 setVersion("1.0");
121}
122 virtual ~UGFR()
123 {
124 }
125
126};
127
128} // namespace ugrid_restrict
129
130#endif /* UGR5_H_ */