1
// -*- tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2
// vi: set et ts=8 sw=4 sts=4:
1
// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2
// vi: set et ts=4 sw=2 sts=2:
4
4
#ifndef DUNE_GRID_IO_FILE_VTK_B64ENC_HH
5
5
#define DUNE_GRID_IO_FILE_VTK_B64ENC_HH
12
@author Christian Engwer
13
@brief Simple base64 encode
18
/** @brief endoing table */
19
const char base64table[] =
12
@author Christian Engwer
13
@brief Simple base64 encode
18
/** @brief endoing table */
19
const char base64table[] =
21
21
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
22
22
'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
23
23
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
24
24
'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
25
25
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'
28
/** @brief struct with three bytes of text */
28
/** @brief struct with three bytes of text */
31
31
typedef unsigned char size_type;
34
34
int read(const char* t, size_type s)
37
txt[2] = s>0 ? t[0] : 0;
38
txt[1] = s>1 ? t[1] : 0;
39
txt[0] = s>2 ? t[2] : 0;
42
42
void put(const char c)
49
/** struct with four six bit chunks */
49
/** struct with four six bit chunks */
52
52
typedef unsigned char size_type;
58
58
void write(char* t)
60
t[3] = size>2?base64table[A]:'=';
61
t[2] = size>1?base64table[B]:'=';
62
t[1] = size>0?base64table[C]:'=';
63
t[0] = size>0?base64table[D]:'=';
60
t[3] = size>2 ? base64table[A] : '=';
61
t[2] = size>1 ? base64table[B] : '=';
62
t[1] = size>0 ? base64table[C] : '=';
63
t[0] = size>0 ? base64table[D] : '=';
68
/** @brief union representing the three byte text aswell as the four 6 bit chunks */
68
/** @brief union representing the three byte text aswell as the four 6 bit chunks */
77
77
} // namespace Dune