2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 * @file plugin_objects.h
18 * @author Grzegorz Krawczyk (g.krawczyk@samgsung.com)
23 #include <dpl/log/secure_log.h>
24 #include "plugin_objects.h"
27 const char* SEPARATOR = ".";
28 const std::string GLOBAL_OBJECT_NAME = "GLOBAL_OBJECT";
30 std::string normalizeName(const std::string& objectName)
32 if (objectName.empty()) {
33 _E("Normalize name, name size is 0");
37 if (!objectName.compare(0, GLOBAL_OBJECT_NAME.size(),
43 //each object in storage has name started from $GLOBAL_OBJECT_NAME$
44 return GLOBAL_OBJECT_NAME + std::string(SEPARATOR) + objectName;
47 std::string normalizeName(const std::string& objectName,
48 const std::string& parentName)
50 if (objectName.empty() || parentName.empty()) {
51 _E("Normalize name, name size or parent name size is 0");
55 std::string normalizedName;
56 normalizedName = normalizeName(parentName) +
57 std::string(SEPARATOR) + objectName;
59 return normalizedName;
63 PluginObjects::PluginObjects()
65 m_implemented = ObjectsPtr(new Objects());
66 m_dependent = ObjectsPtr(new Objects());
69 PluginObjects::ObjectsPtr PluginObjects::getImplementedObject() const
74 PluginObjects::ObjectsPtr PluginObjects::getDependentObjects() const
79 void PluginObjects::addObjects(const std::string& parentName,
80 const std::string& name)
82 _D("\n Parent: %s\n Name: %s\n After: Implemented: %s\n After Dependent: %s",
85 normalizeName(name, parentName).c_str(),
86 normalizeName(parentName).c_str());
88 addImplementedObject(normalizeName(name, parentName));
89 addDependentObject(normalizeName(parentName));
92 void PluginObjects::addDependentObject(const std::string& value)
94 if (!value.compare(GLOBAL_OBJECT_NAME)) {
95 //dont add dependency to GLOBAL_OBJECT
98 m_dependent->insert(value);
101 bool PluginObjects::hasObject(const std::string& name) const
103 return m_implemented->find(name) != m_implemented->end();
106 void PluginObjects::addImplementedObject(const std::string& value)
108 m_implemented->insert(value);