From c138b52bf1801ad5b086e911e056945040f30204 Mon Sep 17 00:00:00 2001
From: "Piotr Kosko/Native/Web API (PLT) /SRPOL/Engineer/Samsung Electronics"
Date: Wed, 20 Jan 2021 14:29:50 +0100
Subject: [PATCH] [Common] Moved convertUriToPath to common::tools
convertingUriToPath is used in few modules and usage of one version
of this function will be beneficial.
[Verification] TCT exif, package, metadata 100% pass.
Change-Id: Ifbca0fa3a83de0757faa30b214e4b298c4678789
---
src/common/tools.cc | 21 +++++++++++++++++
src/common/tools.h | 2 ++
src/exif/exif_instance.cc | 6 ++---
src/exif/exif_util.cc | 35 ----------------------------
src/exif/exif_util.h | 3 ---
src/exif/get_exif_info.cc | 3 ++-
src/metadata/metadata_file_handle.cc | 32 ++++---------------------
src/metadata/metadata_instance.cc | 2 +-
src/package/package_instance.cc | 35 +---------------------------
9 files changed, 34 insertions(+), 105 deletions(-)
diff --git a/src/common/tools.cc b/src/common/tools.cc
index 6e79ee6e..2d871227 100644
--- a/src/common/tools.cc
+++ b/src/common/tools.cc
@@ -596,5 +596,26 @@ std::string ConvertToLowerCase(const std::string& input_string) {
return output_string;
}
+std::string ltrim(const std::string& s) {
+ ScopeLogger();
+ std::string str = s;
+ auto pos = str.find_first_not_of(" ");
+ str.erase(0, pos);
+ return str;
+}
+
+std::string ConvertUriToPath(const std::string& str) {
+ const std::string URI_PREFIX = "file://";
+ ScopeLogger();
+ std::string path = ltrim(str);
+ std::string prefix = path.substr(0, URI_PREFIX.size());
+
+ if (prefix == URI_PREFIX) {
+ return path.substr(URI_PREFIX.size());
+ } else {
+ return path;
+ }
+}
+
} // namespace tools
} // namespace common
diff --git a/src/common/tools.h b/src/common/tools.h
index 17e1e98e..84df7276 100644
--- a/src/common/tools.h
+++ b/src/common/tools.h
@@ -121,6 +121,8 @@ void PrintDeprecationWarningFor(const char* className, const char* replacement =
std::string ConvertToLowerCase(const std::string& input_string);
+std::string ConvertUriToPath(const std::string& uri);
+
} // namespace tools
} // namespace common
diff --git a/src/exif/exif_instance.cc b/src/exif/exif_instance.cc
index b0cf17cd..6bae127c 100644
--- a/src/exif/exif_instance.cc
+++ b/src/exif/exif_instance.cc
@@ -63,7 +63,7 @@ void ExifInstance::ExifManagerGetExifInfo(const picojson::value& args, picojson:
ScopeLogger();
const std::string& uri = args.get("uri").get();
- const std::string& file_path = ExifUtil::convertUriToPath(uri);
+ const std::string& file_path = common::tools::ConvertUriToPath(uri);
const double callback_id = args.get("callbackId").get();
const std::string& real_path = common::FilesystemProvider::Create().GetRealPath(file_path);
@@ -108,7 +108,7 @@ void ExifInstance::ExifManagerSaveExifInfo(const picojson::value& args, picojson
const double callback_id = args.get("callbackId").get();
const std::string& file_uri = args.get("uri").get();
- const std::string& file_path = ExifUtil::convertUriToPath(file_uri);
+ const std::string& file_path = common::tools::ConvertUriToPath(file_uri);
const std::string& real_path = common::FilesystemProvider::Create().GetRealPath(file_path);
CHECK_STORAGE_ACCESS(real_path, &out);
@@ -143,7 +143,7 @@ void ExifInstance::ExifManagerGetThumbnail(const picojson::value& args, picojson
ScopeLogger();
const std::string& uri = args.get("uri").get();
- const std::string& file_path = ExifUtil::ExifUtil::convertUriToPath(uri);
+ const std::string& file_path = common::tools::ConvertUriToPath(uri);
const std::string& real_path = common::FilesystemProvider::Create().GetRealPath(file_path);
CHECK_STORAGE_ACCESS(real_path, &out);
diff --git a/src/exif/exif_util.cc b/src/exif/exif_util.cc
index ebf2c0a4..2737c1fd 100644
--- a/src/exif/exif_util.cc
+++ b/src/exif/exif_util.cc
@@ -49,8 +49,6 @@ const std::string EXPOSURE_PROGRAM_PORTRAIT_MODE = "PORTRAIT_MODE";
const std::string EXPOSURE_PROGRAM_LANDSCAPE_MODE = "LANDSCAPE_MODE";
const std::string DUMMY = ""; // For unexpected input handling
-
-const std::string URI_PREFIX = "file://";
} // namespace
const std::size_t ExifTypeInfo::ByteSize = 1;
@@ -213,39 +211,6 @@ const std::string& ExifUtil::exposureProgramToString(ExposureProgram value) {
}
}
-// Example:
-// in: uri = file://TZ_USER_IMAGES/exif.jpg
-// out: path = TZ_USER_IMAGES/exif.jpg
-std::string ExifUtil::convertUriToPath(const std::string& str) {
- ScopeLogger();
- std::string path = ltrim(str);
- std::string prefix = path.substr(0, URI_PREFIX.size());
-
- if (prefix == URI_PREFIX) {
- return path.substr(URI_PREFIX.size());
- } else {
- return path;
- }
-}
-
-std::string ExifUtil::ltrim(const std::string& s) {
- ScopeLogger();
- std::string str = s;
- std::string::iterator i;
- for (i = str.begin(); i != str.end(); ++i) {
- if (!isspace(*i)) {
- break;
- }
- }
-
- if (i == str.end()) {
- str.clear();
- } else {
- str.erase(str.begin(), i);
- }
- return str;
-}
-
time_t ExifUtil::exifDateTimeOriginalToTimeT(const char* string) {
ScopeLogger();
int year, month, day, hour, min, sec;
diff --git a/src/exif/exif_util.h b/src/exif/exif_util.h
index 1dab85ac..e816f29e 100644
--- a/src/exif/exif_util.h
+++ b/src/exif/exif_util.h
@@ -114,9 +114,6 @@ class ExifUtil {
static ExposureProgram stringToExposureProgram(const std::string& exposure_program);
static const std::string& exposureProgramToString(ExposureProgram value);
- static std::string convertUriToPath(const std::string& str);
- static std::string ltrim(const std::string& s);
-
static time_t exifDateTimeOriginalToTimeT(const char* string);
static std::string timeTToExifDateTimeOriginal(time_t time);
static const Rationals timeTToExifGpsTimeStamp(time_t time);
diff --git a/src/exif/get_exif_info.cc b/src/exif/get_exif_info.cc
index 4cd21c48..34e1cf81 100644
--- a/src/exif/get_exif_info.cc
+++ b/src/exif/get_exif_info.cc
@@ -23,6 +23,7 @@
#include "common/logger.h"
#include "common/platform_result.h"
+#include "common/tools.h"
#include "exif/exif_util.h"
@@ -468,7 +469,7 @@ void GetExifInfo::DataForeachFunction(ExifContent* content, void* user_data) {
PlatformResult GetExifInfo::LoadFromURI(const std::string& uri, JsonValue* result) {
ScopeLogger();
- const std::string& file_path = ExifUtil::convertUriToPath(uri);
+ const std::string& file_path = common::tools::ConvertUriToPath(uri);
ExifData* ed = exif_data_new_from_file(file_path.c_str());
if (!ed) {
return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "Error reading exif from file",
diff --git a/src/metadata/metadata_file_handle.cc b/src/metadata/metadata_file_handle.cc
index 2dfe0020..71a01edb 100644
--- a/src/metadata/metadata_file_handle.cc
+++ b/src/metadata/metadata_file_handle.cc
@@ -22,6 +22,7 @@
#include "common/platform_enum.h"
#include "common/platform_exception.h"
#include "common/scope_exit.h"
+#include "common/tools.h"
namespace extension {
namespace metadata {
@@ -81,33 +82,8 @@ PlatformResult convertErrorCode(int err) {
}
}
-std::string ltrim(const std::string& s) {
- ScopeLogger();
- std::string str = s;
- std::string::iterator i;
- for (i = str.begin(); i != str.end(); ++i) {
- if (!isspace(*i)) {
- break;
- }
- }
- str.erase(str.begin(), i);
- return str;
-}
-
-std::string convertUriToPath(const std::string& str) {
- const std::string URI_PREFIX = "file://";
- ScopeLogger();
- std::string path = ltrim(str);
- std::string prefix = path.substr(0, URI_PREFIX.size());
-
- if (prefix == URI_PREFIX) {
- return path.substr(URI_PREFIX.size());
- } else {
- return path;
- }
-}
-
-MetadataFileHandle::MetadataFileHandle(int id) : handle_(nullptr), id_(id), width_(0), height_(0), lyrics_num_(0) {
+MetadataFileHandle::MetadataFileHandle(int id)
+ : handle_(nullptr), id_(id), width_(0), height_(0), lyrics_num_(0) {
ScopeLogger();
}
@@ -145,7 +121,7 @@ MetadataFileHandle::~MetadataFileHandle() {
PlatformResult MetadataFileHandle::Initialize(const std::string& uri) {
ScopeLogger();
- auto path = convertUriToPath(uri);
+ auto path = common::tools::ConvertUriToPath(uri);
int result = metadata_extractor_create(&handle_);
if (METADATA_EXTRACTOR_ERROR_NONE != result) {
diff --git a/src/metadata/metadata_instance.cc b/src/metadata/metadata_instance.cc
index 36d6fdfb..e06dca57 100644
--- a/src/metadata/metadata_instance.cc
+++ b/src/metadata/metadata_instance.cc
@@ -155,7 +155,7 @@ void MetadataInstance::MetadataFileHandleGetArtwork(const picojson::value& args,
}
void MetadataInstance::MetadataFileHandleGetThumbnailFrame(const picojson::value& args,
- picojson::object& out) {
+ picojson::object& out) {
ScopeLogger();
const std::string& uri = args.get("uri").get();
const int id = static_cast(args.get("id").get());
diff --git a/src/package/package_instance.cc b/src/package/package_instance.cc
index c1779c6a..0613621a 100644
--- a/src/package/package_instance.cc
+++ b/src/package/package_instance.cc
@@ -184,39 +184,6 @@ static void PackageListenerCb(const char* type, const char* package,
}
}
-static std::string ltrim(const std::string& s) {
- ScopeLogger();
- std::string str = s;
- std::string::iterator i;
- for (i = str.begin(); i != str.end(); ++i) {
- if (!isspace(*i)) {
- break;
- }
- }
- if (i == str.end()) {
- str.clear();
- } else {
- str.erase(str.begin(), i);
- }
- return str;
-}
-
-static std::string convertUriToPath(const std::string& uri) {
- ScopeLogger();
- std::string result;
- std::string schema("file://");
- std::string str = ltrim(uri);
-
- std::string _schema = str.substr(0, schema.size());
- if (_schema == schema) {
- result = str.substr(schema.size());
- } else {
- result = str;
- }
-
- return result;
-}
-
PackageInstance::PackageInstance() {
ScopeLogger();
@@ -303,7 +270,7 @@ void PackageInstance::PackageManagerInstall(const picojson::value& args, picojso
int callback_id = static_cast(args.get("callbackId").get());
const std::string& packageFileURI =
- convertUriToPath(args.get("packageFileURI").get());
+ common::tools::ConvertUriToPath(args.get("packageFileURI").get());
int progress_callback_id = static_cast(args.get("progressCallbackId").get());
const std::string real_path = common::FilesystemProvider::Create().GetRealPath(packageFileURI);
--
2.34.1