Merge "Add tool option for check launching memory" into tizen
[platform/core/dotnet/launcher.git] / NativeLauncher / installer-plugin / prefer_dotnet_aot_plugin.cc
1 /*
2  * Copyright (c) 2016 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
17 #include "common.h"
18 #include "log.h"
19 #include "utils.h"
20
21 #ifdef  LOG_TAG
22 #undef  LOG_TAG
23 #endif
24 #define LOG_TAG "NETCORE_INSTALLER_PLUGIN"
25
26 #include <cstring>
27 #include <vector>
28 #include <sstream>
29 #include <glib.h>
30
31 typedef struct Metadata {
32     const char *key;
33     const char *value;
34 } Metadata;
35
36 const std::string VALUE_TRUE = "true";
37 const std::string mdKey = "http://tizen.org/metadata/prefer_dotnet_aot";
38 extern "C" int PKGMGR_MDPARSER_PLUGIN_INSTALL (const char *pkgid, const char *appid, GList *list)
39 {
40
41     GList *tag = NULL;
42     bool mdValue = false;
43     Metadata *mdInfo = NULL;
44     tag = g_list_first(list);
45     while (tag) {
46         mdInfo = (Metadata*)tag->data;
47         if(mdInfo->key == mdKey && mdInfo->value == VALUE_TRUE) {
48             _DBG("Prefer dotnet application AOT set TRUE");
49             mdValue = true;
50         }
51         tag = g_list_next(tag);
52     }
53
54     if (mdValue) {
55         if (create_ni_under_pkg_root(pkgid) != 0)
56         {
57             _ERR("Failed to get root path from [%s]", pkgid);
58             return -1;
59         } else {
60             _DBG("Complete make application to native image");
61         }
62     }
63     return 0;
64 }
65
66 extern "C" int PKGMGR_MDPARSER_PLUGIN_UPGRADE (const char *pkgid, const char *appid, GList *list)
67 {
68     return PKGMGR_MDPARSER_PLUGIN_INSTALL(pkgid, appid, list);
69 }