libdap  Updated for version 3.20.6
libdap4 is an implementation of OPeNDAP's DAP protocol.
XDRUtils.h
1 // XDRUtils.h
2 
3 // -*- mode: c++; c-basic-offset:4 -*-
4 
5 // This file is part of libdap, A C++ implementation of the OPeNDAP Data
6 // Access Protocol.
7 
8 // Copyright (c) 2002,2003 OPeNDAP, Inc.
9 // Author: Patrick West <pwest@ucar.edu>
10 //
11 // This library is free software; you can redistribute it and/or
12 // modify it under the terms of the GNU Lesser General Public
13 // License as published by the Free Software Foundation; either
14 // version 2.1 of the License, or (at your option) any later version.
15 //
16 // This library is distributed in the hope that it will be useful,
17 // but WITHOUT ANY WARRANTY; without even the implied warranty of
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 // Lesser General Public License for more details.
20 //
21 // You should have received a copy of the GNU Lesser General Public
22 // License along with this library; if not, write to the Free Software
23 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
24 //
25 // You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
26 
27 // (c) COPYRIGHT URI/MIT 1994-1999
28 // Please read the full copyright statement in the file COPYRIGHT_URI.
29 //
30 // Authors:
31 // pwest Patrick West <pwest@ucar.edu>
32 
33 #ifndef S_XDRUtils_h
34 #define S_XDRUtils_h 1
35 
36 #include <cstdio>
37 #include "xdr-datatypes.h"
38 #include "BaseType.h"
39 
40 #define xdr_proc_t int *
41 
42 // These func's moved to xdrutil_ppc.* under the PPC as explained there
43 #ifdef __POWERPC__
44 extern "C" XDR *new_xdrstdio(FILE *stream, enum xdr_op xop);
45 extern "C" XDR *set_xdrstdio(XDR *xdr, FILE *stream, enum xdr_op xop);
46 extern "C" void delete_xdrstdio(XDR *xdr);
47 #else
48 XDR *new_xdrstdio(FILE *stream, enum xdr_op xop);
49 XDR *set_xdrstdio(XDR *xdr, FILE *stream, enum xdr_op xop);
50 void delete_xdrstdio(XDR *xdr);
51 #endif
52 
53 extern "C" bool_t xdr_str(XDR *xdrs, string &buf);
54 
55 namespace libdap
56 {
57 
58 class XDRUtils
59 {
60 private: XDRUtils() {}
61 public:
62  // xdr_coder is used as an argument to xdr procedures that encode groups
63  // of things (e.g., xdr_array()). Each leaf class's constructor must set
64  // this.
65  static xdrproc_t xdr_coder( const Type &t ) ;
66 } ;
67 
68 } // namespace libdap
69 
70 #endif // S_XDRUtils_h
71 
Type
Identifies the data type.
Definition: Type.h:94
top level DAP object to house generic methods
Definition: AISConnect.cc:30
static xdrproc_t xdr_coder(const Type &t)
Returns a function used to encode elements of an array.
Definition: XDRUtils.cc:145