Add setting userInfo in Provider struct.
[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 static char NSRemoteServerAddress[MAX_SERVER_ADDRESS] = {0,};\r
25 \r
26 NSProviderInfo * providerInfo;\r
27 bool NSPolicy = true;\r
28 \r
29 void NSSetProviderConnectionState(NSConnectionState state)\r
30 {\r
31     NS_LOG(DEBUG, "NSSetProviderConnectionState");\r
32 \r
33     NSProviderConnectionState = state;\r
34 }\r
35 \r
36 NSConnectionState NSGetProviderConnectionState()\r
37 {\r
38     NS_LOG(DEBUG, "Change Connection State");\r
39 \r
40     return NSProviderConnectionState;\r
41 }\r
42 \r
43 #ifdef WITH_CLOUD\r
44 void NSSetRemoteServerAddress(char *serverAddress)\r
45 {\r
46 \r
47     OICStrcpy(NSRemoteServerAddress, MAX_SERVER_ADDRESS, serverAddress);\r
48 }\r
49 \r
50 void NSDeleteRemoteServerAddress(char *serverAddress)\r
51 {\r
52     NS_LOG_V(DEBUG, "Delete cloud address: %s", serverAddress);\r
53 \r
54     memset(NSRemoteServerAddress, 0, MAX_SERVER_ADDRESS);\r
55 }\r
56 \r
57 bool NSIsRemoteServerAddress(char *serverAddress)\r
58 {\r
59     NS_LOG_V(DEBUG, "Check server address: %s", serverAddress);\r
60 \r
61     if(serverAddress != NULL)\r
62     {\r
63         return strstr(NSRemoteServerAddress, serverAddress);\r
64     }\r
65 \r
66     return false;\r
67 }\r
68 #endif\r
69 \r
70 void NSInitProviderInfo(const char * userInfo)\r
71 {\r
72     NS_LOG(DEBUG, "NSInitProviderInfo");\r
73 \r
74     providerInfo = (NSProviderInfo *) OICMalloc(sizeof(NSProviderInfo));\r
75     const char * generatedUuid = (char *)OCGetServerInstanceIDString();\r
76     NS_LOG_V(DEBUG, "Generate Provider ID: %s", generatedUuid);\r
77     OICStrcpy(providerInfo->providerId, UUID_STRING_SIZE, generatedUuid);\r
78 \r
79     providerInfo->providerName = NULL;\r
80     providerInfo->userInfo = NULL;\r
81 \r
82     if(userInfo)\r
83         providerInfo->userInfo = OICStrdup(userInfo);\r
84 }\r
85 \r
86 void NSDeinitProviderInfo()\r
87 {\r
88     NS_LOG(DEBUG, "NSDeinitProviderInfo");\r
89 \r
90     if(!providerInfo)\r
91     {\r
92         NS_LOG(DEBUG, "providerInfo is NULL");\r
93         return;\r
94     }\r
95 \r
96     if(providerInfo->providerName)\r
97     {\r
98         OICFree(providerInfo->providerName);\r
99         providerInfo->providerName = NULL;\r
100     }\r
101 \r
102     if(providerInfo->userInfo)\r
103     {\r
104         OICFree(providerInfo->userInfo);\r
105         providerInfo->userInfo = NULL;\r
106     }\r
107 \r
108     OICFree(providerInfo);\r
109     providerInfo = NULL;\r
110 }\r
111 \r
112 NSProviderInfo * NSGetProviderInfo()\r
113 {\r
114     NS_LOG_V(DEBUG, "ProviderInfo: %s", providerInfo->providerId);\r
115 \r
116     return providerInfo;\r
117 }\r
118 \r
119 bool NSGetPolicy()\r
120 {\r
121     return NSPolicy;\r
122 }\r
123 \r
124 void NSSetPolicy(bool policy)\r
125 {\r
126     NSPolicy = policy;\r
127 }\r
128 \r
129 const char * NSGetUserInfo()\r
130 {\r
131     return providerInfo->providerName;\r
132 }\r
133 \r
134 \r
135 \r