mirror of
https://gitcode.com/gh_mirrors/ope/OpenFace.git
synced 2026-05-17 04:37:50 +00:00
93 lines
2.3 KiB
C++
93 lines
2.3 KiB
C++
// Copyright (C) 2006 Davis E. King (davis@dlib.net)
|
|
// License: Boost Software License See LICENSE.txt for the full license.
|
|
#ifndef DLIB_BASE64_KERNEl_1_
|
|
#define DLIB_BASE64_KERNEl_1_
|
|
|
|
#include "../algs.h"
|
|
#include "base64_kernel_abstract.h"
|
|
#include <iosfwd>
|
|
|
|
namespace dlib
|
|
{
|
|
|
|
class base64
|
|
{
|
|
/*!
|
|
INITIAL VALUE
|
|
- bad_value == 100
|
|
- encode_table == a pointer to an array of 64 chars
|
|
- where x is a 6 bit value the following is true:
|
|
- encode_table[x] == the base64 encoding of x
|
|
- decode_table == a pointer to an array of UCHAR_MAX chars
|
|
- where x is any char value:
|
|
- if (x is a valid character in the base64 coding scheme) then
|
|
- decode_table[x] == the 6 bit value that x encodes
|
|
- else
|
|
- decode_table[x] == bad_value
|
|
|
|
CONVENTION
|
|
- The state of this object never changes so just refer to its
|
|
initial value.
|
|
|
|
|
|
!*/
|
|
|
|
public:
|
|
// this is here for backwards compatibility with older versions of dlib.
|
|
typedef base64 kernel_1a;
|
|
|
|
class decode_error : public dlib::error { public:
|
|
decode_error( const std::string& e) : error(e) {}};
|
|
|
|
base64 (
|
|
);
|
|
|
|
virtual ~base64 (
|
|
);
|
|
|
|
enum line_ending_type
|
|
{
|
|
CR, // i.e. "\r"
|
|
LF, // i.e. "\n"
|
|
CRLF // i.e. "\r\n"
|
|
};
|
|
|
|
line_ending_type line_ending (
|
|
) const;
|
|
|
|
void set_line_ending (
|
|
line_ending_type eol_style_
|
|
);
|
|
|
|
void encode (
|
|
std::istream& in,
|
|
std::ostream& out
|
|
) const;
|
|
|
|
void decode (
|
|
std::istream& in,
|
|
std::ostream& out
|
|
) const;
|
|
|
|
private:
|
|
|
|
char* encode_table;
|
|
unsigned char* decode_table;
|
|
const unsigned char bad_value;
|
|
line_ending_type eol_style;
|
|
|
|
// restricted functions
|
|
base64(base64&); // copy constructor
|
|
base64& operator=(base64&); // assignment operator
|
|
|
|
};
|
|
|
|
}
|
|
|
|
#ifdef NO_MAKEFILE
|
|
#include "base64_kernel_1.cpp"
|
|
#endif
|
|
|
|
#endif // DLIB_BASE64_KERNEl_1_
|
|
|