libdap++
Updated for version 3.12.0
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
XDRStreamMarshaller.h
Go to the documentation of this file.
1
// XDRStreamMarshaller.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_XDRStreamMarshaller_h
34
#define I_XDRStreamMarshaller_h 1
35
36
#include <iostream>
37
38
// #include <openssl/evp.h>
39
40
using
std::ostream ;
41
using
std::cout ;
42
43
#include "
Marshaller.h
"
44
#include "
XDRUtils.h
"
45
#include "
BaseType.h
"
46
47
namespace
libdap
48
{
49
56
class
XDRStreamMarshaller
:
public
Marshaller
57
{
58
private
:
59
static
char
* d_buf ;
60
XDR d_sink ;
61
ostream & d_out ;
62
#if 0
63
EVP_MD_CTX * _MD_CTX;
// jhrg 4/24/12
64
bool
_write_data ;
// jhrg 1/27/12
65
bool
_checksum_ctx_valid ;
66
string
_checksum ;
// jhrg 4/24/12
67
#endif
68
XDRStreamMarshaller
() ;
69
XDRStreamMarshaller
(
const
XDRStreamMarshaller
&m ) ;
70
XDRStreamMarshaller
&operator=(
const
XDRStreamMarshaller
& ) ;
71
72
public
:
73
XDRStreamMarshaller
( ostream &out) ;
//, bool checksum = false, bool write_data = true) ;
74
virtual
~XDRStreamMarshaller
() ;
75
76
#if 0
77
virtual
bool
checksums() {
return
_MD_CTX != 0; }
78
virtual
void
reset_checksum() ;
79
virtual
string
get_checksum() ;
80
virtual
void
checksum_update(
const
void
*data,
unsigned
long
len) ;
81
#endif
82
83
virtual
void
put_byte
(
dods_byte
val ) ;
84
85
virtual
void
put_int16
(
dods_int16
val ) ;
86
virtual
void
put_int32
(
dods_int32
val ) ;
87
88
virtual
void
put_float32
(
dods_float32
val ) ;
89
virtual
void
put_float64
(
dods_float64
val ) ;
90
91
virtual
void
put_uint16
(
dods_uint16
val ) ;
92
virtual
void
put_uint32
(
dods_uint32
val ) ;
93
94
virtual
void
put_str
(
const
string
&val ) ;
95
virtual
void
put_url
(
const
string
&val ) ;
96
97
virtual
void
put_opaque
(
char
*val,
unsigned
int
len ) ;
98
virtual
void
put_int
(
int
val ) ;
99
100
virtual
void
put_vector
(
char
*val,
int
num,
Vector
&vec ) ;
101
virtual
void
put_vector
(
char
*val,
int
num,
int
width,
Vector
&vec) ;
102
103
virtual
void
put_vector
(
char
*val,
unsigned
int
num,
int
width,
Type
type);
104
105
virtual
void
dump
(ostream &strm)
const
;
106
} ;
107
108
}
// namespace libdap
109
110
#endif // I_XDRStreamMarshaller_h
111
XDRStreamMarshaller.h
Generated on Tue Oct 22 2013 06:24:38 for libdap++ by
1.8.4