summaryrefslogtreecommitdiffstats
path: root/ml/dlib/dlib/base64/base64_kernel_1.h
diff options
context:
space:
mode:
Diffstat (limited to 'ml/dlib/dlib/base64/base64_kernel_1.h')
-rw-r--r--ml/dlib/dlib/base64/base64_kernel_1.h92
1 files changed, 92 insertions, 0 deletions
diff --git a/ml/dlib/dlib/base64/base64_kernel_1.h b/ml/dlib/dlib/base64/base64_kernel_1.h
new file mode 100644
index 000000000..d8f49b1b8
--- /dev/null
+++ b/ml/dlib/dlib/base64/base64_kernel_1.h
@@ -0,0 +1,92 @@
+// 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_
+