Przeglądaj źródła

base64 template

Jonas Pflanzer 4 lat temu
rodzic
commit
c55a313cf9
3 zmienionych plików z 11 dodań i 28 usunięć
  1. 4 21
      daemon/include/base64.h
  2. 3 3
      daemon/src/JsonCommander.cpp
  3. 4 4
      daemon/src/base64.cpp

+ 4 - 21
daemon/include/base64.h

@@ -10,36 +10,19 @@ namespace base64 {
  *
  * @param val base64 encoded string
  *
- * @return normal string
+ * @return decoded data
  */
-std::string decode(const std::string &val);
-
-/**
- * Decodes base64 encoded strings.
- *
- * @param val base64 encoded string
- *
- * @return char vector
- */
-std::vector<char> decodeVector(const std::string &val);
+template <typename T> T decode(const std::string &val);
 
 /**
  * Encodes a string to base64.
  *
- * @param val normal string
+ * @param val data
  *
  * @return base64 encoded string
  */
-std::string encode(const std::string &val);
+template <typename T> std::string encode(const T &val);
 
-/**
- * Encodes a vector to base64.
- *
- * @param val char vector
- *
- * @return base64 encoded string
- */
-std::string encodeVector(const std::vector<char> &val);
 } // namespace base64
 
 #endif

+ 3 - 3
daemon/src/JsonCommander.cpp

@@ -209,7 +209,7 @@ JsonCommander::Response JsonCommander::executePutdata(const Json::Value &message
 			response.json["cancel"] = false;
 			response.json["error"] = "";
 
-			const std::vector<char> data = base64::decodeVector(message["data"].asString());
+			const std::vector<char> data = base64::decode<std::vector<char>>(message["data"].asString());
 
 			fileManager.writePut(data);
 
@@ -323,7 +323,7 @@ JsonCommander::Response JsonCommander::executeGetdata(const Json::Value &message
 			response.json["error"] = "";
 
 			const std::vector<char> data = fileManager.readGet();
-			response.json["data"] = base64::encodeVector(data);
+			response.json["data"] = base64::encode<std::vector<char>>(data);
 
 			fileManager.writePut(data);
 
@@ -369,7 +369,7 @@ JsonCommander::Response JsonCommander::executeHead(const Json::Value &message) {
 		if (res.second == FileManager::headError::no_error) {
 			response.json["accept"] = true;
 			response.json["file"] = message["file"].asString();
-			response.json["data"] = base64::encodeVector(res.first);
+			response.json["data"] = base64::encode<std::vector<char>>(res.first);
 			response.json["error"] = "";
 		} else if (res.second == FileManager::headError::no_such_file) {
 			response.json["accept"] = false;

+ 4 - 4
daemon/src/base64.cpp

@@ -2,7 +2,7 @@
 
 #include <boost/beast.hpp>
 
-std::string base64::decode(const std::string &val) {
+template <> std::string base64::decode<std::string>(const std::string &val) {
 	std::string ret;
 	ret.resize(boost::beast::detail::base64::decoded_size(val.size()));
 
@@ -12,7 +12,7 @@ std::string base64::decode(const std::string &val) {
 	return ret;
 }
 
-std::vector<char> base64::decodeVector(const std::string &val) {
+template <> std::vector<char> base64::decode<std::vector<char>>(const std::string &val) {
 	std::vector<char> ret;
 	ret.resize(boost::beast::detail::base64::decoded_size(val.size()));
 
@@ -22,7 +22,7 @@ std::vector<char> base64::decodeVector(const std::string &val) {
 	return ret;
 }
 
-std::string base64::encode(const std::string &val) {
+template <> std::string base64::encode<std::string>(const std::string &val) {
 	std::string ret;
 	ret.resize(boost::beast::detail::base64::encoded_size(val.size()));
 
@@ -32,7 +32,7 @@ std::string base64::encode(const std::string &val) {
 	return ret;
 }
 
-std::string base64::encodeVector(const std::vector<char> &val) {
+template <> std::string base64::encode<std::vector<char>>(const std::vector<char> &val) {
 	std::string ret;
 	ret.resize(boost::beast::detail::base64::encoded_size(val.size()));