IME info extra manifest data 03/67903/6
authorKamil Rojewski <k.rojewski@samsung.com>
Tue, 19 Apr 2016 08:37:47 +0000 (10:37 +0200)
committerTomasz Iwanek <t.iwanek@samsung.com>
Tue, 10 May 2016 11:56:13 +0000 (04:56 -0700)
Change-Id: I92d6b830d5b75cf09e892bb1c8ae8b6ac0af731e

src/common/installer_context.h
src/common/manifest_info/ime_info.h [new file with mode: 0644]
src/common/utils/glist_range.h

index cf44454..2f80477 100644 (file)
@@ -25,6 +25,7 @@
 #include "common/utils/property.h"
 
 #include "manifest_info/account.h"
+#include "manifest_info/ime_info.h"
 
 namespace common_installer {
 
@@ -55,6 +56,7 @@ class ExtraManifestData {
 
   Property<AccountInfo> account_info;
   Property<ShortcutListInfo> shortcut_info;
+  Property<ImeInfo> ime_info;
 };
 
 /**
diff --git a/src/common/manifest_info/ime_info.h b/src/common/manifest_info/ime_info.h
new file mode 100644 (file)
index 0000000..afc0ddd
--- /dev/null
@@ -0,0 +1,84 @@
+// Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+// Use of this source code is governed by a apache 2.0 license that can be
+// found in the LICENSE file.
+
+#ifndef COMMON_MANIFEST_INFO_IME_INFO_H_
+#define COMMON_MANIFEST_INFO_IME_INFO_H_
+
+#include <string>
+#include <vector>
+
+namespace common_installer {
+
+/**
+ * \brief Holds information about IME application.
+ */
+class ImeInfo final {
+ public:
+  using LanguageList = std::vector<std::string>;
+  using LanguageListIterator = LanguageList::iterator;
+  using LanguageListConstIterator = LanguageList::const_iterator;
+
+  ImeInfo() = default;
+  ImeInfo(const ImeInfo &) = default;
+  ImeInfo(ImeInfo &&) = default;
+  ~ImeInfo() = default;
+
+  const std::string &uuid() const & {
+    return uuid_;
+  }
+
+  std::string &&uuid() && noexcept {
+    return std::move(uuid_);
+  }
+
+  void setUuid(const std::string &uuid) {
+    uuid_ = uuid;
+  }
+
+  void setUuid(std::string &&uuid) noexcept {
+    uuid_ = std::move(uuid);
+  }
+
+  const LanguageList &languages() const & {
+    return languages_;
+  }
+
+  LanguageList &&languages() && noexcept {
+    return std::move(languages_);
+  }
+
+  void setLanguages(LanguageList languages) {
+    languages_ = std::move(languages);
+  }
+
+  void AddLanguage(std::string language) {
+    languages_.emplace_back(std::move(language));
+  }
+
+  LanguageListIterator LanguagesBegin() {
+    return std::begin(languages_);
+  }
+
+  LanguageListConstIterator LanguagesBegin() const {
+    return std::begin(languages_);
+  }
+
+  LanguageListIterator LanguagesEnd() {
+    return std::end(languages_);
+  }
+
+  LanguageListConstIterator LanguagesEnd() const {
+    return std::end(languages_);
+  }
+
+  ImeInfo &operator =(const ImeInfo &) = default;
+  ImeInfo &operator =(ImeInfo &&) = default;
+
+ private:
+  std::string uuid_;
+  LanguageList languages_;
+};
+}
+
+#endif
index 2b12a40..20ebade 100644 (file)
@@ -69,6 +69,10 @@ class GListRange {
     return Iterator();
   }
 
+  bool Empty() const noexcept {
+    return list_;
+  }
+
  private:
   GList* list_;
 };