Add SDcard password confirm popup
[platform/core/security/ode.git] / server / app-bundle.cpp
1 /*
2  *  Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
3  *
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
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
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
15  */
16 #include <memory>
17
18 #include <klay/exception.h>
19
20 #include "app-bundle.h"
21
22 AppBundle::AppBundle() :
23         handle(nullptr)
24 {
25         handle = ::bundle_create();
26         if (handle == nullptr) {
27                 throw runtime::Exception("Failed to create bundle");
28         }
29 }
30
31 AppBundle::~AppBundle()
32 {
33         ::bundle_free(handle);
34 }
35
36 void AppBundle::addInternal(const std::string& key, const std::string& value)
37 {
38         ::bundle_add_str(handle, key.c_str(), value.c_str());
39 }
40
41 void AppBundle::addArrayInternal(const std::string& key, const std::vector<std::string>& array)
42 {
43         std::unique_ptr<const char*[]> arrayptr(new const char*[array.size()]);
44
45         int index = 0;
46         for (const std::string& data : array) {
47                 arrayptr.get()[index++] = data.c_str();
48         }
49
50         ::bundle_add_str_array(handle, key.c_str(), arrayptr.get(), array.size());
51 }