libdap Updated for version 3.20.10
libdap4 is an implementation of OPeNDAP's DAP protocol.
PipeResponse.h
1
2// -*- mode: c++; c-basic-offset:4 -*-
3
4// This file is part of libdap, A C++ implementation of the OPeNDAP Data
5// Access Protocol.
6
7// Copyright (c) 2002,2003 OPeNDAP, Inc.
8// Author: James Gallagher <jgallagher@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
26#ifndef pipe_response_h
27#define pipe_response_h
28
29#include <cstdio>
30
31#ifndef response_h
32#include "Response.h"
33#endif
34
35#ifndef _debug_h
36#include "debug.h"
37#endif
38
39using namespace std;
40
41namespace libdap
42{
43
48{
49private:
50 FILE *d_pstream;
51
52protected:
53
54public:
70 PipeResponse(FILE *s) : Response(0), d_pstream(s)
71 {}
72
74 virtual ~PipeResponse()
75 {
76 if (d_pstream)
77 pclose(d_pstream);
78 }
79
80 virtual FILE *get_stream() const
81 {
82 return d_pstream;
83 }
84 virtual void set_stream(FILE *s)
85 {
86 d_pstream = s;
87 }
88};
89
90} // namespace libdap
91
92#endif // pipe_response_h
Encapsulate a response. This class provides special treatment for 'stream pipes.' It arranges to clos...
PipeResponse(FILE *s)
Initialize with a stream returned by popen().
top level DAP object to house generic methods