bes  Updated for version 3.20.6
W10nJsonTransmitter.h
1 // -*- mode: c++; c-basic-offset:4 -*-
2 //
3 // FoW10JsonTransmitter.h
4 //
5 // This file is part of BES JSON File Out Module
6 //
7 // Copyright (c) 2014 OPeNDAP, Inc.
8 // Author: Nathan Potter <ndp@opendap.org>
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 // (c) COPYRIGHT URI/MIT 1995-1999
26 // Please read the full copyright statement in the file COPYRIGHT_URI.
27 //
28 
29 
30 #ifndef A_W10nJsonTransmitter_h
31 #define A_W10nJsonTransmitter_h 1
32 
33 #include <DataDDS.h>
34 #include <ConstraintEvaluator.h>
35 
36 #include <BESTransmitter.h>
37 
38 class BESContainer;
39 
50 private:
51  static void return_temp_stream(const std::string &filename, std::ostream &strm);
52  static std::string temp_dir;
53  static std::string getProjectionClause(const std::string &constraintExpression);
54  static void checkConstraintForW10nCompatibility(const std::string &ce);
55  static std::string getProjectedVariableName(const std::string &constraintExpression);
56  static void cleanupW10nContexts();
57 
58  friend struct ContextCleanup; // used to ensure cleanupW10nContexts is called
59 
60 public:
62  virtual ~W10nJsonTransmitter() { }
63 
64  static void send_data(BESResponseObject *obj, BESDataHandlerInterface &dhi);
66 };
67 
68 #endif /* A_W10nJsonTransmitter_h */
69 
W10nJsonTransmitter
BESTransmitter class named "json" that transmits an OPeNDAP data object as a JSON file.
Definition: W10nJsonTransmitter.h:49
W10nJsonTransmitter::send_metadata
static void send_metadata(BESResponseObject *obj, BESDataHandlerInterface &dhi)
The static method registered to transmit OPeNDAP data objects as a JSON file.
Definition: W10nJsonTransmitter.cc:258
BESTransmitter
Definition: BESTransmitter.h:47
W10nJsonTransmitter::W10nJsonTransmitter
W10nJsonTransmitter()
Construct the W10nJsonTransmitter.
Definition: W10nJsonTransmitter.cc:88
BESContainer
A container is something that holds data. E.G., a netcdf file or a database entry.
Definition: BESContainer.h:65
BESDataHandlerInterface
Structure storing information used by the BES to handle the request.
Definition: BESDataHandlerInterface.h:56
BESResponseObject
Abstract base class representing a specific set of information in response to a request to the BES.
Definition: BESResponseObject.h:45
W10nJsonTransmitter::send_data
static void send_data(BESResponseObject *obj, BESDataHandlerInterface &dhi)
The static method registered to transmit OPeNDAP data objects as a JSON file.
Definition: W10nJsonTransmitter.cc:188