libdap++
Updated for version 3.12.0
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., 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 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 d_source ;
56
istream & d_in;
57
static
char
* d_buf;
58
59
XDRStreamUnMarshaller
() ;
60
XDRStreamUnMarshaller
(
const
XDRStreamUnMarshaller
&um ) ;
61
XDRStreamUnMarshaller
& operator=(
const
XDRStreamUnMarshaller
& ) ;
62
63
public
:
64
XDRStreamUnMarshaller
( istream &in ) ;
65
virtual
~XDRStreamUnMarshaller
() ;
66
67
virtual
void
get_byte
(
dods_byte
&val ) ;
68
69
virtual
void
get_int16
(
dods_int16
&val ) ;
70
virtual
void
get_int32
(
dods_int32
&val ) ;
71
72
virtual
void
get_float32
(
dods_float32
&val ) ;
73
virtual
void
get_float64
(
dods_float64
&val ) ;
74
75
virtual
void
get_uint16
(
dods_uint16
&val ) ;
76
virtual
void
get_uint32
(
dods_uint32
&val ) ;
77
78
virtual
void
get_str
(
string
&val ) ;
79
virtual
void
get_url
(
string
&val ) ;
80
81
virtual
void
get_opaque
(
char
*val,
unsigned
int
len ) ;
82
virtual
void
get_int
(
int
&val ) ;
83
84
virtual
void
get_vector
(
char
**val,
unsigned
int
&num,
Vector
&vec ) ;
85
virtual
void
get_vector
(
char
**val,
unsigned
int
&num,
int
width,
Vector
&vec ) ;
86
87
virtual
void
get_vector
(
char
**val,
unsigned
int
&num,
int
width,
Type
type);
88
89
virtual
void
dump
(ostream &strm)
const
;
90
} ;
91
92
}
// namespace libdap
93
94
#endif // I_XDRStreamUnMarshaller_h
95
XDRStreamUnMarshaller.h
Generated on Tue Oct 22 2013 06:24:38 for libdap++ by
1.8.4