annotate liboctave/util/oct-base64.h @ 28769:903fe321649b

Add Matlab compatible wrappers for base64_encode and base64_decode. * liboctave/util/oct-base64.cc, oct-base64.h (base64_decode_bytes): New function to decode base64 encoded strings into bytes. * libinterp/corefcn/data.cc (F__base64_decode_bytes__): New internal function to decode base64 encoded strings into bytes. * scripts/+matlab/+net/base64decode.m, scripts/+matlab/+net/base64encode.m: Add Matlab compatible wrappers for base64_encode and __base64_decode_bytes__. * scripts/+matlab/+net/module.mk: Add new file. * scripts/module.mk: Include new module.mk file. * doc/interpreter/system.txi: Add documentation for new functions to manual. * NEWS: Announce new functions.
author Markus Mützel <markus.muetzel@gmx.de>
date Tue, 22 Sep 2020 15:59:00 +0200
parents bd51beb6205e
children 7854d5752dd2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
1 ////////////////////////////////////////////////////////////////////////
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
2 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
3 // Copyright (C) 2012-2020 The Octave Project Developers
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
4 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
5 // See the file COPYRIGHT.md in the top-level directory of this
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
6 // distribution or <https://octave.org/copyright/>.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
7 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
8 // This file is part of Octave.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
9 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
10 // Octave is free software: you can redistribute it and/or modify it
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
11 // under the terms of the GNU General Public License as published by
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
12 // the Free Software Foundation, either version 3 of the License, or
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
13 // (at your option) any later version.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
14 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
15 // Octave is distributed in the hope that it will be useful, but
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
18 // GNU General Public License for more details.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
19 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
20 // You should have received a copy of the GNU General Public License
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
21 // along with Octave; see the file COPYING. If not, see
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
22 // <https://www.gnu.org/licenses/>.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
23 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
24 ////////////////////////////////////////////////////////////////////////
15252
fa0118cb67d9 move base64 encode and decode functionality to liboctave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
25
20791
f7084eae3318 maint: Use Octave coding conventions for #if statements.
Rik <rik@octave.org>
parents: 19697
diff changeset
26 #if ! defined (octave_oct_base64_h)
17822
ebb3ef964372 maint: Use common #define syntax "octave_filename_h" in h_files.
Rik <rik@octave.org>
parents: 17744
diff changeset
27 #define octave_oct_base64_h 1
15252
fa0118cb67d9 move base64 encode and decode functionality to liboctave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
28
21244
1473547f50f5 include octave-config.h in public header files
John W. Eaton <jwe@octave.org>
parents: 21139
diff changeset
29 #include "octave-config.h"
1473547f50f5 include octave-config.h in public header files
John W. Eaton <jwe@octave.org>
parents: 21139
diff changeset
30
15252
fa0118cb67d9 move base64 encode and decode functionality to liboctave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
31 #include <string>
fa0118cb67d9 move base64 encode and decode functionality to liboctave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
32
28769
903fe321649b Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
33 #include "intNDArray.h"
903fe321649b Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
34
21139
538b57866b90 consistently use "typename" intead of "class" in template declarations
John W. Eaton <jwe@octave.org>
parents: 20791
diff changeset
35 template <typename T> class Array;
15252
fa0118cb67d9 move base64 encode and decode functionality to liboctave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
36
23748
6e86d3b5a063 move base64 encode and decode functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
37 namespace octave
6e86d3b5a063 move base64 encode and decode functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
38 {
6e86d3b5a063 move base64 encode and decode functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
39 extern OCTAVE_API bool
6e86d3b5a063 move base64 encode and decode functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
40 base64_encode (const char *inc, const size_t inlen, char **out);
6e86d3b5a063 move base64 encode and decode functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
41
6e86d3b5a063 move base64 encode and decode functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
42 extern OCTAVE_API Array<double>
6e86d3b5a063 move base64 encode and decode functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
43 base64_decode (const std::string& str);
28769
903fe321649b Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
44
903fe321649b Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
45 extern OCTAVE_API intNDArray<octave_uint8>
903fe321649b Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
46 base64_decode_bytes (const std::string& str);
23748
6e86d3b5a063 move base64 encode and decode functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
47 }
6e86d3b5a063 move base64 encode and decode functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
48
15252
fa0118cb67d9 move base64 encode and decode functionality to liboctave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
49 #endif