Richard Boegli's CnC_Generals_Zero_Hour Fork
WIP
This is documentation of Richard Boegil's Zero Hour Fork
Loading...
Searching...
No Matches
b64straw.h
Go to the documentation of this file.
1
/*
2
** Command & Conquer Generals Zero Hour(tm)
3
** Copyright 2025 Electronic Arts Inc.
4
**
5
** This program is free software: you can redistribute it and/or modify
6
** it under the terms of the GNU General Public License as published by
7
** the Free Software Foundation, either version 3 of the License, or
8
** (at your option) any later version.
9
**
10
** This program is distributed in the hope that it will be useful,
11
** but WITHOUT ANY WARRANTY; without even the implied warranty of
12
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
** GNU General Public License for more details.
14
**
15
** You should have received a copy of the GNU General Public License
16
** along with this program. If not, see <http://www.gnu.org/licenses/>.
17
*/
18
19
/***********************************************************************************************
20
*** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S ***
21
***********************************************************************************************
22
* *
23
* Project Name : Command & Conquer *
24
* *
25
* $Archive:: /G/wwlib/b64straw.h $*
26
* *
27
* $Author:: Eric_c $*
28
* *
29
* $Modtime:: 4/02/99 11:58a $*
30
* *
31
* $Revision:: 2 $*
32
* *
33
*---------------------------------------------------------------------------------------------*
34
* Functions: *
35
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
36
#if _MSC_VER >= 1000
37
#pragma once
38
#endif
// _MSC_VER >= 1000
39
40
#ifndef B64STRAW_H
41
#define B64STRAW_H
42
43
#include "
straw.h
"
44
45
/*
46
** Performs Base 64 encoding/decoding on the data that is drawn through the straw. Note that
47
** encoding increases the data size by about 30%. The reverse occurs when decoding.
48
*/
49
class
Base64Straw
:
public
Straw
50
{
51
public
:
52
typedef
enum
CodeControl
{
53
ENCODE
,
54
DECODE
55
}
CodeControl
;
56
57
Base64Straw
(
CodeControl
control) : Control(control), Counter(0) {}
58
virtual
int
Get
(
void
* source,
int
slen);
59
60
private
:
61
62
/*
63
** Indicates if this is for encoding or decoding of Base64 data.
64
*/
65
CodeControl
Control;
66
67
/*
68
** The counter of the number of accumulated bytes pending for processing.
69
*/
70
int
Counter;
71
72
/*
73
** Buffer that holds the Base64 coded bytes. This will be the staging buffer if
74
** this is for a decoding process. Otherwise, it will be used as a scratch buffer.
75
*/
76
char
CBuffer[4];
77
78
/*
79
** Buffer that holds the plain bytes. This will be the staging buffer if this
80
** is for an encoding process. Otherwise, it will be used as a scratch buffer.
81
*/
82
char
PBuffer[3];
83
84
/*
85
** Explicitly disable the copy constructor and the assignment operator.
86
*/
87
Base64Straw
(
Base64Straw
& rvalue);
88
Base64Straw
& operator = (
Base64Straw
const
& pipe);
89
};
90
91
92
#endif
STRAW.H
Base64Straw
Definition
b64straw.h:50
Base64Straw::Base64Straw
Base64Straw(CodeControl control)
Definition
b64straw.h:57
Base64Straw::Get
virtual int Get(void *source, int slen)
Definition
b64straw.cpp:63
Base64Straw::CodeControl
CodeControl
Definition
b64straw.h:52
Base64Straw::DECODE
@ DECODE
Definition
b64straw.h:54
Base64Straw::ENCODE
@ ENCODE
Definition
b64straw.h:53
Straw::Straw
Straw(void)
Definition
STRAW.H:53
Code
Libraries
Source
WWVegas
WWLib
b64straw.h
Generated by
1.13.2