From 92236836ac5f64bf43556850b599daf5d0d06d17 Mon Sep 17 00:00:00 2001 From: vng Date: Fri, 22 Jun 2012 18:22:14 -0700 Subject: [PATCH] Add file name utils to platform.pro --- platform/file_name_utils.cpp | 21 +++++++++++++++++++++ platform/file_name_utils.hpp | 9 +++++++++ platform/platform.pro | 2 ++ storage/storage.cpp | 19 +++++++------------ storage/storage.hpp | 3 ++- 5 files changed, 41 insertions(+), 13 deletions(-) create mode 100644 platform/file_name_utils.cpp create mode 100644 platform/file_name_utils.hpp diff --git a/platform/file_name_utils.cpp b/platform/file_name_utils.cpp new file mode 100644 index 0000000000..d7b09b1106 --- /dev/null +++ b/platform/file_name_utils.cpp @@ -0,0 +1,21 @@ +#include "file_name_utils.hpp" + + +namespace pl +{ + +void GetNameWithoutExt(string & name) +{ + string::size_type const i = name.find_last_of("."); + if (i != string::npos) + name.erase(i); +} + +void GetNameFromURLRequest(string & name) +{ + string::size_type const i = name.find_last_of("/\\"); + if (i != string::npos) + name = name.substr(i+1); +} + +} diff --git a/platform/file_name_utils.hpp b/platform/file_name_utils.hpp new file mode 100644 index 0000000000..581adf95b7 --- /dev/null +++ b/platform/file_name_utils.hpp @@ -0,0 +1,9 @@ +#pragma once + +#include "../std/string.hpp" + +namespace pl +{ + void GetNameWithoutExt(string & name); + void GetNameFromURLRequest(string & name); +} diff --git a/platform/platform.pro b/platform/platform.pro index 5d0c4934be..f8625ae34d 100644 --- a/platform/platform.pro +++ b/platform/platform.pro @@ -62,6 +62,7 @@ HEADERS += \ chunks_download_strategy.hpp \ servers_list.hpp \ constants.hpp \ + file_name_utils.hpp SOURCES += \ preferred_languages.cpp \ @@ -71,3 +72,4 @@ SOURCES += \ chunks_download_strategy.cpp \ platform.cpp \ servers_list.cpp \ + file_name_utils.cpp diff --git a/storage/storage.cpp b/storage/storage.cpp index cf835ad1d2..f79a055ff3 100644 --- a/storage/storage.cpp +++ b/storage/storage.cpp @@ -7,6 +7,7 @@ #include "../platform/platform.hpp" #include "../platform/servers_list.hpp" +#include "../platform/file_name_utils.hpp" #include "../coding/file_writer.hpp" #include "../coding/file_reader.hpp" @@ -347,13 +348,11 @@ namespace storage void Storage::Unsubscribe(int slotId) { - for (list::iterator it = m_observers.begin(); - it != m_observers.end(); - ++it) + for (ObserversContT::iterator i = m_observers.begin(); i != m_observers.end(); ++i) { - if (it->m_slotId == slotId) + if (i->m_slotId == slotId) { - m_observers.erase(it); + m_observers.erase(i); return; } } @@ -385,11 +384,7 @@ namespace storage // get file descriptor string file = request.Data(); - - // FIXME - string::size_type const i = file.find_last_of("/\\"); - if (i != string::npos) - file = file.substr(i+1); + pl::GetNameFromURLRequest(file); /// @todo By the way - this code os obsolete. /// It doesn't supported properly in android now (because of Platform::RunOnGuiThread). @@ -444,8 +439,8 @@ namespace storage void Storage::ReportProgress(TIndex const & idx, pair const & p) { - for (list::const_iterator it = m_observers.begin(); it != m_observers.end(); ++it) - it->m_progressFn(idx, p); + for (ObserversContT::const_iterator i = m_observers.begin(); i != m_observers.end(); ++i) + i->m_progressFn(idx, p); } void Storage::OnMapDownloadProgress(HttpRequest & request) diff --git a/storage/storage.hpp b/storage/storage.hpp index 4c25ffb41a..ae0f8bc51a 100644 --- a/storage/storage.hpp +++ b/storage/storage.hpp @@ -102,7 +102,8 @@ namespace storage int m_slotId; }; - list m_observers; + typedef list ObserversContT; + ObserversContT m_observers; //@} /// @name Communicate with Framework