[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Getfem-commits] (no subject)
From: |
Tetsuo Koyama |
Subject: |
[Getfem-commits] (no subject) |
Date: |
Sat, 3 Oct 2020 20:45:55 -0400 (EDT) |
branch: devel-tetsuo-xml-binary
commit 302d69d37a03e47fe34acb620e9c0d17704d03c1
Author: Tetsuo Koyama <tkoyama010@gmail.com>
AuthorDate: Tue Jun 16 12:58:31 2020 +0900
Add base64_encode
---
src/getfem_export.cc | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/src/getfem_export.cc b/src/getfem_export.cc
index 63abc0c..108a206 100644
--- a/src/getfem_export.cc
+++ b/src/getfem_export.cc
@@ -46,6 +46,36 @@ namespace getfem
return true;
}
+ /* Base64 encoding (https://en.wikipedia.org/wiki/Base64) */
+ std::string base64_encode(const std::vector<unsigned char>& src)
+ {
+ const std::string
table("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/");
+ std::string dst;
+ for (std::size_t i = 0; i < src.size(); ++i) {
+ switch (i % 3) {
+ case 0:
+ dst.push_back(table[(src[i] & 0xFC) >> 2]);
+ if (i + 1 == src.size()) {
+ dst.push_back(table[(src[i] & 0x03) << 4]);
+ dst.push_back('=');
+ dst.push_back('=');
+ }
+ break;
+ case 1:
+ dst.push_back(table[((src[i - 1] & 0x03) << 4) | ((src[i + 0] & 0xF0)
>> 4)]);
+ if (i + 1 == src.size()) {
+ dst.push_back(table[(src[i] & 0x0F) << 2]);
+ dst.push_back('=');
+ }
+ break;
+ case 2:
+ dst.push_back(table[((src[i - 1] & 0x0F) << 2) | ((src[i + 0] & 0xC0)
>> 6)]);
+ dst.push_back(table[src[i] & 0x3F]);
+ break;
+ }
+ }
+ return dst;
+ }
/* -------------------------------------------------------------
* VTK export
- [Getfem-commits] [getfem-commits] branch devel-tetsuo-xml-binary created (now fa91962), Tetsuo Koyama, 2020/10/03
- [Getfem-commits] (no subject), Tetsuo Koyama, 2020/10/03
- [Getfem-commits] (no subject),
Tetsuo Koyama <=
- [Getfem-commits] (no subject), Tetsuo Koyama, 2020/10/03
- [Getfem-commits] (no subject), Tetsuo Koyama, 2020/10/03
- [Getfem-commits] (no subject), Tetsuo Koyama, 2020/10/03
- [Getfem-commits] (no subject), Tetsuo Koyama, 2020/10/03
- [Getfem-commits] (no subject), Tetsuo Koyama, 2020/10/03
- [Getfem-commits] (no subject), Tetsuo Koyama, 2020/10/03
- [Getfem-commits] (no subject), Tetsuo Koyama, 2020/10/03
- [Getfem-commits] (no subject), Tetsuo Koyama, 2020/10/03
- [Getfem-commits] (no subject), Tetsuo Koyama, 2020/10/03
- [Getfem-commits] (no subject), Tetsuo Koyama, 2020/10/03