libdap++
Updated for version 3.11.7
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., 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_XDRStreamMarshaller_h
34
#define I_XDRStreamMarshaller_h 1
35
36
#include <iostream>
37
38
#include <openssl/md5.h>
39
40
using
std::ostream ;
41
using
std::cout ;
42
43
#include "
Marshaller.h
"
44
#include "
XDRUtils.h
"
45
46
#if 0
47
#include <openssl/md5.h>
48
49
unsigned
char
*MD5(
const
unsigned
char
*d,
unsigned
long
n,
50
unsigned
char
*md);
51
52
int
MD5_Init(MD5_CTX *c);
53
int
MD5_Update(MD5_CTX *c,
const
void
*data,
54
unsigned
long
len);
55
int
MD5_Final(
unsigned
char
*md, MD5_CTX *c);
56
#endif
57
58
namespace
libdap
59
{
60
67
class
XDRStreamMarshaller
:
public
Marshaller
68
{
69
private
:
70
static
char
* _buf ;
71
XDR * _sink ;
72
ostream & _out ;
73
MD5_CTX * _md5 ;
// jhrg 1/18/12
74
bool
_write_data ;
// jhrg 1/27/12
75
bool
_checksum_ctx_valid ;
76
77
XDRStreamMarshaller
() ;
78
XDRStreamMarshaller
(
const
XDRStreamMarshaller
&m ) ;
79
XDRStreamMarshaller
&operator=(
const
XDRStreamMarshaller
& ) ;
80
81
public
:
82
/* XDRStreamMarshaller( ostream &out ) ; */
83
XDRStreamMarshaller
( ostream &out,
bool
checksum =
false
,
bool
write_data =
true
) ;
84
virtual
~XDRStreamMarshaller
() ;
85
86
virtual
void
reset_checksum
() ;
87
virtual
string
get_checksum
() ;
88
virtual
void
checksum_update
(
const
void
*data,
unsigned
long
len) ;
89
90
virtual
void
put_byte
(
dods_byte
val ) ;
91
92
virtual
void
put_int16
(
dods_int16
val ) ;
93
virtual
void
put_int32
(
dods_int32
val ) ;
94
95
virtual
void
put_float32
(
dods_float32
val ) ;
96
virtual
void
put_float64
(
dods_float64
val ) ;
97
98
virtual
void
put_uint16
(
dods_uint16
val ) ;
99
virtual
void
put_uint32
(
dods_uint32
val ) ;
100
101
virtual
void
put_str
(
const
string
&val ) ;
102
virtual
void
put_url
(
const
string
&val ) ;
103
104
virtual
void
put_opaque
(
char
*val,
unsigned
int
len ) ;
105
virtual
void
put_int
(
int
val ) ;
106
107
virtual
void
put_vector
(
char
*val,
int
num,
Vector
&vec ) ;
108
virtual
void
put_vector
(
char
*val,
int
num,
int
width,
Vector
&vec ) ;
109
110
virtual
void
dump
(ostream &strm)
const
;
111
} ;
112
113
}
// namespace libdap
114
115
#endif // I_XDRStreamMarshaller_h
116
XDRStreamMarshaller.h
Generated by
1.8.4