From: Kyungwook Tak Date: Mon, 9 May 2016 02:34:05 +0000 (+0900) Subject: Move regexpr for app directory aware to static X-Git-Tag: accepted/tizen/common/20160614.143943^2~156 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=edd297b54a82d3115ca8afafa60a46a664c92abb;p=platform%2Fupstream%2Fcsr-framework.git Move regexpr for app directory aware to static Change-Id: I482d57deb18981dffa21f068e1c67be5dc15f623 Signed-off-by: Kyungwook Tak --- diff --git a/src/framework/service/file-system.cpp b/src/framework/service/file-system.cpp index 8d0fd8c..4f66087 100644 --- a/src/framework/service/file-system.cpp +++ b/src/framework/service/file-system.cpp @@ -21,6 +21,7 @@ */ #include "service/file-system.h" +#include #include #include #include @@ -33,30 +34,34 @@ namespace Csr { -const char *APP_DIRS[4] = { +namespace { + +inline std::regex makeRegexpr(const char *str) +{ + return std::regex(str, std::regex_constants::extended); +} + +std::vector g_regexprs{ // Tizen 2.4 app directories - "^(/usr/apps/([^/]+))", // /usr/apps/{pkgid}/ - "^(/opt/usr/apps/([^/]+))", // /opt/usr/apps/{pkgid}/ - "^(/sdcard/apps/([^/]+))", // /sdcard/apps/{pkgid}/ - "^(/sdcard/app2sd/([^/]+))", // /sdcard/app2sd/{pkgid}/ + makeRegexpr("^(/usr/apps/([^/]+))"), // /usr/apps/{pkgid}/ + makeRegexpr("^(/opt/usr/apps/([^/]+))"), // /opt/usr/apps/{pkgid}/ + makeRegexpr("^(/sdcard/apps/([^/]+))"), // /sdcard/apps/{pkgid}/ + makeRegexpr("^(/sdcard/app2sd/([^/]+))"), // /sdcard/app2sd/{pkgid}/ // Tizen 3.0 app directories - //"^(/opt/usr/apps/([^/]+))", // /opt/usr/apps/{pkgid}/ - //"^(/home/([^/]+)/apps_rw/([^/]+))", // /home/{user}/apps_rw/{pkgid}/ - //"^(/sdcard/app2sd/([^/]+)/([^/]+))", // /sdcard/app2sd/{user}/{pkgid}/ - //"^(/sdcard/app2sd/([^/]+))", // /sdcard/app2sd/{pkgid}/ - //"^(/sdcard/apps/([^/]+)/apps_rw/([^/]+))" // /sdcard/apps/{user}/apps_rw/{pkgid}/ + //makeRegexpr("^(/opt/usr/apps/([^/]+))"), // /opt/usr/apps/{pkgid}/ + //makeRegexpr("^(/home/([^/]+)/apps_rw/([^/]+))"), // /home/{user}/apps_rw/{pkgid}/ + //makeRegexpr("^(/sdcard/app2sd/([^/]+)/([^/]+))"), // /sdcard/app2sd/{user}/{pkgid}/ + //makeRegexpr("^(/sdcard/app2sd/([^/]+))"), // /sdcard/app2sd/{pkgid}/ + //makeRegexpr("^(/sdcard/apps/([^/]+)/apps_rw/([^/]+))") // /sdcard/apps/{user}/apps_rw/{pkgid}/ }; -std::vector File::m_regexprs; +} // namespace anonymous File::File(const std::string &fpath) : m_path(fpath), m_inApp(false) { - if (m_regexprs.size() == 0) - initRegex(); - std::smatch matched; - for (const auto ®e : m_regexprs) { + for (const auto ®e : g_regexprs) { if (!std::regex_search(m_path, matched, rege)) continue; @@ -100,14 +105,6 @@ const std::string &File::getAppPkgPath() const return m_appPkgPath; } -void File::initRegex() -{ - for (unsigned int i = 0; i < sizeof(APP_DIRS) / sizeof(char *); i++) { - std::regex regexpr(APP_DIRS[i], std::regex_constants::extended); - m_regexprs.emplace_back(std::move(regexpr)); - } -} - bool File::remove() const { if (m_inApp) diff --git a/src/framework/service/file-system.h b/src/framework/service/file-system.h index 0910a47..a15e84e 100644 --- a/src/framework/service/file-system.h +++ b/src/framework/service/file-system.h @@ -23,7 +23,6 @@ #include #include -#include #include #include @@ -49,10 +48,6 @@ public: static FilePtr create(const std::string &fpath, time_t modifiedSince = -1); private: - static void initRegex(); - - static std::vector m_regexprs; - File(const std::string &fpath); std::string m_path;