cansat_B 2019 / Mbed 2 deprecated GPStougou1

Dependencies:   mbed

Committer:
saeichi
Date:
Fri Nov 29 19:08:28 2019 +0000
Revision:
5:9b5899b06e2e
tougou1130

Who changed what in which revision?

UserRevisionLine numberNew contents of line
saeichi 5:9b5899b06e2e 1 #if !defined BASE64_H_INC_
saeichi 5:9b5899b06e2e 2 #define BASE64_H_INC_
saeichi 5:9b5899b06e2e 3
saeichi 5:9b5899b06e2e 4 #include <string.h>
saeichi 5:9b5899b06e2e 5 #include <iostream>
saeichi 5:9b5899b06e2e 6 #include <fstream>
saeichi 5:9b5899b06e2e 7
saeichi 5:9b5899b06e2e 8 using namespace std;
saeichi 5:9b5899b06e2e 9
saeichi 5:9b5899b06e2e 10 // Base64 Encodeing
saeichi 5:9b5899b06e2e 11 class base64
saeichi 5:9b5899b06e2e 12 {
saeichi 5:9b5899b06e2e 13 int iLen;
saeichi 5:9b5899b06e2e 14 char *lpszOutputString; // 結果出力先
saeichi 5:9b5899b06e2e 15 static const char *szB64; // Base64変換テーブル
saeichi 5:9b5899b06e2e 16
saeichi 5:9b5899b06e2e 17 static int FindIndexInB64(char c);//szB64の Base64変換テーブルのなかの、どれか、探し出す。ない場合、-1
saeichi 5:9b5899b06e2e 18 public:
saeichi 5:9b5899b06e2e 19 base64();
saeichi 5:9b5899b06e2e 20 ~base64();
saeichi 5:9b5899b06e2e 21 const char *Encode(const char *szStr, int iLens = -1); // エンコード(文字列用)。ただし、データの長さを指定すれば、バイナリデータが可能
saeichi 5:9b5899b06e2e 22 const char *Decode(const char *szStr); // デコード(文字列用)
saeichi 5:9b5899b06e2e 23 int GetLenght() const { return iLen; } // 出力された長さ
saeichi 5:9b5899b06e2e 24 const char *Get() const { return lpszOutputString; } // 文字列用の結果を取得
saeichi 5:9b5899b06e2e 25
saeichi 5:9b5899b06e2e 26 static void Encode(istream& istr, ostream& ostr, int iRet = 76); // istrはバイナリストリーム推奨
saeichi 5:9b5899b06e2e 27 // エンコード(ストリーム用) iRetは、何文字目で改行するか。-1なら、改行しない。
saeichi 5:9b5899b06e2e 28 static void Decode(istream& istr, ostream& ostr); // ostrはバイナリストリーム推奨
saeichi 5:9b5899b06e2e 29 // デコード(ストリーム用)
saeichi 5:9b5899b06e2e 30
saeichi 5:9b5899b06e2e 31 static void Encode(const char *lpszImputFileName, const char *lpszOutputFileName, int iRet = 76)
saeichi 5:9b5899b06e2e 32 {
saeichi 5:9b5899b06e2e 33 ifstream f(lpszImputFileName,ios::in | ios::binary);
saeichi 5:9b5899b06e2e 34 ofstream of(lpszOutputFileName);
saeichi 5:9b5899b06e2e 35 Encode(f,of);
saeichi 5:9b5899b06e2e 36 }
saeichi 5:9b5899b06e2e 37 static void Decode(const char *lpszImputFileName, const char *lpszOutputFileName)
saeichi 5:9b5899b06e2e 38 {
saeichi 5:9b5899b06e2e 39 ifstream f(lpszImputFileName);
saeichi 5:9b5899b06e2e 40 ofstream of(lpszOutputFileName,ios::out | ios::trunc | ios::binary);
saeichi 5:9b5899b06e2e 41 Decode(f,of);
saeichi 5:9b5899b06e2e 42 }
saeichi 5:9b5899b06e2e 43 };
saeichi 5:9b5899b06e2e 44
saeichi 5:9b5899b06e2e 45 #endif // #if !defined BASE64_H_INC_