libdap++
Updated for version 3.8.2
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
XDRStreamUnMarshaller.h
Go to the documentation of this file.
1
// XDRStreamUnMarshaller.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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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 I_XDRStreamUnMarshaller_h
34
#define I_XDRStreamUnMarshaller_h 1
35
36
#include <iostream>
37
38
using
std::istream ;
39
using
std::cin ;
40
41
#include "
UnMarshaller.h
"
42
#include "
XDRUtils.h
"
43
44
namespace
libdap
45
{
46
47
const
int
XDR_DAP_BUFF_SIZE
= 4096;
// This will be compared to a signed int
48
52
class
XDRStreamUnMarshaller
:
public
UnMarshaller
53
{
54
private
:
55
XDR * _source ;
56
istream & _in;
57
static
char
* _buf;
58
59
XDRStreamUnMarshaller
() ;
60
XDRStreamUnMarshaller
(
const
XDRStreamUnMarshaller
&um ) ;
61
XDRStreamUnMarshaller
& operator=(
const
XDRStreamUnMarshaller
& ) ;
62
public
:
63
XDRStreamUnMarshaller
( istream &in ) ;
64
virtual
~XDRStreamUnMarshaller
() ;
65
66
virtual
void
get_byte
(
dods_byte
&val ) ;
67
68
virtual
void
get_int16
(
dods_int16
&val ) ;
69
virtual
void
get_int32
(
dods_int32
&val ) ;
70
71
virtual
void
get_float32
(
dods_float32
&val ) ;
72
virtual
void
get_float64
(
dods_float64
&val ) ;
73
74
virtual
void
get_uint16
(
dods_uint16
&val ) ;
75
virtual
void
get_uint32
(
dods_uint32
&val ) ;
76
77
virtual
void
get_str
(
string
&val ) ;
78
virtual
void
get_url
(
string
&val ) ;
79
80
virtual
void
get_opaque
(
char
*val,
unsigned
int
len ) ;
81
virtual
void
get_int
(
int
&val ) ;
82
83
virtual
void
get_vector
(
char
**val,
unsigned
int
&num,
84
Vector
&vec ) ;
85
virtual
void
get_vector
(
char
**val,
unsigned
int
&num,
86
int
width,
Vector
&vec ) ;
87
88
virtual
void
dump
(ostream &strm)
const
;
89
} ;
90
91
}
// namespace libdap
92
93
#endif // I_XDRStreamUnMarshaller_h
94
XDRStreamUnMarshaller.h
Generated by
1.8.3.1