Merge branch 'master' into notification-service
[platform/upstream/iotivity.git] / service / notification / src / provider / NSProviderSystem.c
1 //******************************************************************\r
2 //\r
3 // Copyright 2016 Samsung Electronics All Rights Reserved.\r
4 //\r
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
6 //\r
7 // Licensed under the Apache License, Version 2.0 (the "License");\r
8 // you may not use this file except in compliance with the License.\r
9 // You may obtain a copy of the License at\r
10 //\r
11 //      http://www.apache.org/licenses/LICENSE-2.0\r
12 //\r
13 // Unless required by applicable law or agreed to in writing, software\r
14 // distributed under the License is distributed on an "AS IS" BASIS,\r
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16 // See the License for the specific language governing permissions and\r
17 // limitations under the License.\r
18 //\r
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
20 #include "NSProviderSystem.h"\r
21 \r
22 #define MAX_SERVER_ADDRESS 32\r
23 static NSConnectionState NSProviderConnectionState;\r
24 \r
25 #ifdef WITH_CLOUD\r
26 static char NSRemoteServerAddress[MAX_SERVER_ADDRESS] = {0,};\r
27 #endif\r
28 \r
29 NSProviderInfo * providerInfo;\r
30 bool NSPolicy = true;\r
31 \r
32 void NSSetProviderConnectionState(NSConnectionState state)\r
33 {\r
34     NS_LOG(DEBUG, "NSSetProviderConnectionState");\r
35 \r
36     NSProviderConnectionState = state;\r
37 }\r
38 \r
39 NSConnectionState NSGetProviderConnectionState()\r
40 {\r
41     NS_LOG(DEBUG, "Change Connection State");\r
42 \r
43     return NSProviderConnectionState;\r
44 }\r
45 \r
46 #ifdef WITH_CLOUD\r
47 void NSSetRemoteServerAddress(char *serverAddress)\r
48 {\r
49 \r
50     OICStrcpy(NSRemoteServerAddress, MAX_SERVER_ADDRESS, serverAddress);\r
51 }\r
52 \r
53 void NSDeleteRemoteServerAddress(char *serverAddress)\r
54 {\r
55     NS_LOG_V(DEBUG, "Delete cloud address: %s", serverAddress);\r
56 \r
57     memset(NSRemoteServerAddress, 0, MAX_SERVER_ADDRESS);\r
58 }\r
59 \r
60 bool NSIsRemoteServerAddress(char *serverAddress)\r
61 {\r
62     NS_LOG_V(DEBUG, "Check server address: %s", serverAddress);\r
63 \r
64     if(serverAddress != NULL)\r
65     {\r
66         return strstr(NSRemoteServerAddress, serverAddress);\r
67     }\r
68 \r
69     return false;\r
70 }\r
71 #endif\r
72 \r
73 void NSInitProviderInfo(const char * userInfo)\r
74 {\r
75     NS_LOG(DEBUG, "NSInitProviderInfo");\r
76 \r
77     providerInfo = (NSProviderInfo *) OICMalloc(sizeof(NSProviderInfo));\r
78     const char * generatedUuid = (char *)OCGetServerInstanceIDString();\r
79     NS_LOG_V(DEBUG, "Generate Provider ID: %s", generatedUuid);\r
80     OICStrcpy(providerInfo->providerId, UUID_STRING_SIZE, generatedUuid);\r
81 \r
82     providerInfo->providerName = NULL;\r
83     providerInfo->userInfo = NULL;\r
84 \r
85     if(userInfo)\r
86         providerInfo->userInfo = OICStrdup(userInfo);\r
87 }\r
88 \r
89 void NSDeinitProviderInfo()\r
90 {\r
91     NS_LOG(DEBUG, "NSDeinitProviderInfo");\r
92 \r
93     if(!providerInfo)\r
94     {\r
95         NS_LOG(DEBUG, "providerInfo is NULL");\r
96         return;\r
97     }\r
98 \r
99     if(providerInfo->providerName)\r
100     {\r
101         OICFree(providerInfo->providerName);\r
102         providerInfo->providerName = NULL;\r
103     }\r
104 \r
105     if(providerInfo->userInfo)\r
106     {\r
107         OICFree(providerInfo->userInfo);\r
108         providerInfo->userInfo = NULL;\r
109     }\r
110 \r
111     OICFree(providerInfo);\r
112     providerInfo = NULL;\r
113 }\r
114 \r
115 NSProviderInfo * NSGetProviderInfo()\r
116 {\r
117     NS_LOG_V(DEBUG, "ProviderInfo: %s", providerInfo->providerId);\r
118 \r
119     return providerInfo;\r
120 }\r
121 \r
122 bool NSGetPolicy()\r
123 {\r
124     return NSPolicy;\r
125 }\r
126 \r
127 void NSSetPolicy(bool policy)\r
128 {\r
129     NSPolicy = policy;\r
130 }\r
131 \r
132 const char * NSGetUserInfo()\r
133 {\r
134     return providerInfo->providerName;\r
135 }\r