From e091eee61f058b9c6b6df698796709ccf5f18653 Mon Sep 17 00:00:00 2001 From: Kamil Rojewski Date: Tue, 19 Apr 2016 10:37:47 +0200 Subject: [PATCH] IME info extra manifest data Change-Id: I92d6b830d5b75cf09e892bb1c8ae8b6ac0af731e --- src/common/installer_context.h | 2 + src/common/manifest_info/ime_info.h | 84 +++++++++++++++++++++++++++++++++++++ src/common/utils/glist_range.h | 4 ++ 3 files changed, 90 insertions(+) create mode 100644 src/common/manifest_info/ime_info.h diff --git a/src/common/installer_context.h b/src/common/installer_context.h index cf44454..2f80477 100644 --- a/src/common/installer_context.h +++ b/src/common/installer_context.h @@ -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 account_info; Property shortcut_info; + Property ime_info; }; /** diff --git a/src/common/manifest_info/ime_info.h b/src/common/manifest_info/ime_info.h new file mode 100644 index 0000000..afc0ddd --- /dev/null +++ b/src/common/manifest_info/ime_info.h @@ -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 +#include + +namespace common_installer { + +/** + * \brief Holds information about IME application. + */ +class ImeInfo final { + public: + using LanguageList = std::vector; + 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 diff --git a/src/common/utils/glist_range.h b/src/common/utils/glist_range.h index 2b12a40..20ebade 100644 --- a/src/common/utils/glist_range.h +++ b/src/common/utils/glist_range.h @@ -69,6 +69,10 @@ class GListRange { return Iterator(); } + bool Empty() const noexcept { + return list_; + } + private: GList* list_; }; -- 2.7.4