LOGD("Request type(%d)", static_cast<int>(type));
if (!handler[type]->HandleRequest(req->GetData(), req->GetSize(),
- locale_.GetString())) {
+ locale_.GetObject())) {
LOGE("Failed to handle request");
continue;
}
}
void WorkerThread::SetLocale(std::string locale) {
- LOGD("Change locale (%s) -> (%s)", locale_.GetString().c_str(),
+ LOGD("Change locale (%s) -> (%s)", locale_.GetObject().c_str(),
locale.c_str());
- locale_.SetString(std::move(locale));
+ locale_.SetObject(std::move(locale));
}
} // namespace pkgmgr_server
#include <thread>
#include <vector>
-#include "shared_string.hh"
+#include "shared_object.hh"
#include "pkg_request.hh"
namespace pkgmgr_server {
private:
bool stop_all_;
- SharedString locale_;
+ utils::SharedObject<std::string> locale_;
std::queue<std::shared_ptr<PkgRequest>> queue_;
std::vector<std::thread> threads_;
std::mutex lock_;
* limitations under the License.
*/
-#ifndef SHARED_STRING_HH_
-#define SHARED_STRING_HH_
+#ifndef SHARED_OBJECT_HH_
+#define SHARED_OBJECT_HH_
#include <mutex>
#include <string>
-namespace pkgmgr_server {
+namespace utils {
-class SharedString {
+template<typename T>
+class SharedObject {
public:
- std::string GetString() {
+ T GetObject() {
lock_.lock();
- std::string ret = str_;
+ T ret = object_;
lock_.unlock();
return ret;
}
- void SetString(std::string& str) {
+ void SetObject(T& object) {
lock_.lock();
- str_ = str;
+ object_ = object;
lock_.unlock();
}
- void SetString(std::string&& str) {
+ void SetObject(std::string&& object) {
lock_.lock();
- str_ = std::move(str);
+ object_ = std::move(object);
lock_.unlock();
}
private:
- std::string str_;
+ T object_;
std::mutex lock_;
};
-} // namespace pkgmgr_server
+} // namespace utils
-#endif // SHARED_STRING_HH_
+#endif // SHARED_OBJECT_HH_