1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/*
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Copyright (c) 2011-2014, Intel Corporation
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * All rights reserved.
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Redistribution and use in source and binary forms, with or without modification,
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * are permitted provided that the following conditions are met:
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 1. Redistributions of source code must retain the above copyright notice, this
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * list of conditions and the following disclaimer.
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright notice,
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * this list of conditions and the following disclaimer in the documentation and/or
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * other materials provided with the distribution.
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 3. Neither the name of the copyright holder nor the names of its contributors
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * may be used to endorse or promote products derived from this software without
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * specific prior written permission.
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2799409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project#include "PluginLocation.h"
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project#define base CKindElement
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source ProjectCPluginLocation::CPluginLocation(const std::string &strName, const std::string &strKind)
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    : base(strName, strKind)
36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project{
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
3899409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project
39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectconst std::string &CPluginLocation::getFolder() const
4099409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project{
4199409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project    return _strFolder;
42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectconst std::list<std::string> &CPluginLocation::getPluginList() const
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project{
46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    return _pluginList;
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectbool CPluginLocation::fromXml(const CXmlElement &xmlElement, CXmlSerializingContext & /*ctx*/)
5099409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project{
5199409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project    // Retrieve folder
52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    xmlElement.getAttribute("Folder", _strFolder);
53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // Get Info from children
55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    CXmlElement::CChildIterator childIterator(xmlElement);
56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    CXmlElement xmlPluginElement;
58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
5999409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project    while (childIterator.next(xmlPluginElement)) {
60de75089fb7216d19e9c22cce4dc62a49513477d3Carl Shapiro
6199409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project        // Fill Plugin List
62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        _pluginList.push_back(xmlPluginElement.getNameAttribute());
63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // Don't dig
66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    return true;
67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project